Question Comment changer le titre de Gnome-Terminal?


J'ai plusieurs exemples de terminaux en cours d'exécution dans mon environnement de travail, ce que je voudrais est de définir un titre spécifique pour chacun, afin d'avoir une idée claire dans quel but le terminal spécifique sert à savoir Apache, editing_ini, postgres etc ...

Bien sûr depuis la ligne de commande.


141
2018-01-20 13:20


origine


Suite au commentaire de Ward: N'oubliez pas de "désactiver PROMPT_COMMAND" avant vous envoyez la séquence d'échappement du changement de titre, sinon tout changement que vous apporterez sera perdu dès que l'invite du shell suivant apparaîtra. - Jon Green
Pour une question similaire pour KDE, voir stackoverflow.com/questions/8782159/… - naught101
J'ai eu ce problème lors du passage d'OS X à Ubuntu. Pour obtenir des titres personnalisés dans une configuration à plusieurs onglets, j'ai utilisé gnome-terminal --load-config ensemble avec ce script J'ai écris. - halfer
ajouter les suivantes à votre fichier .bashrc dans votre répertoire personnel # set title of current terminal setTerminalTitle(){ echo -ne "\033]0;${1}\007" } alias termttl=setTerminalTitle vous pouvez maintenant utiliser l'alias termttl pour définir le titre, par ex. termttl askubuntu - urmalp


Réponses:


  • La méthode la plus simple consiste à la sélectionner dans le menu Terminal -> "Définir le titre ...".

  • Il existe cependant d'autres moyens, vous pouvez également émettre

    gnome-terminal --title="SOME TITLE HERE"
    

    Cela pourrait ne pas donner l’effet désiré car il ya une grande chance que votre .bashrc écrase ce comportement.

  • Nous amenant à la dernière méthode, que j'ai déchirée sans vergogne de mon .bashrc.

    PROMPT_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'
    

En tant que référence supplémentaire, il s'agit de la ligne particulière de mon .bashrc

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

Vous devrez peut-être aussi commenter ce code dans votre ~ / .bashrc

case "$TERM" in
xterm*|rxvt*)
    # JEFFYEE REMOVED because it makes commands to title() not work
    #PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

129
2018-01-20 13:51



Besoin de commenter ou de supprimer comme vous l'avez mentionné afin de prendre effet! - topless
@Quartier: PROMPT_COMMAND est un programme courir. PS1 et PS1 sont cordes textuelles qui sont affichés. Dans l'exemple ci-dessus, la commande exécutée est echo, qui imprime alors simplement une chaîne. Voir man bash ou manpages.ubuntu.com/bash pour plus de détails. - sladen
Le terminal GNOME 3.16.2 indique Option "--title" is no longer supported in this version of gnome-terminal. - Ivan Kozik
Sur Gnome 3.18.3, il n'y a pas d'entrée "Set title" dans les menus: / - shadi
Pour quiconque est confus par le gobbledegook dans les chaînes ci-dessus, ce sont des caractères d'échappement ANSI - voir par exemple lihaoyi.com/post/… - WillC


La réponse de Ward est géniale si vous voulez définir votre titre en fonction de l'hôte sur lequel vous vous trouvez, etc., chaque fois que vous ouvrez un terminal. Si vous voulez simplement définir rapidement un titre, vous pouvez simplement lancer echo par lui-même:

echo -ne "\033]0;SOME TITLE HERE\007"

ou faire un simple script bash, disons termtitle

#!/bin/bash

echo -ne "\033]0;${1}\007"

que vous pouvez exécuter avec termtitle "some title here"


52
2018-05-29 02:20



C'est la réponse que vous recherchez - iondiode
ou de la même façon, nous pouvons ajouter un alias bash en ajoutant les lignes ci-dessous dans ~ / .bash_aliases function set_title() { echo -ne "\033]0;${1}\007" } alias title=set_title puis utilisez: $ title term_title - sumit
Malheureusement, cela ne semble pas fonctionner pour moi dans le terminal GNOME 3.6.2. - austinmarton
Aussi, ne semble pas fonctionner dans xterm 322 ou konsole 16.12 ... Je ne sais pas s'il existe une nouvelle méthode, malheureusement :( - naught101
@ 3ocene ça n'a pas vraiment d'importance dans ce cas, c'est la même chose, mais c'est une bonne habitude à prendre, par exemple $var_log et ${var}_log sont des choses très différentes, et la différence peut causer des bogues dans les scripts. - naught101


Si vous utilisez l'éditeur Vim, vous pouvez également activer cette option dans votre vimrc:

:set title

qui est désactivé par défaut. Il va définir des titres de terminaux sympas indiquant le nom du fichier que vous éditez en ce moment et d'autres choses.


30
2018-01-20 14:40





Par souci d'exhaustivité, j'ajouterai que vous pouvez également définir la gnome-terminal title en utilisant cette commande:

wmctrl -r :ACTIVE: -N "MyWindowTitle"

Vous devrez installer le paquet wmctrl Install wmctrl premier.


22
2018-01-23 00:57



MyWindowTitle ne s'affiche pas dans le titre du terminal. Il apparaît lorsque je fais wmctrl -m. - sureshvv
Notez que wmctrl modifie le titre de la fenêtre et non le titre de l'onglet, alors que la solution des caractères échappés modifie le titre de l'onglet. De plus, le titre de la fenêtre revient au titre de l'onglet d'origine dès que vous changez d'onglet. - redochka


Argh, tant de réponses ...

J'ai essayé wmctrl, qui presque travaillé, sauf que je ne pouvais pas le faire pour changer le titre de l'icône, au moins pas de façon permanente.

La solution est que PS1 dans Ubuntu définit le titre.

Le PS1 par défaut est

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 

... qui définit le titre dans la première séquence d'échappement.

Il existe donc deux solutions:

Solution 1: simplifier PS1, puis utiliser PROMPT_COMMAND

Changer PS1 en quelque chose de plus simple:

PS1="\u@\h:\w\$ "

... puis utilisez le PROMPT_COMMAND:

PROMPT_COMMAND='echo -ne "\033]0;SOME TITLE HERE\007"'

Solution 2: modifier directement PS1

Modifiez simplement PS1 avec un nouveau titre:

PS1='\[\e]0;newtitle\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

15
2018-02-07 03:36



salut, j'aime beaucoup votre réponse. Voulez-vous expliquer le rôle de ]0; dans votre code? Je pense avoir trouvé le sens de echo -e '\007 \033' avec le ascii -o commande… bien que je ne sois vraiment pas sûr de ce que cela fait là non plus… merci… - isomorphismes


Si vous êtes un utilisateur Ubuntu, vous pouvez changer le titre d'un onglet gnome-terminal en utilisant le HUD.

Lorsque vous êtes dans le terminal gnome, appuyez sur Alt pour afficher la palette, tapez les premières lettres, par ex. "tit", appuyez sur Entrée et tapez votre nouveau titre.

C'est une méthode très rapide et évite d'utiliser la souris.


11
2018-06-18 06:55



Effectivement. Garde les mains sur le clavier. Le titre existant est affiché, il est donc simple et rapide de modifier le titre existant en utilisant cette méthode. - Brent Faust
mésange est uniquement pour l'anglais Ubuntu. - törzsmókus
et l'option entière a été supprimée :( - törzsmókus
la F2 la clé évite également la souris. - isomorphismes


Une autre façon de changer le titre de gnome-terminal est en utilisant gconftool-2; cela change le titre du terminal initial pour le profil sélectionné, vous pouvez donc avoir différents profils associés à des titres tels que «Apache», «Édition», etc. Vous lancerez ensuite gnome-terminal avec le profil approprié pour obtenir le titre du terminal que vous avez spécifié. Ceci est en contraste avec gnome-terminal --title "name" qui change le titre par terminal, mais n'affecte pas le titre initial spécifié dans le profil.

Vous pouvez utiliser la commande suivante dans un script pour définir le nom du terminal pour un profil, et vous pourriez avoir le nom du changement de terminal à certains moments de la journée pour vous rappeler des choses:

gconftool-2 --set /apps/gnome-terminal/profiles/Default/title --type=string "Apache"

Ceci est pour le profil par défaut, mais vous pouvez également définir le titre pour d'autres profils en modifiant, par exemple, Default à un autre profil comme Profile0:

gconftool-2 --set /apps/gnome-terminal/profiles/Profile0/title --type=string "Editing"

Je pensais que cette façon de changer le titre était utile en raison de la manière dont elle pouvait être utilisée dans les scripts, ou simplement comme moyen rapide de définir une ligne de commande pour définir le titre du profil. Notez que parfois vous devez relancer le terminal avec le profil spécifié pour le gconftool-2 réglage pour prendre effet. Les paramètres complets disponibles pour gnome-terminal peut être listé avec gconftool-2 -R /apps/gnome-terminal.


4
2018-01-03 01:09





Une autre solution consiste à utiliser xdotool pour simuler des frappes de touches, peut-être utile dans les scripts:

  1. Définissez un raccourci clavier dans gnome-terminal:

    Edit > Keyboard Shortcuts... > Terminal > Set Title
    

    Par exemple associer le Shift+Ctrl+Y.

  2. Installer xdotool si vous ne l'avez pas déjà:

    sudo apt-get install xdotool
    
  3. La séquence de commandes suivante (que vous pouvez également utiliser dans un script bash) définira le titre du terminal / de l’onglet (échappera aux espaces avec \):

    xdotool key ctrl+shift+y 
    xdotool type My\ new\ fabulous\ title
    xdotool key Return
    
  4. [facultatif] Vous pouvez également utiliser xdotool pour par exemple Ouvrez un nouvel onglet et définissez le titre avec les commandes ci-dessus, en utilisant:

    xdotool key ctrl+shift+t
    

    Envisagez d'ajouter un temps de repos avant et après l'ouverture d'un nouvel onglet, par exemple sleep 1 (attendre 1 seconde).

Ce n'est pas la solution la plus élégante, mais cela a fonctionné pour moi! Les réponses précédentes n'ont pas fonctionné dans mon cas. J'utilise gnome-terminal dans Ubuntu 14.04 et je voulais créer un script bash.


3
2017-11-12 17:55





Pour afficher uniquement le répertoire de travail actuel dans le titre, essayez ceci dans votre ".bashrc":

PROMPT_COMMAND='echo -ne "\033]0; ${PWD##*/}\007"'

ou

PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"' 

2
2018-03-16 05:47