とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

ターミナルでタイル型ウィンドウマネージャー

私の記事を読んでいただいている方々はきっとターミナルの巣に篭って作業していることでしょう。tmuxでpaneを分割し、新しい作業をする時はwindowを追加する姿が目に浮かびます。

ターミナルのウィンドウ管理目的でtmuxを起動すると、リモートでセッション維持したくなった時はtmuxをネステッドに起動することになってしまいます。ローカルとリモートでprefixキーを変更していれば問題ないですが、同じキーを設定しているとリモートにprefixを送るには2回目prefixキーを押すことになります。

ローカルではwindow管理だけをして、リモートではセッション管理だけできるといい感じです。その手の記事をだいぶ前に書いてます。

devops-blog.virtualtech.jp

ただし、ここで紹介したツールはどれもそれほど新しくないんですよね。ということで、最新のウィンドウ管理ツールを紹介します。

TUIOS

tuios.gaurav.zip

1つのターミナルの中でウィンドウ管理ができるツールです。Terminal Multiplexerというよりかはタイル型ウィンドウマネージャーに近い動きをします。

RoadMapを眺めてみるとセッションパーシステントにまだチェックがついていません。tmuxのようなセッション管理はまだ未実装みたいです。が、それがローカルとリモートの二重管理を防げるので大変よろしいですね。

使ってみる

インストール

こちらを参考にインストールできます。

GitHub - Gaurav-Gosain/tuios: Terminal UI OS (Terminal Multiplexer)

Macな人はHomebrewで、Archな人はAURから、それ以外の人はGitHub Releasesからバイナリをダウンロードするのがいいでしょう。

起動

$ tuios

TUIOSにはWindow Management Modeというものがあり、初回はこのモードです。このモードの時はウィンドウの操作しかできません。

?キーを押すとヘルプが表示され、どのキーを押すとどういう動作をするのかというのがTUIOS実行中に確認できます。

nキーを押すとウィンドウが作成されます。作成されたウィンドウは画面中央に配置されるのでhキーやlキーを押してみてください。左右にスナップされます。

tキーを押すとタイル型に整列されます。ウィンドウが1つの時は全画面表示になります。複数のウィンドウを作成して動作を見てみましょう。

デフォルトの状態ではウィンドウ枠が水色?のウィンドウが選択中のウィンドウです。Tabキー選択を切り替えられます。

iキーを押すとTerminal Modeに遷移します。ここでようやくターミナルに文字を打つことができます。

このモードに入った後はCtrl+bキーを押してからウィンドウやワークスペースの操作を行います。Ctrl+bキーを押したあと少し待機してみてください。右下にどのキーで何ができるか表示されます。

マウスもサポートされていますので、まだマウスを捨てていない方はウィンドウの端を左クリックで掴んで移動してみてください。右クリックだとウィンドウのリサイズになります。

設定

TUIOSは設定ファイルで動作を変更できます。ターミナルにtuios config editと打ち込みエンターキーを押してください。設定ファイルがエディタで開きます。

今回はウィンドウ右端に出ている最小化、最大化、閉じるボタンを消してみます。hide_window_buttons = trueに設定し、TUIOSを再起動しましょう。Terminal Modeになっている場合はCtrl+bキーを押したあとにqキーでTUIOSが終了します。

↓↓↓

ボタンが消えました。

leader_keyを変更するとCtrl+bから別のキーに変えられるはずなのですが、Mac環境ではうまく変更できませんでした。Linux環境ではleader_key = '`'に設定し、バッククォートキーをprefixキーに設定できたので、Macが悪い?よくわかりません・・・。

まとめ

TUIOSには他にも色々操作や設定があるので、tuios --helpコマンドを実行したり、?キーを押してみたり、設定ファイルを眺めてみてください。きっと自分好みの操作を実現できると思います。