Como faço para o OS X definir o título do terminal de volta ao título original ao voltar do ssh?

12

Começando no OS X, eu ssh em foo (uma caixa Linux). O título do meu terminal muda para foo. Então ssh em bar (outra caixa do Linux). O título do meu terminal muda para bar. Eu saio do bar. O título do meu terminal muda para foo. Eu saio de foo. O título do meu terminal permanece em primeiro lugar (em vez de voltar ao título original). Obviamente, o problema não está no terminal, pois ele funciona corretamente ao sair de uma caixa do Linux de volta para uma caixa do Linux. Provavelmente não é ssh, pois tenho o mesmo problema com o vim. Na minha mente isso deixa a concha. Estou usando o BASH. Olhando pelo ambiente, não vejo muita diferença entre a caixa do Linux e a minha caixa do OS X. Ambos estão usando um TERM do xterm.

Chas. Owens
fonte

Respostas:

14

Adicionando

export PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'

para o meu .bash_profilecorrigiu o problema.

Parece que a string PROMPT_COMMANDé executada toda vez que o prompt é exibido. Na página do manual:

PROMPT_COMMAND

Se definido, o valor é executado como um comando antes da emissão de cada prompt primário.

Chas. Owens
fonte
3
É improvável que você faça login no OS X através do console, mas isso pode acontecer. Para evitar problemas nesse caso, envolvo tudo isso em um case "$TERM" in xterm*|rxvt*)tipo de transação. Eu acho que originalmente teve a idéia a partir daqui: tldp.org/HOWTO/Bash-Prompt-HOWTO/...
Telêmaco
Ah, também acho melhor entrar nas preferências do Terminal.app (Preferências -> Configurações -> Janela) e remover tudo o que ele tenta adicionar à barra de título, mas sim.
Telemachus
Bem, eu iTerm.appnão uso Terminal.app, e está funcionando. Você tem uma opinião sobre o terminal real. Minha caixa do Linux tem essa verificação, então vou adicioná-la ao meu perfil, obrigado.
Chas. Owens