Envie um comando para uma sessão tmux em execução (como a tela -X)

6

Eu estou olhando para mudar de tela para tmux para minhas necessidades de multiplexação de terminal, mas há um recurso de tela que eu preciso replicar no tmux: a opção -X, que permite executar comandos de tela arbitrários dentro de uma tela existente sessão. Isso me permite modificar o ambiente de uma sessão de tela em execução para apontar para um novo servidor X, já que minhas sessões de tela tendem a viver mais do que meus logins do X11. Por exemplo, eu poderia colocar algo screen -X setenv DISPLAY $DISPLAY em meus scripts de inicialização do X11.

De qualquer forma, existe uma maneira no tmux de enviar comandos arbitrários para uma sessão tmux em execução? Como alternativa, uma maneira de atualizar variáveis de ambiente em um tmux em execução seria aceitável.

    
por Ryan Thompson 26.12.2011 / 21:00

2 respostas

8

É apenas tmux , opcionalmente com a opção -t para selecionar uma sessão (correspondente a -S para a tela).

tmux set-environment DISPLAY $DISPLAY
    
por 26.12.2011 / 23:42
1

Respondendo a parte da pergunta sobre a atualização do ambiente: tmux por padrão herda certas variáveis do ambiente do cliente ao criar ou reconectar uma sessão.

Na página de manual:

The update-environment session option may be used to update the session environment from the client when a new session is created or an old reattached.

The default is "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY".

Assim, você não precisa fazer nada para obter a configuração DISPLAY atualizada ao reconectar uma sessão.

Observe que isso só entra em vigor para as novas janelas ou painéis criados na sessão antiga, mas não para as janelas existentes.

    
por 05.04.2012 / 23:21