Como manter o título da janela do terminal em sincronia com a janela do tmux

5

Estou usando um programa chamado "Timing" para acompanhar meu tempo. O tempo usa o nome da janela atual no iTerm para fins de categorização.

Gostaria de definir o título atual do iTerm para corresponder ao nome da janela do tmux atualmente ativa.

Eu configurei um arquivo em ~/.config/fish/functions/fish_title.fish com:

function fish_title
  tmux display-message -p '#W'
end

Isso produz com sucesso o título atual da janela do Tmux para a janela do terminal sempre que eu abro uma nova janela de terminal. No entanto, se eu renomear uma janela do tmux ou alternar para uma nova janela, o terminal não será atualizado.

Ele atualiza se eu uso algo como pwd em fish_title :

function fish_title
  pwd
end

Alguma idéia de como fazer fish_title pegar o nome da janela do tmux dinamicamente?

    
por scottlabs 07.07.2016 / 17:24

1 resposta

7

A primeira coisa a salientar é que você pode fazer isso via tmux completamente independente do seu shell. Adicione o seguinte ao seu ~ / .tmux.conf; por exemplo:

set-option -g set-titles on
set-option -g set-titles-string "#S / #W"

Além disso, você precisa garantir que o iTerm2 esteja configurado para permitir que os programas definam o título por meio de uma seqüência de escape. Consulte a seção "O terminal pode definir o título da guia / janela" no link .

Mas o seu verdadeiro problema é que a sequência de escape enviada pela função fish_title não é passada pelo tmux. O Tmux usa o valor para definir o título do painel. Isso é explicado, embora não claramente, na seção "NOMES E TÍTULOS" de man tmux . Adicione #T ao set-titles-string para ver que ele está, de fato, sendo definido com o mesmo valor que o nome da janela por meio da função fish_title .

    
por 09.07.2016 / 00:57