Androidでtmux
スマートフォンの接続はよく切れます。サーバーでtmuxを使っていれば、そのときもプログラムは動き続け、Termexaが同じセッションに戻してくれます。このページでは、設定方法とアプリに組み込まれたtmuxの機能を紹介します。
スマートフォンでtmuxが大切な理由
- Wi-Fiとモバイルデータの切り替えや画面オフでSSH接続が切れることがあり、普通のシェルでは実行中のプログラムも一緒に止まることがあります。
- tmuxのキー操作(プレフィックスのあとにキー)は、スマートフォンのキーボードでは何度もタップが必要です。
- 小さな画面では、今どのウィンドウやペインにいるのかが分かりにくくなります。
Termexaでtmuxを設定する
- アタッチするコマンドを保存します。 ホストの実行するコマンドに
tmux new -A -s mainと入力します。mainというセッションがあればアタッチし、なければ作ります。Termexaは再接続のたびに同じコマンドを実行するので、元の場所に戻れます。 - tmuxキーを追加します。 設定 → ショートカットパネルで枠をタップし、プラグインタブを開きます。tmuxの行には、前/次のウィンドウ、新しいウィンドウ、次/直前のペイン、拡大、左右・上下の分割、コピーモード、デタッチがあり、方向ごとのペイン移動、ペインを閉じる、ウィンドウ・セッションの一覧もあります。プレフィックスはTermexaが代わりに送ります。
- ナビゲーターを使います。 ナビキーを追加します。SSHでtmuxのセッション、ウィンドウ、ペインを読み取って一覧表示し、1つをタップするとターミナルがそこへ移動します。
- スマートフォンにコピーします。 tmuxでクリップボード連携を有効にすると、tmuxでコピーしたテキストがスマートフォンのクリップボードに届きます。Termexaはホストごとに一度だけ確認し、サーバーがスマートフォンのクリップボードを読むことはできません。
例: ~/.tmux.conf
# tmuxでコピーしたテキストをスマートフォンのクリップボードへ(OSC 52)
set -g set-clipboard on
# tmuxの中でもTermexaの「コマンド完了」通知が届くようにする
set -g allow-passthrough on
完了通知には、bashやzsh向けのシェル統合も数行必要です(fish 4には最初から入っています)。はじめにガイドに載っています。
長い出力を読む
コピーモードキーでtmuxの履歴をさかのぼって読み、qで抜けます。拡大は今のペインを画面いっぱいに広げるので、幅の狭いスマートフォンで役立ちます。
Herdrにも対応
Termexaは、複数のターミナルやコーディングエージェントを1つの画面で動かすマルチプレクサHerdrにも同じように対応しています。herdr --session mainを実行するコマンドとして保存してください。Herdrでは、エージェントが入力を待っているペインもナビゲーターに表示されます。
よくある質問
Termexaを使うのにtmuxは必要ですか?
いいえ。Termexaは普通のSSHシェルとしても使えます。tmuxやHerdrがあると、ナビゲーター、マルチプレクサ用のキー、接続が切れても残るセッションが加わります。
スマートフォンの接続が切れてもプログラムは動き続けますか?
tmuxの中なら、はい。サーバー上で動き続け、Termexaが保存したコマンドで再アタッチします。マルチプレクサのない普通のシェルでは、接続が閉じるとプログラムが止まることがあります。
Termexaはどのtmuxプレフィックスを送りますか?
既定はtmuxと同じCtrl+Bです。ツールバーのtmuxキーは、プレフィックスとコマンドキーをまとめて送ります。
スマートフォンでtmuxのセッションをすべて見られますか?
はい。ナビゲーターがセッション、ウィンドウ、ペインを一覧表示し、タップした場所へターミナルを移動します。
tmuxでのコピーはスマートフォンのクリップボードに届きますか?
はい、tmuxでset-clipboardを有効にすれば届きます。Termexaは、そのサーバーからのクリップボード書き込みを受け入れる前に、ホストごとに一度確認します。