Yakuake

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

YakuakeKDE のトップダウン型ターミナルです (GNOMEGuakeTilda、Quake で使われているターミナルと同じスタイル)。

インストール

公式リポジトリyakuakeインストール してください。

使用方法

インストールしたら、ターミナルから次のコマンドを実行することで Yakuake を起動できます:

$ yakuake

yakuake を起動したら "Open Menu" ボタン (インターフェイス右下のボタン) をクリックして "Configure Shortcuts" を選択してターミナルを自動的に非表示にするホットキーを変更できます。デフォルトでは F12 に設定されています。

設定

Plasma 上の背景の透明度とぼかし

ほとんどの設定オプションは Yakuake GUI から変更することができますが、 Plasma の下で背景をぼかすオプションなど、設定ファイルの変更からしかアクセスできないオプションもあります。

ノート: Yakuake の Konsole プロファイルの Blur background オプションを有効にしても Yakuake のウィンドウにぼかしが適用されず、 Konsole was started before desktop effects were enabled. You need to restart Konsole to see transparent background という警告が表示されます。この警告に関するアップストリームのバグレポート があります。 Yakuake は、ぼかし/透明度をサポートしていない KonsolePart を使用していますが、 Yakuake 自体はそのような効果をウィンドウに適用できるため、この警告は誤解を招く可能性があります。

Yakuak eに背景のぼかしを適用するには、次のファイルを編集します。

~/.config/yakuakerc
[Appearance]
Blur=true
Translucency=true

次に、 Yakuake を再起動して変更を適用します。

Yakuake スクリプト

Guake と同じように、Yakuake は D-Bus メッセージを送信して自分自身を制御します。そのためユーザー定義セッションで Yakuake を起動することができます。ターミナルから手動でコマンドを実行したり、カスタムスクリプトを作成することで、タブを作成して名前を割り当てたり、タブを開いたときに特定のコマンドを実行させたり、Yakuake ウィンドウの表示・非表示を切り替えることができます。

スクリプトの例 (タブを開いて、名前を変更し、シェルを分割してコマンドを実行):

#!/bin/bash
# Starting yakuake based on user preferences. Information based on https://forums.gentoo.org/viewtopic-t-873915-start-0.html
# Adding sessions from previous website is broken, use this: http://pawelkoston.pl/blog/sublime-text-3-cheatsheet-modules-web-develpment/

# This line is needed in case yakuake does not accept fcitx inputs.
/usr/bin/yakuake --im /usr/bin/fcitx --inputstyle onthespot &

# gives Yakuake a couple seconds before sending dbus commands
sleep 2      
                                                 
# Start htop in tab and split to user terminal and run 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

# Start split root sessions (password prompt) top and bottom                                                                                
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" 

# Start irssi in its own tab.                                                                                          
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'" 

# Start split ssh shells in own tab.                                                                                   
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" 

qdbus の代わりに dbus-send を使う

Qt に付属している qdbus をもっと一般的な dbus-send に置き換えることができます。例えば Yakuake の表示・非表示を切り替えるには:

$ dbus-send --type=method_call --dest=org.kde.yakuake /yakuake/window org.kde.yakuake.toggleWindowState

ヒントとテクニック

sudo がパスワードを尋ねたときに通知を表示する

最後に sudo パスワードを入力する必要がある長い処理を実行するとき (たとえば、AUR からパッケージをビルドするとき)、yakuake ウィンドウを非表示にして別の操作を行いたくなることがよくあります。しかし、戻ってステータスを確認すると、sudo がタイムアウトによって終了することがあります。

これを回避するには、非アクティブなセッションのベルでシステム通知を送信するように yakuake を設定できます。非アクティブなセッションとは、別のタブまたは現在のタブ上にあるものの、yakuake にフォーカスが当たっていないセッションです。

Yakuake のメニュー (hamburger button) > Configure Notifications を開きます。そのウィンドウで Bell in Non-Visible Session を選択し、Show a message in a popup を有効にしてください。さらに、サウンドを設定することもできます (通常は /usr/share/sounds/freedesktop/stereo/bell.oga または /usr/share/sounds/Oxygen-Sys-warning.ogg)

次に、ベルを使用するように sudo プロンプトを設定する必要があります。Sudo#パスワードプロンプトに端末ベルを鳴らす を参照してください。

トラブルシューティング

True-Color プログラムが正しく表示されない

こちらを参照、Konsole#True-color プログラムが正しく表示されない

参照