Existe-t-il un moyen de contrôler un serveur tmux et de lui envoyer des commandes, comme passer à une fenêtre spécifique dans une session, ou effectuer des requêtes sur les volets via le socket qu'il crée ?
J'ai examiné libtmux pour python et il semble faire défaut à certains égards. Existe-t-il une référence officielle pour l'API tmux où je pourrais regarder ? Le package tmux officiel de ma distribution ne contient qu'un seul binaire tmux.
Existe-t-il un autre moyen que de lire la source pour savoir comment on peut contrôler tmux via son socket ?
Existe-t-il d'autres multiplexeurs de terminaux qui facilitent/visent à faciliter les choses ?
Réponse acceptée :
Il n'est pas difficile de faire les tâches que vous demandez en utilisant python-tmux.
Par exemple. si vous démarrez un nouveau serveur avec le nom de session foo
tmux new-session -s foo
vous pouvez vous y attacher via python tmux (en supposant que la bibliothèque python est installée) depuis ipython via
import libtmux
server = libtmux.Server()
session = server.find_where({ "session_name": "foo" })
Ensuite, vous pouvez regarder dans votre fenêtre tmux l'action des commandes, par exemple
session.cmd("send-keys","x")
enverra une frappe "x". La liste de volets que vous avez demandée peut être interrogée via
session.cmd("list-panes").stdout
et vous pouvez passer à une fenêtre spécifique (disons n° 1) avec
session.cmd("select-window","-t","1").stdout
Vous n'avez pas besoin de lire le code source de tmux pour l'apprendre. Toutes ces commandes sont documentées dans la page de manuel de tmux. Si cela ne vous suffit pas, vous devez être plus précis sur ce que vous entendez par python-libtmux "manquant d'une certaine manière".