Yakuake - Arch Linux 中文维基

跳至內容

# Yakuake

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Yakuake，最近一次同步於 2022/09/12，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- KDE

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

分類：​

- KDE
- 終端模擬器

Yakuake
新增話題