Yakuake (简体中文) - ArchWiki

Jump to content

# Yakuake (简体中文)

From ArchWiki

相关文章

- KDE (简体中文)

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

Yakuake 是 KDE 里的下拉式终端，与 Guake 或者 Tilda 类似。

## 安装

在官方仓库中安装 yakuake。

## 使用

在终端用以下命令打开 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.

## 参见

- Yakuake scripting on coderwall.com

Category:

- Terminal emulators (简体中文)