62 votes

Modifier les titres des fenêtres et des onglets de l'iTerm2 dans zsh

Je veux étiqueter les onglets de fenêtre des sessions de terminal. J'utilise le zshell dans iterm2 sous OSX. Est-il possible de changer l'étiquette d'un onglet de fenêtre de manière dynamique dans le terminal ?

54voto

Daniel Beck Points 105590

Vous pouvez saisir les éléments suivants dans zsh pour définir le titre de la fenêtre de l'iTerm2 :

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

Si vous souhaitez automatiser cela pour insérer par exemple l'heure actuelle ou le répertoire de travail, modifiez votre fichier zsh pour définir le titre dans les fichiers de configuration precmd() pour, par exemple $PWD .

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

Vous pouvez lire sur le precmd fonction dans man zshmisc dans la section SPECIAL FUNCTIONS .

enter image description here

52voto

Tylla Points 11

Ce qui marche pour moi :

echo -e "\033];this is the title\007"

Si vous utilisez Mac OSX et iTerm, iTerm2: :

  • Préférences iTerm Apparence Fenêtre et onglets Titres décochez tout

Si vous utilisez Oh My Zsh, vous devrez peut-être modifier vos paramètres. Vos paramètres se trouvent généralement dans le fichier ~/.zshrc . Vous devez ajouter ou modifier vos paramètres pour vous assurer que cette ligne existe :

DISABLE_AUTO_TITLE="true"

41voto

Alex Points 21

L'un des avantages d'utiliser iTerm est la possibilité de définir séparément le titre de la fenêtre et celui de l'onglet : example of using tab & window title separately

# $1 = type; 0 - both, 1 - tab, 2 - title
# rest = text
setTerminalText () {
    # echo works in bash & zsh
    local mode=$1 ; shift
    echo -ne "\033]$mode;$@\007"
}
stt_both  () { setTerminalText 0 $@; }
stt_tab   () { setTerminalText 1 $@; }
stt_title () { setTerminalText 2 $@; }

De cette façon, vous pouvez immédiatement voir à quel hôte vous êtes connecté dans quelle fenêtre, et le titre de la fenêtre pour chaque onglet indique user & CWD.

5voto

Chris Gaudreau Points 151

A precmd fait l'affaire. Cependant, certains thèmes oh-my-zsh s'amusent avec le titre de la fenêtre. Définissez PR_TITLEBAR à une chaîne vide pour le réparer.

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

Je vous recommande également de jouer avec les paramètres d'onglet d'iTerm2 dans Préférences -> Apparence.

4voto

engineforce Points 111

Aucune des réponses ne semble fonctionner pour moi, probablement pour la version iterm2 (3.3.3).

J'ai découvert ça : https://gist.github.com/phette23/5270658#gistcomment-3020766

Essentiellement, vous pouvez faire tout ce qui est dit dans toutes les autres réponses, mais vous devez également définir Preferences > Profiles > General > Title -> Name (Job)

Cela a marché pour moi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X