Gibt es eine Möglichkeit, einen tmux-Server zu steuern und Befehle an ihn zu senden, wie z. B. das Wechseln zu einem bestimmten Fenster in einer Sitzung, oder einige Abfragen über die Fenster durch den von ihm erstellten Socket zu stellen?
Ich habe libtmux für Python untersucht und es scheint in gewisser Weise zu fehlen. Gibt es eine offizielle Referenz für die tmux-API, wo ich suchen könnte? Das offizielle tmux-Paket meiner Distribution enthält nur eine einzige tmux-Binärdatei.
Gibt es einen anderen Weg als das Lesen der Quelle, um herauszufinden, wie man tmux über seinen Socket steuern kann?
Gibt es andere Terminal-Multiplexer, die es einfach machen/machen sollen?
Akzeptierte Antwort:
Es ist nicht schwierig, die von Ihnen gestellten Aufgaben mit python-tmux zu erledigen.
Z.B. wenn Sie einen neuen Server mit dem Sitzungsnamen foo
startentmux new-session -s foo
Sie können es über python tmux (vorausgesetzt, die Python-Bibliothek ist installiert) von ipython via
anhängenimport libtmux
server = libtmux.Server()
session = server.find_where({ "session_name": "foo" })
Dann können Sie in Ihrem tmux-Fenster die Aktion von Befehlen beobachten, z. B.
session.cmd("send-keys","x")
sendet einen Tastendruck „x“. Die gewünschte Pane-Liste kann über
abgefragt werdensession.cmd("list-panes").stdout
und Sie können mit
zu einem bestimmten Fenster (z. B. Nr. 1) wechselnsession.cmd("select-window","-t","1").stdout
Sie müssen den Quellcode von tmux nicht lesen, um dies zu lernen. Alle diese Befehle sind in der Manpage von tmux dokumentiert. Wenn Ihnen das nicht ausreicht, müssen Sie genauer sagen, was Sie damit meinen, dass python-libtmux „irgendwie fehlt“.