C'è un modo per controllare un server tmux e inviargli comandi come passare a una finestra specifica in una sessione, o fare alcune domande sui riquadri attraverso il socket che crea?
Ho esaminato libtmux per Python e sembra che manchi in qualche modo. C'è un riferimento ufficiale per l'api tmux dove potrei guardare? Il pacchetto ufficiale tmux sulla mia distribuzione contiene solo un singolo binario tmux.
C'è un altro modo oltre a leggere la fonte per scoprire come si può controllare tmux attraverso il suo socket?
Ci sono altri multiplexer di terminali che lo rendono facile/hanno lo scopo di renderlo facile?
Risposta accettata:
Non è difficile eseguire i compiti che chiedi usando python-tmux.
Per esempio. se avvii un nuovo server con il nome della sessione foo
tmux new-session -s foo
puoi collegarlo tramite python tmux (supponendo che la libreria python sia installata) da ipython tramite
import libtmux
server = libtmux.Server()
session = server.find_where({ "session_name": "foo" })
Quindi puoi guardare nella tua finestra di tmux l'azione dei comandi ad es.
session.cmd("send-keys","x")
invierà una sequenza di tasti "x". L'elenco dei riquadri che hai richiesto può essere consultato tramite
session.cmd("list-panes").stdout
e puoi passare a una finestra specifica (diciamo nr. 1) con
session.cmd("select-window","-t","1").stdout
Non è necessario leggere il codice sorgente di tmux per imparare questo. Tutti questi comandi sono documentati nella pagina man di tmux. Se questo non è sufficiente per te, devi essere più specifico di cosa intendi per python-libtmux "mancante in qualche modo".