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.

1voto

salmane Points 1631

J'ai utilisé la réponse de Leonel, mais j'ai constaté que le titre clignotait uniquement lorsque je le faisais, ce qui signifie que la commande echo fonctionne comme prévu. J'ai exécuté zsh de manière interactive avec le mode de débogage activé en utilisant

zsh -xv

Changer de répertoire invoque apparemment une autre fonction appelée title() après precmd() et chpwd(), les écrasant effectivement. J'ai donc ajouté ceci dans mon .zshrc et cela a fonctionné.

function settitle() {
    echo -ne "\033]2;"$1"\007"
}
function title() {
    settitle $(cygpath -m `pwd`)
}

Si vous préférez utiliser chpwd() ou precmd() à la place, il suffit de désactiver la fonction title : title(){}.

1voto

Natza Mitzi Points 491

Juste voulais partager ma solution à ce problème car j'utilise mintty pour exécuter un script.

Mon raccourci mintty est configuré comme suit:

C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico /usr/bin/bash.exe -l -c /scripts/connect.sh

Le script connect.sh que j'ai écrit et qui est appelé dans le raccourci ci-dessus me demandera le serveur auquel je veux me connecter ET exécutera la fonction settitle définie dans le script.

connect.sh

#!/bin/bash

echo "Entrez le nom du serveur lorsqu'il est demandé"
echo -n "nom du serveur : " 
read servername
function settitle() {
    echo -ne "\033]2;"$servername"\007"
}
function title() {
    settitle $(cygpath -m `pwd`)
}
settitle
ssh mon_nom_utilisateur@$servername

1voto

coubeatczech Points 2457

Essaie d'ajouter ceci dans .bash_profile

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

Ça fonctionne pour moi.

0voto

David Dyck Points 41

Plusieurs utilisateurs ont indiqué que les codes d'échappement ne fonctionnaient pas - alors essayez d'ajouter un délai après la commande - ( pour observer que les codes d'échappement sont traités ) et alors il devient évident que l'invite de commandes bash peut réinitialiser le titre des fenêtres

echo -ne "\e]0;MONTITRE\a" ; sleep 2

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