Yakuake
Yakuake 是一個適用於 KDE 的下拉式終端,類似於 GNOME 的 Guake、Tilda或 Quake 中使用的終端。
安裝[編輯 | 編輯原始碼]
使用[編輯 | 編輯原始碼]
安裝後,您可以在終端啟動 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