Yakuake (简体中文)
Yakuake 是 KDE 里的下拉式终端,与 Guake 或者 Tilda 类似。
安装
使用
在终端用以下命令打开 Yakuake
$ yakuake
你可以点击右下角的扳手按钮,选择管理配置文件来配置你的 Yukuake,点击 Configure Shortcuts 来配置快捷键。同样的,如果你要将 Yukuake 锁定在屏幕上,你可以点击扳手右边的锁按钮。
配置
在 Plasma 桌面环境中开启模糊背景特效
通过 Yakuake 的图形界面配置窗口可以修改大部分配置选项,不过还有一部分选项只能通过编辑配置文件的方式启用,比如在 Plasma 下开启模糊背景特效。
注意: 在 Yakuake 的 Konsole 配色方案启用模糊背景选项并不能对 Yakuake 的窗口开启模糊背景,反而会显示一则提示说
Konsole 在桌面特效启用前启动。您需要重启 Konsole 来显示透明背景。
关于这则提示在 上游 bug 列表有几条 bug 汇报 。这提示本身比较误导,因为导致提示的原因是 Yakuake 使用的 KonsoleParts 不支持给嵌入它的宿主窗口添加半透明和模糊特效,但是 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 # 如果 Yakuake 不能接受 fcitx 输入那么需要下面这行 /usr/bin/yakuake --im /usr/bin/fcitx --inputstyle onthespot & # 发送 dbus 命令之前留足够时间让 yakuake 启动 sleep 2 # 在标签页中开启 htop 然后分割标签页后运行 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 # 开启上下分割页然后提示 root 权限的会话(请求密码) 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 shells 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
问题解决
True-color 程序无法正确显示
见 Konsole#True-color programs do not display correctly.