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#真彩色程序显示不正确。