Altere os títulos da janela e da guia iTerm2 em zsh

48

Eu quero rotular as guias da janela das sessões de terminal. Estou usando o zshell em iterm2 no OSX. É possível alterar o rótulo de uma aba da janela dinamicamente no terminal?

    
por bneil 03.06.2011 / 21:30

6 respostas

47

Você pode inserir o seguinte em zsh para definir o título da janela do iTerm2:

echo -ne "\e]1;this is the title\a"

Se você quiser automatizar isso, por exemplo, insira o horário atual ou o diretório de trabalho, edite seus arquivos de configuração zsh para definir o título na função precmd() para, por exemplo, $PWD .

echo -ne "\e]1;$PWD\a"

Você pode ler sobre a função precmd em man zshmisc na seção SPECIAL FUNCTIONS .

    
por 03.06.2011 / 21:41
43

O que funciona para mim:

echo -e "3];this is the title
DISABLE_AUTO_TITLE="true"
7"

Se você usa Mac OSX e iTerm, iTerm2 ::

  • iTerm → Preferências → Aparência → Janela & Tab Títulos → desmarque todos

Se você usar zsh, talvez seja necessário editar suas configurações. Suas configurações geralmente estão no arquivo ~/.zshrc . Você deseja adicionar ou editar suas configurações para garantir que essa linha exista:

echo -e "3];this is the title
DISABLE_AUTO_TITLE="true"
7"
    
por 21.04.2012 / 03:37
38

Uma das comodidades de usar o iTerm é a possibilidade de definir o título da janela & título da guia separadamente:

#$1=type;0-both,1-tab,2-title#rest=textsetTerminalText(){#echoworksinbash&zshlocalmode=$1;shiftecho-ne"3]$mode;$@
# $1 = type; 0 - both, 1 - tab, 2 - title
# rest = text
setTerminalText () {
    # echo works in bash & zsh
    local mode=$1 ; shift
    echo -ne "3]$mode;$@%pre%7"
}
stt_both  () { setTerminalText 0 $@; }
stt_tab   () { setTerminalText 1 $@; }
stt_title () { setTerminalText 2 $@; }
7" } stt_both () { setTerminalText 0 $@; } stt_tab () { setTerminalText 1 $@; } stt_title () { setTerminalText 2 $@; }

Dessa forma, você pode ver imediatamente a que host está conectado em qual janela, e o título da janela de cada guia mostra user & CWD.

    
por 08.10.2011 / 18:46
4

Um precmd faz o truque. No entanto, alguns temas de "oh-my-zsh" mexem com o título da janela. Defina PR_TITLEBAR como uma string vazia para corrigi-lo.

set-window-title() {
  # /Users/clessg/projects/dotfiles -> ~/p/dotfiles
  window_title="\e]0;${${PWD/#"$HOME"/~}/projects/p}\a"
  echo -ne "$window_title"
}

PR_TITLEBAR=''
set-window-title
add-zsh-hook precmd set-window-title

Também recomendo brincar com as configurações de tabulação do iTerm2 em Preferências - > Aparência.

    
por 28.07.2015 / 04:42
1

Adicionando export PROMPT_COMMAND='echo -ne "3]0;$PWD~/.bash_profile7"' em %code% funcionou para mim.

link

    
por 23.05.2013 / 08:46
-2

iTerm - > Preferências - > Aparência - > Window & Títulos de guias - > marque Mostrar opção do nome do perfil

    
por 03.11.2016 / 19:04