Desativar janelas para renomear a si mesmas no tmux

4

Instalei o tmux em um sistema OS X com zsh fornecido pelo oh-my-zsh.

Eu costumo usar um bom número de janelas tmux para um monte de sessões ssh, e eu gosto de manter essas janelas nomeadas após os hosts com os quais estou trabalhando, então fica muito mais fácil para mim descobrir qual janela contém o que.

Eu tentei adicionar linhas de configuração como set-window-option -g automatic-rename off e set-option -g allow-rename off ao meu ~ / .tmux.conf, no entanto, se eu iniciar uma nova sessão do tmux, renomeie a janela e cd em um diretório diferente. a janela novamente para corresponder ao diretório de trabalho atual.

Como posso nomear janelas sem que elas mudem automaticamente?

    
por Ryan Morrison 09.04.2014 / 04:36

2 respostas

7

Eu tive um problema semelhante, mas com byobu-screen e depois de algumas pesquisas, descobriu-se que é o recurso oh-my-zsh .

Isso foi discutido em oh-my-zsh questões página

Em resumo, eu tive que remover o comentário de DISABLE_AUTO_TITLE="true" line no meu arquivo ~/.zshrc .

Com base na versão do oh-my-zsh , talvez seja necessário adicionar export DISABLE_AUTO_TITLE="true" .

    
por 09.09.2014 / 17:22
1

Estou ciente de que isso não responde a perguntas diretas, mas pode ajudá-lo a obter o comportamento desejado - e é muito longo para um comentário

IMHO você deve curar a causa e não tentar aliviar os sintomas ... o que eu quero dizer é o seguinte: Em algum lugar na sua configuração de shell (provavelmente em um de seus plugins oh-my-zsh ativados) o título da janela fica define toda vez que você altera o diretório atual. Muito provavelmente na função precmd() ou chpwd() . Então, primeiro verifique a saída de

$ which precmd
$ which chpwd

e tente encontrar a fonte em seus arquivos zsh rc.

Uma alternativa pode ser, sobrescrever essas funções (com a opção tmux automatic-rename desligada e permitir renomear ):

$ chpwd() { }
$ precmd() {
    if [[ "$TERM" = "screen" ]] && [[ -n "$TMUX" ]]; then
       print -Pn "3k%m3\"
    fi
  }

Observações:

  • Eu usei o cheque se você está em uma sessão do tmux de essa resposta
  • O título da janela é alterado por meio da impressão de uma sequência de escape toda vez antes de o prompt ser redesenhado
  • print -P usa as mesmas expansões como no prompt (veja EXPANSÃO DE SEQUÊNCIAS PROMPT em man zshmisc ), então %m expande para o nome do host até o primeiro ponto.

Certifique-se de inserir este código no seu arquivo ~/.zshrc depois que oh-my-zsh for carregado.

Um último ponto, que me vem à mente: O nome do host só pode ser definido pelo host em que você faz login. Portanto, certifique-se de que a configuração de todas essas máquinas seja

    
por 24.04.2014 / 21:18

Tags