Yakuake
2018年2月6日 (火) 23:08時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「http://forums.gentoo.org/」を「https://forums.gentoo.org/」に置換)
関連記事
Yakuake は KDE のトップダウン型ターミナルです (GNOME の Guake や Tilda、Quake で使われているターミナルと同じスタイル)。
インストール
公式リポジトリの yakuake をインストールしてください。
使用方法
インストールしたら、ターミナルから次のコマンドを実行することで Yakuake を起動できます:
$ yakuake
yakuake を起動したら "Open Menu" ボタン (インターフェイス右下のボタン) をクリックして "Configure Shortcuts" を選択してターミナルを自動的に非表示にするホットキーを変更できます。デフォルトでは F12 に設定されています。
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