tmuxサーバーを制御し、セッション内の特定のウィンドウに切り替えたり、生成されたソケットを介してウィンドウにいくつかのクエリを送信するなどのコマンドを送信する方法はありますか?
Pythonのlibtmuxを見ましたが、一部の領域では不足しているようです。 tmux apiの公式参照を確認できますか?私のディストリビューションの公式tmuxパッケージにはtmuxバイナリのみが含まれています。
ソースコードを読むことに加えて、ソケットを介してtmuxを制御する方法を理解する他の方法はありますか?これを簡単にするか、目標にする他の端末マルチプレクサはありますか?
答え1
python-tmuxを使って欲しいものを達成することは難しくありません。
たとえば、セッション名がfooの新しいサーバーを起動した場合
tmux new-session -s foo
ipythonを介してpython tmuxを介して接続できます(pythonライブラリがインストールされていると仮定)。
import libtmux
server = libtmux.Server()
session = server.find_where({ "session_name": "foo" })
その後、tmuxウィンドウでコマンドが実行されている様子を確認できます。
session.cmd("send-keys","x")
キー入力「x」が送信されます。要求されたウィンドウのリストは、次のように照会できます。
session.cmd("list-panes").stdout
次のコマンドを使用して特定のウィンドウ(nr.1など)に切り替えることができます。
session.cmd("select-window","-t","1").stdout
これを理解するためにtmuxのソースコードを読む必要はありません。これらのコマンドはすべてtmuxのマニュアルページに文書化されています。それが十分でない場合は、python-libtmuxが「ある意味では不足している」ことが何を意味するのかをより具体的に説明する必要があります。