Yakuake
Yakuake 是一个为 KDE 设计的下拉式终端模拟器,风格类似于为 GNOME 设计的 Guake、Tilda 或 Quake 中使用的终端。
安装
用法
安装完成后,你可以从终端启动 Yakuake,命令如下:
$ yakuake
Yakuake 启动后,你可以点击打开菜单按钮(界面右下角的中间按钮),然后选择配置快捷键来配置 Yakuake。你可以更改用于自动下拉/收起终端的热键,默认设置为 F12
。
配置
Plasma 上的背景透明和模糊
虽然大多数配置选项都可以通过 Yakuake GUI 进行更改,但有些选项只能通过修改配置文件来访问,例如在 Plasma 下使用模糊背景的选项。
Konsole was started before desktop effects were enabled. You need to restart Konsole to see transparent background.
。 上游关于此警告有一些 错误报告。 该警告有些误导,因为 Yakuake 使用 KonsolePart,它不支持模糊/透明效果,但 Yakuake 本身可以将其效果应用于其窗口。为了为 Yakuake 应用模糊背景,请编辑以下文件
~/.config/yakuakerc
[Appearance] Blur=true Translucency=true
然后重启 Yakuake 以应用更改。
Yakuake 脚本
与 Guake 类似,Yakuake 允许通过发送 D-Bus 消息在运行时控制自身。 因此,它可以用于在用户定义的会话中启动 Yakuake。 你可以创建选项卡,为它们分配名称,并要求在任何打开的选项卡中运行任何特定命令,或者只是手动在终端中或通过为其创建自定义脚本来显示/隐藏 Yakuake 窗口。
下面给出了这样一个脚本的示例。 这包括打开选项卡、重命名选项卡、拆分 shell 和运行命令。
#!/bin/bash # Starting Yakuake based on user preferences. Information based on https://forums.gentoo.org/viewtopic-t-873915-start-0.html # Adding sessions from previous website is broken, use this: https://koston.pl/blog/sublime-text-3-cheatsheet-modules-web-develpment/ # This line is needed in case Yakuake does not accept fcitx inputs. /usr/bin/yakuake --im /usr/bin/fcitx --inputstyle onthespot & # gives Yakuake a couple seconds before sending dbus commands sleep 2 # Start htop in tab and split to user terminal and run 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" # Start split root sessions (password prompt) top and bottom 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" # Start irssi in its own tab. 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'" # Start split ssh shells in own tab. 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
技巧和窍门
在 sudo 请求密码时显示通知
当你执行需要最后输入 sudo 密码的漫长过程时(例如,从 AUR 构建软件包时),你通常希望隐藏 yakuake 窗口并执行其他操作。 但是,当你返回检查状态时,你会看到 sudo 因超时而退出。
为了避免这种情况,你可以配置 yakuake 在非活动会话中在响铃时发送系统通知。 非活动会话是指另一个选项卡上的会话,或当前选项卡上的会话,但在 yakuake 未处于焦点时。
在 Yakuake 的菜单(汉堡按钮)> 配置通知中。 在该窗口中,选择非可见会话中的响铃并启用在弹出窗口中显示消息。 此外,你可以设置声音(通常为 /usr/share/sounds/freedesktop/stereo/bell.oga
或 /usr/share/sounds/Oxygen-Sys-Warning.ogg
)。
然后,你需要配置 sudo 提示符以使用响铃符号。 请参阅 Sudo#向密码提示添加终端响铃。
故障排除
真彩色程序显示不正确
请参阅 Konsole#真彩色程序显示不正确。