tmux: Encontre a janela “my”, verifique se está ativa

1

Eu quero encontrar alguma maneira de um programa encontrar as seguintes informações:

1) Em qual janela estou correndo?

2) Essa janela é a janela ativa?

A idéia é que, em um programa como o WeeChat, eu mude para outra janela e trabalhe em algo. Quando eu mudo, eu gostaria de executar 'set_unread_current_buffer' - então, quando eu retornar a essa janela, o WeeChat terá uma linha após minhas últimas mensagens lidas.

Há alguns plugins do WeeChat por aí, mas eles descobrem em qual sessão o WeeChat está anexado, e se essa sessão está ou não anexada, e define o status / away apropriadamente.

Eu estou procurando por algo semelhante, mas para quando eu mudar de janelas, e apenas para executar 'set_unread_current_buffer' em vez de / away

    
por user3594846 29.05.2014 / 22:05

1 resposta

2

Se você estiver executando comandos dentro de um painel tmux , poderá usar a variável de ambiente TMUX_PANE * para direcionar o painel "contendo".

Para identificar a janela "contendo":

tmux display-message -pt "$TMUX_PANE" '#{session_name}:#{window_index}'

Ou, dependendo das suas necessidades, talvez você queira usar window_id . A man page tem uma lista de outras variáveis de formato. Por exemplo, quando executado dentro de um painel, este comando

tmux display-message -pt "$TMUX_PANE" '#{window_active}'

gerará 1 se a janela do painel estiver ativa ou 0 caso contrário.

Você pode usar pane_active se quiser saber se o painel específico está ativo.

Se desejar verificar em outro painel, você precisará fornecer seu próprio identificador de painel de destino (como sess:win.0 ).

* tmux 1.5 e posteriores define TMUX_PANE para o painel como um valor único ao iniciar seu comando inicial; outros programas executados através deste programa inicial geralmente herdarão essa variável de ambiente.

    
por 30.05.2014 / 09:25

Tags