web-dev-qa-db-fra.com

xtitle ne change pas le titre dans Ubuntu 11.04

J'essaie de trouver un moyen de changer rapidement le titre d'une fenêtre de Gnome Terminal 2.32.1 car j'en ai quelques-uns ouverts et que je modifie différents fichiers dans chacun d'eux, en utilisant un compilateur dans l'un, en réduisant les fichiers journaux dans d'autres et etc. Par conséquent, il est difficile de chercher la fenêtre que je veux quand ils disent tous pax@pax-desktop:~.

Cette question m'a amené à essayer xtitle mais, pour une raison quelconque, cela ne change pas réellement le titre.

L'exécution de xtitle xyzzy n'entraîne aucun retour visible, mais le passer à travers od confirme qu'il génère une séquence d'échappement (que je suppose en supposant est correct, bien que je n’ai pas vérifié en détail):

pax@pax-desktop:~/porn_dir$ xtitle xyzzy | od -xcb
0000000    5d1b    3b32    7978    7a7a    0779    5d1b    3b31    7978
        033   ]   2   ;   x   y   z   z   y  \a 033   ]   1   ;   x   y
        033 135 062 073 170 171 172 172 171 007 033 135 061 073 170 171
0000020    7a7a    0779
          z   z   y  \a
        172 172 171 007
0000024

Je peux aller dans le menu Terminal | Set Title et le changer à partir de là, mais je préférerais de loin une solution en ligne de commande, car je peux le faire automatiquement (comme créer un alias vi qui fixe le titre à vi filename avant d'exécuter l'éditeur et de le réinitialiser à la sortie).

Dans les préférences de profil, le titre initial est défini sur Terminal et le When terminal commands set their own titles est défini sur Replace initial title. Il y a aussi un seul profil Default qui est celui que j'utilise.

6
user9184

Il s'avère que xtitle fonctionne correctement et modifie le titre. Cependant, il existe une section dans la valeur par défaut .bashrc comme suit:

# If this is an xterm set the title to user@Host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

ce qui configure l'invite de manière à ce que le titre revienne à la valeur habituelle chaque fois qu'il demande à l'utilisateur une saisie.

En commentant la ligne PS1=... ci-dessus, le titre reste défini sur ce que vous choisissez.

Cela a pour effet secondaire de ne pas mettre à jour l'état actuel user@Host pour tous les terminaux. Pour l'activer de manière sélective uniquement pour le Shell actuel, avant d'exécuter xtitle, utilisez:

export PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

(N'oubliez pas que vous devez utiliser cette source dans le terminal, et non pas appeler/utiliser un script!)

5
user9184

Si vous utilisez Gnome Terminal, vérifiez également que, dans Edit -> Profile Preferences -> Title and Command, l’option When terminal commands set their own titles définie sur Replace initial title (la valeur par défaut). ).

0
Nathan Kidd