Yakuake (简体中文) - ArchWiki

Jump to content

相关文章

- KDE

翻译状态：本文是 Yakuake 的翻译。上次翻译日期：2022/09/12。如果英文版本有所更改，则您可以帮助同步翻译。

Yakuake 是一个适用于 KDE 的下拉式终端，类似于 GNOME 的 Guake、Tilda或 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 (简体中文)#真彩程序无法正确显示。

## 参见

- Yakuake 脚本于 coderwall.com

Categories:

- KDE (简体中文)
- Terminal emulators (简体中文)