43 votes

Comment changer le titre de la fenêtre mintty ?

MinTTY est la nouvelle Console par défaut pour Cygwin.

Quelle est une commande shell (quelque chose que je peux mettre dans .bashrc, ou encore mieux, dans .zshrc) pour changer le titre de la fenêtre MinTTY ?

J'aimerais que le titre de la fenêtre soit le chemin vers le répertoire actuel, et qu'il soit mis à jour lorsque je change de répertoire dans la console.

62voto

boly38 Points 741

Qu'est-ce qui ne va pas

La commande suivante ne fonctionnait pas pour moi:

echo -ne "\e]0;MYTITLE\a"

Il s'avère que mon installation par défaut de Cygwin inclut la définition de l'invite suivante dans .bashrc:

PS1=\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$

Notez que la première partie de l'invite (\e]0;\w\a) défini le titre de la fenêtre chaque fois que l'invite apparaît.

La solution

Ajoutez ces lignes dans votre .bashrc qui définissent 2 fonctions:

function settitle() {
      export PS1="\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
      echo -ne "\e]0;$1\a"
}
function settitlepath() {
      export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
}

Ensuite, vous pouvez définir un titre personnalisé avec cette commande:

settitle "MYWonderfullTest ici"

ou vous pouvez revenir à la configuration par défaut de Cygwin (le chemin actuel) avec cette commande:

settitlepath

En espérant que cela vous aidera

27voto

James Fu Points 399

Vous pouvez le modifier avec la séquence de contrôle xterm pour cela, comme ceci:

echo -ne '\e]0;Titre\a'

Référence : http://code.google.com/p/mintty/issues/detail?id=241

4voto

LeBleu Points 141

Placez ceci dans .zshrc:

# Changer le titre de MinTTY en répertoire actuel
fonction settitle() {
    echo -ne "\033]2;"$1"\007"
}
fonction chpwd() {
    settitle $(cygpath -m `pwd`)
}

La séquence de caractères spéciaux dans la fonction settitle fait que MinTTY change le titre de la fenêtre.

Dans zsh, si vous définissez une fonction avec le nom spécial chpwd, elle sera appelée après chaque chdir.

Fonctionne sur WinXP, avec Cygwin 1.7 et MinTTY exécutant zsh.

2voto

Alex Points 21

En bash, la variable PROMPT_COMMAND peut être définie pour contenir un certain nombre de commandes, séparées par des points-virgules. Vous pouvez utiliser cela pour effectuer le même réglage de titre tel que décrit dans l'autre réponse qui parle de zsh.

2voto

orbit andrews Points 21
1) echo $PS1 et copiez cette chaîne dans votre presse-papiers ou éditeur de texte, comme dans
   echo $PS1
2) éditez ~/.bash\_profile et ajoutez le code shell ci-dessous, en remplaçant $PS1 selon les besoins mais en conservant la variable ${TERMINAL\_TITLE} dans la condition "false".
3) Enregistrez le fichier et définissez la variable d'environnement TERMINAL\_TITLE, comme dans
   export TERMINAL\_TITLE="Mon Titre Personnalisé"
4) Sourcez votre profil bash, comme dans
   . ~/.bash\_profile
Enjoy

if \[ -z "${TERMINAL\_TITLE}" \]
then
  PS1='\\\[\\e\]0;\\w\\a\\\]\\n\\\[\\e\[32m\\\]\\u@\\h \\\[\\e\[33m\\\]\\w\\\[\\e\[0m\\\]\\n\\$ '
else
  PS1='\\\[\\e\]0;${TERMINAL\_TITLE}\\a\\\]\\n\\\[\\e\[32m\\\]\\u@\\h \\\[\\e\[33m\\\]\\w\\\[\\e\[0m\\\]\\n\\$ '
fi

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