¿Hay alguna forma de controlar un servidor tmux y enviarle comandos como cambiar a una ventana específica en una sesión, o hacer algunas consultas sobre los paneles a través del socket que crea?
He investigado libtmux para python y parece que falta en algunos aspectos. ¿Hay una referencia oficial para la API de tmux donde pueda buscar? El paquete oficial tmux en mi distribución contiene solo un único binario tmux.
¿Hay alguna otra forma que no sea leer la fuente para averiguar cómo se puede controlar tmux a través de su zócalo?
¿Existen otros multiplexores de terminal que lo faciliten o estén destinados a hacerlo fácil?
Respuesta aceptada:
No es difícil hacer las tareas que pide usando python-tmux.
P.ej. si inicia un nuevo servidor con el nombre de sesión foo
tmux new-session -s foo
puede adjuntarlo a través de python tmux (suponiendo que la biblioteca de python esté instalada) desde ipython a través de
import libtmux
server = libtmux.Server()
session = server.find_where({ "session_name": "foo" })
Luego puede ver en su ventana tmux la acción de los comandos, por ejemplo,
session.cmd("send-keys","x")
enviará una pulsación de tecla "x". La lista de paneles que solicitó se puede consultar a través de
session.cmd("list-panes").stdout
y puede cambiar a una ventana específica (digamos nr. 1) con
session.cmd("select-window","-t","1").stdout
No tiene que leer el código fuente de tmux para aprender esto. Todos estos comandos están documentados en la página del manual de tmux. Si esto no es suficiente para usted, debe ser más específico a lo que se refiere con que python-libtmux "falta de alguna manera".