Yakuake
Yakuake 是一个适用于 KDE 的下拉式终端,类似于 GNOME 的 Guake、Tilda或 Quake 中使用的终端。
安装[编辑 | 编辑源代码]
使用[编辑 | 编辑源代码]
安装后,您可以在终端启动 yakuake:
$ yakuake
Yakuake 启动后,您可以点击“配置 Yakuake” 通过点击菜单按钮(界面右下中间)并选择配置键盘快捷键以更改收放终端的热键,默认是 F12
。
配置[编辑 | 编辑源代码]
Plasma 上的透明/模糊背景[编辑 | 编辑源代码]
尽管大多数配置选项可以在 Yakuake GUI 更改,一些选项只能借助修改配置文件更改,例如 Plasma 下的模糊背景选项。
注意: 在 Yakuake 的 Konsole 配置文件中启用 Blur background 选项会为 Yakuake 的窗口启用模糊,但将显示警告如
Konsole 在桌面特效启用前启动。您需要重启 Konsole 来显示透明背景。
见 有关此警告的上游漏洞报告。此警告有一定误导性,因为 Yakuake 使用不支持模糊/透明的 KonsolePart,但 Yakuake 本身可以对其窗口启用此效果。要为 Yakuake 启用模糊背景,编辑以下文件:
~/.config/yakuakerc
[Appearance] Blur=true Translucency=true
然后重启 Yakuake 以应用更改。
Yakuake 脚本[编辑 | 编辑源代码]
如 Guake 一样,Yakuake 允许运行时发送 D-Bus 信息以控制它。因此,该特性可被用于在用户定义的会话启动 Yakuake。您可以创建标签页,为其指定名称,并在任何打开的标签页中要求运行任何特定命令,或者只是显示/隐藏 Yakuake 窗口:在终端中手动操作或通过为其创建自定义脚本。
下面是该脚本的一个示例。这包括打开标签页,重命名标签页,拆分 shell 以及运行命令。
#!/bin/bash # 基于用户首选项启动 Yakuake。这些信息基于 https://forums.gentoo.org/viewtopic-t-873915-start-0.html # 前一个网站中添加会话部分已损坏,故采用此:https://koston.pl/blog/sublime-text-3-cheatsheet-modules-web-develpment/ # 在 Yakuake 不接受 fcitx 输入时需要此行 /usr/bin/yakuake --im /usr/bin/fcitx --inputstyle onthespot & # 在发送 dbus 命令前让 Yakuake 等待 2 秒 sleep 2 # 在 'user' 标签页启动 htop 然后向右拆分 'user' 终端,并在新终端运行 iotop TERMINAL_ID_0=$(qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.terminalIdsForSessionId 0) qdbus org.kde.yakuake /yakuake/tabs setTabTitle 0 "user" qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 0 "htop" qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.splitTerminalLeftRight "$TERMINAL_ID_0" qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 1 "iotop # 上下拆分并启动根会话(提示输入密码) SESSION_ID_1=$(qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.addSession) TERMINAL_ID_1=$(qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.terminalIdsForSessionId "$SESSION_ID_1") qdbus org.kde.yakuake /yakuake/tabs setTabTitle 1 "root" qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 2 "su" qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.splitTerminalTopBottom "$TERMINAL_ID_1" qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 3 "su" # 在其自己的标签页启动 irssi qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.addSession qdbus org.kde.yakuake /yakuake/tabs setTabTitle 2 "irssi" qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 4 "ssh home -t 'tmux attach -t irssi; bash -l'" # 在其自己的标签页启动 ssh shell,并左右拆分 SESSION_ID_2=$(qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.addSession) TERMINAL_ID_2=$(qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.terminalIdsForSessionId "$SESSION_ID_2") qdbus org.kde.yakuake /yakuake/tabs setTabTitle 3 "work server" qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 5 "ssh work" qdbus org.kde.yakuake /yakuake/sessions org.kde.yakuake.splitTerminalLeftRight "$TERMINAL_ID_2" qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 6 "ssh work"
用 dbus-send 替代 qdbus[编辑 | 编辑源代码]
您可用更常见的 dbus-send替换与 Qt 捆绑的 qdbus。例如,要显示/隐藏 Yakuake:
$ dbus-send --type=method_call --dest=org.kde.yakuake /yakuake/window org.kde.yakuake.toggleWindowState