tmux socket api

2

Existe alguma maneira de controlar um servidor tmux e enviar comandos para ele, como alternar para uma janela específica em uma sessão, ou fazer algumas consultas sobre os painéis através do soquete que ele cria?

Eu olhei em libtmux para python e parece estar faltando em alguns aspectos. Existe uma referência oficial para o tmux api onde eu poderia procurar? O pacote oficial do tmux na minha distro contém apenas um único binário do tmux.

Existe alguma outra maneira de ler a fonte para descobrir como alguém pode controlar o tmux através de seu soquete? Existem outros multiplexadores de terminais que facilitem / se destinam a facilitar a tarefa?

    
por saga 10.04.2018 / 15:00

1 resposta

3

Não é difícil fazer as tarefas que você faz usando python-tmux.

Por exemplo se você iniciar um novo servidor com o nome da sessão foo

tmux new-session -s foo

você pode anexar a ele via python tmux (assumindo que a biblioteca python está instalada) do ipython via

import libtmux
server = libtmux.Server()
session = server.find_where({ "session_name": "foo" })

Então você pode assistir na sua janela do tmux a ação dos comandos, por exemplo

session.cmd("send-keys","x")

enviará um toque de tecla "x". A lista do painel que você pediu pode ser consultada via

session.cmd("list-panes").stdout

e você pode mudar para uma janela específica (digamos, nº 1) com

session.cmd("select-window","-t","1").stdout

Você não precisa ler o código fonte do tmux para aprender isso. Todos esses comandos estão documentados na página man do tmux. Se isso não for suficiente para você, você precisa ser mais específico do que você entende por python-libtmux sendo "carente de alguma forma".

    
por 16.04.2018 / 12:27