Yakuake

来自 Arch Linux 中文维基

Yakuake 是一个适用于 KDE 的下拉式终端,类似于 GNOMEGuakeTilda或 Quake 中使用的终端。

安装[编辑 | 编辑源代码]

安装 yakuake 软件包。

使用[编辑 | 编辑源代码]

安装后,您可以在终端启动 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

疑难解答[编辑 | 编辑源代码]

真彩程序不正确显示[编辑 | 编辑源代码]

Konsole#真彩程序无法正确显示

参见[编辑 | 编辑源代码]