Costumo ter um fluxo de trabalho com muitas janelas de terminal em minha tela, todas executando o tmux com várias coisas diferentes sendo executadas nelas. Muitas vezes me pego querendo saber "onde esse processo em segundo plano está sendo executado?" Posso encontrar facilmente o nome tty em que está sendo executado (ps mostra), mas descobrir em qual janela olhar é muito difícil.
Meu pensamento óbvio foi "Vamos usar a linha de status do tmux para exibir isso!". Então eu tentei o comando
set-option -g window-status-format "#(tty):#W#F"
mas, infelizmente, isso parece ser exibido not a tty
na linha de status em vez do tty da janela. Existe alguma boa maneira de fazer isso exibir o nome tty?
Tmux é um multiplexador de terminal. Seu servidor tmux fornece ttys para processos em execução "dentro" do tmux, em painéis (nota: uma janela tmux não dividida em painéis é apenas um grande painel tmux). Os clientes Tmux usam ttys geralmente fornecidos por emuladores de terminal ou terminais virtuais. Os processos usam seus respectivos ttys, o servidor tmux gerencia o fluxo de dados e, finalmente, você vê janelas, painéis e uma linha de status exibida pelo seu cliente tmux em seu tty.
O próprio servidor tmux não está conectado a nenhum tty. O servidor é responsável por atualizar a linha de status. Seu servidor tmux estava invocando o
tty
comando que você especificou e obtevenot a tty
todas as vezes.Parece que você quer saber ttys de painéis, não o tty que o cliente tmux usa. Tente o seguinte comando tmux:
Notas:
window-status-current-format
. Você provavelmente deseja modificá-lo também.#{pane_tty}
em nosso formato mostrará o tty do painel usado mais recentemente na respectiva janela. Toda a sua ideia funcionará muito bem apenas se cada uma das suas janelas do tmux for um grande painel.