web-dev-qa-db-fra.com

Comment changer le titre du terminal Git sous Windows?

Je travaille sous Windows 10 et, en règle générale, j'ai ouvert jusqu'à 5 fenêtres CMD. Je le fais parce que je dois exécuter la même application avec des données différentes et continuer à surveiller si une exception est levée.

Je change le titre de la fenêtre (en utilisant la commande title) et utilise des nombres à la place du texte par défaut, afin d'identifier facilement la fenêtre dans laquelle je travaille et de pouvoir identifier et changer entre eux en utilisant Alt+Tab ( un exemple de comment je travaille avec mes fenêtres CMD )

Récemment, j'ai commencé à utiliser Git et j'aime beaucoup le terminal Git Bash pour Windows. J'aimerais travailler avec le terminal Git Bash de la même façon que je travaille avec les fenêtres CMD, mais je ne trouve aucun moyen de changer le titre de la fenêtre. J'ai cherché un peu et trouvé ces instructions et quelques autres (que je ne peux pas coller parce que je ne suis pas autorisé à poster plus de deux liens), mais cela semble fonctionner uniquement en définissant un titre par défaut différent. J'aimerais changer le titre de la fenêtre en n'importe quel texte personnalisé que je choisis, à tout moment.

Est-ce possible? Existe-t-il une commande comme title disponible pour Git Bash?

8

Vous étiez sur la bonne voie avec ce lien

Si vous modifiez un peu le script git-Prompt.sh (pour moi, il se trouve dans c:\Program Files (x86)\Git\etc\profile.d\git-Prompt.sh), vous pouvez créer le titre comme vous le souhaitez.

Remarque: vous devrez exécuter Notepad ++ ou un administrateur similaire en tant qu'administrateur pour écrire dans ce répertoire.

Commencez par sauvegarder une sauvegarde de git-Prompt.sh (comme git-Prompt.backup.sh, bien sûr), puis modifiez le début de git-Prompt.sh comme suit:

[Edit: a corrigé le premier indicateur test de -n à -z afin de rechercher une variable $ GITTITLEPREFIX vide plutôt qu'une variable non vide et d'ajouter le 'fi' manquant.]

if test -z "$GITTITLEPREFIX" # if not empty
then
    GITTITLEPREFIX="Git-Bash => " # prefix that will have current pwd appended after it
fi

if test -f ~/.config/git/git-Prompt.sh
then
    . ~/.config/git/git-Prompt.sh
else
    if test -n "$GITTITLE"
    then   ##### Set window title directly to GITTITLE if not empty
        PS1='\[\033]0;$GITTITLE\007\]' 
    else   ##### Set window title to GITTITLE PREFIX plus the PWD
        PS1='\[\033]0;$GITTITLEPREFIX${PWD//]^[:ascii:]]/?}\007\]' 
    fi
fi
###### Leave the rest of the file the same
    PS1="$PS1"'\n'
    PS1="$PS1"'\[\033[32m\]'
###### Etc.

Cela va d'abord vérifier si GITTITLEPREFIX est vide, sinon, il le mettra à "Git-Bash =>" comme dans l'article lié. Le chemin courant sera ajouté après, donc si vous voulez "1: $ PWD", définissez GITTITLEPREFIX sur "1:" comme ceci:

GITTITLEPREFIX="1 : "

Sinon, vous pouvez définir GITTITLE sur n'importe quelle valeur non vide, puis le titre entier sera défini exactement sur le contenu de GITTITLE (aucun PWD ajouté), donc si vous voulez juste "1", utilisez ceci:

GITTITLE="1"

Ensuite, lancez le script. Avec mon chemin, je l'ai fait comme ça:

. "/c/Program Files (x86)/Git/etc/profile.d/git-Prompt.sh"

et le titre devrait changer. Bien sûr, vous pouvez aliaser cela ou en faire un script séparé à un emplacement situé dans le chemin, son exécution est donc beaucoup plus simple et le titre pourrait n'être qu'un argument. Je vais laisser cela comme un exercice pour le lecteur ...

4
LightCC

Ce fil a quelques mois. Mais je pense qu'une alternative sera utile

Vous pouvez ajouter la ligne suivante au fichier .bashrc dans votre dossier de profil utilisateur

export TITLEPREFIX="Git Bash"

où vous voulez Git bash être votre préfixe de titre. Ceci est un changement spécifique à l'utilisateur. Ainsi, si plusieurs utilisateurs utilisent une machine avec leurs propres connexions, tout le monde peut personnaliser son titre.

5
user3086265

J'ai résolu ma question en apportant très peu de modifications au script. Le premier, pour passer le nom que je veux pour la fenêtre, j’ai ajouté la variable name=$1 et l’ai défini dans la variable title:

name=$1
PS1='\[\033]0;$name\007\]' # set window title

Le second, comme recommandé ici , j'ai commenté les lignes suivantes:

#PS1="$PS1"'\[\033[35m\]'       # change to purple
#PS1="$PS1"'$MSYSTEM '          # show MSYSTEM

Le code final est ci-dessous:

if test -f /etc/profile.d/git-sdk.sh
then
    TITLEPREFIX=SDK-${MSYSTEM#MINGW}
else
    TITLEPREFIX=$MSYSTEM
fi
name=$1
PS1='\[\033]0;$name\007\]' # set window title
PS1="$PS1"'\n'                 # new line
PS1="$PS1"'\[\033[32m\]'       # change to green
PS1="$PS1"'\u@\h '             # user@Host<space>
#PS1="$PS1"'\[\033[35m\]'       # change to purple
#PS1="$PS1"'$MSYSTEM '          # show MSYSTEM
PS1="$PS1"'\[\033[33m\]'       # change to brownish yellow
PS1="$PS1"'\w'                 # current working directory
if test -z "$WINELOADERNOEXEC"
then
    GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
    COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}"
    COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}"
    COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
    if test -f "$COMPLETION_PATH/git-Prompt.sh"
    then
        . "$COMPLETION_PATH/git-completion.bash"
        . "$COMPLETION_PATH/git-Prompt.sh"
        PS1="$PS1"'\[\033[36m\]'  # change color to cyan
        PS1="$PS1"'`__git_ps1`'   # bash function
    fi
fi
PS1="$PS1"'\[\033[0m\]'        # change color
PS1="$PS1"'\n'                 # new line
PS1="$PS1"'$ '                 # Prompt: always $
MSYS2_PS1="$PS1"               # for detection by MSYS2 SDK's bash.basrc

Temporairement, j'ai fait une copie du script et l'ai collé sur C :, pour l'exécuter facilement chaque fois que je dois changer le titre, en fonction de mon chemin, comme suit: $ . /c/changename.sh 

Je suis encore en train d'apprendre à utiliser des scripts pour pouvoir créer un alias. Comme @LightCC a déclaré: "Je vais laisser cela comme un exercice pour le lecteur ..."

1

Une option simple est echo -ne "\e]0;YOUR TITLE HERE\a".

1
Fabio A. Correa