Comment changer le titre de Gnome-Terminal?

166

J'ai plusieurs exemples de terminaux fonctionnant dans mon environnement de travail. Ce que je voudrais, c'est définir un titre spécifique pour chacun d'eux, afin d'avoir une idée précise de l'objectif du terminal spécifique, à savoir Apache, montage_ini, postgres, etc.

Bien sûr depuis la ligne de commande.

aux seins nus
la source
Suite au commentaire de Ward: N'oubliez pas de "désélectionner PROMPT_COMMAND" avant d'envoyer la séquence d'échappement de modification de titre, sinon toute modification apportée sera perdue dès la prochaine invite du shell.
Jon Green
Pour une question similaire concernant KDE, consultez 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 un set-up multi-onglet, je gnome-terminal --load-configavec ce script , je l' ai écrit.
Halfer
3
ajouter ce qui suit à votre fichier .bashrc dans votre répertoire personnel, # set title of current terminal setTerminalTitle(){ echo -ne "\033]0;${1}\007" } alias termttl=setTerminalTitlevous pouvez maintenant utiliser termttl alias pour définir le titre, par exempletermttl askubuntu
urmalp
1
"Protégé" donc je ne peux pas fournir de réponse. Gnome3 gnome-terminalpar défaut est PROMPT_COMMAND=__vte_prompt_command. Ceci utilise les valeurs de Profiles in prefs. Lorsque plusieurs profils existent, les éléments de menu Nouvel onglet et Nouvelle fenêtre ont un élément de sous-menu pour chaque profil. Le mode manuel est d'ouvrir un nouvel onglet terminal, cliquez droit sur le titre de l' onglet, puis sélectionnez Set Titre ... . (Cela se lirait tellement plus facilement dans une réponse séparée, mais ...)
Rich

Réponses:

146
  • Le moyen le plus convivial consiste à le sélectionner dans le menu Terminal -> "Définir le titre ...".

  • Il y a d'autres façons, mais vous pouvez aussi émettre

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

    Cela pourrait ne pas donner l'effet souhaité, car il y a de grandes chances que votre .bashrccomportement écrase ce comportement.

  • Nous amenant à la dernière méthode, que j’ai arrachée sans vergogne à mon .bashrc.

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

En tant que référence supplémentaire, c’est 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
Ward Muylaert
la source
2
Besoin de commenter ou de supprimer comme vous l'avez mentionné afin de prendre effet!
topless
1
@Ward: PROMPT_COMMANDest un programme à exécuter. PS1et PS1sont des chaînes textuelles qui sont affichées. Dans l'exemple ci-dessus, la commande exécutée est la suivante echo: elle affiche simplement une chaîne. Voir man bashou manpages.ubuntu.com/bash pour plus de détails.
Sladen
29
Le terminal GNOME 3.16.2 ditOption "--title" is no longer supported in this version of gnome-terminal.
Ivan Kozik
10
Sur Gnome 3.18.3, il n'y a pas d'entrée "Définir le titre" dans les menus: /
shadi
2
Pour ceux qui sont confus dans les chaînes ci-dessus, il s'agit de caractères d'échappement ANSI - voir par exemple lihaoyi.com/post/…
WillC
65

La réponse de Ward est excellente si vous souhaitez définir votre titre en fonction de votre hôte, etc. à chaque fois que vous ouvrez un terminal. Si vous voulez juste définir rapidement un titre, vous pouvez simplement lancer echo par lui-même:

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

ou faire une fonction simple (à l'intérieur de votre ~/.bashrc), disonstermtitle

termtitle() { printf "\033]0;$*\007"; }

que vous pouvez courir avec termtitle some title here.

rien101
la source
3
ou similaire, nous pouvons ajouter comme 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 utiliser: $ title term_title
murarisumit
11
Malheureusement, cela ne semble pas fonctionner pour moi dans le terminal 3.6.2 de GNOME.
austinmarton
1
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
2
@ 3ocene ça n'a pas d'importance dans ce cas, c'est la même chose, mais c'est une bonne habitude à prendre, parce que par exemple $var_log, ce ${var}_logsont des choses très différentes, et la différence peut causer des bugs dans les scripts.
naught101
2
si cela ne fonctionne pas pour vous, c'est probablement parce que PROMPT_COMMAND var ou PS1 var est défini et qu'il le surpasse. unset PROMPT_COMMANDou définissez-le de sorte qu'il change également le titre, par exemple export PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "$(basename $PWD)"'
gaoithe
32

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 terminal sympas indiquant le nom du fichier que vous êtes en train d’éditer et quelques autres choses.

Ulidtko
la source
26

Par souci d’exhaustivité, j’ajouterais que vous pouvez également définir le gnome-terminaltitre à l’aide de cette commande:

wmctrl -r :ACTIVE: -N "MyWindowTitle"

Vous devez d'abord installer le paquet wmctrlInstaller wmctrl .

Isaïe
la source
1
MyWindowTitle n'apparaît pas dans le titre du terminal. Il apparaît lorsque je fais wmctrl -m.
Sureshvv
2
Notez que wmctrl change le titre de la fenêtre et non le titre de l'onglet, alors que la solution relative aux caractères d'échappement change 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 passez d'un onglet à l'autre.
Redochka
23

Argh, tellement de réponses ...

J'ai essayé wmctrl, ce qui a presque fonctionné, sauf que je n'ai pas réussi à changer le titre de l'icône, du moins pas de façon permanente.

Le problème est que la PS1 dans Bash dans Ubuntu définit le titre.

La 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: \e]0;\u@\h: \w\a

Ainsi, il existe deux solutions:

Solution 1: simplifiez PS1, puis utilisez PROMPT_COMMAND

Changez la PS1 en quelque chose de plus simple:

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

Ensuite, utilisez le PROMPT_COMMAND:

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

Solution 2: modifiez directement PS1

Modifiez simplement PS1 avec le nouveau titre:

PS1='\[\e]0;newtitle\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
Hugh Perkins
la source
salut, j'aime beaucoup votre réponse. Pourriez-vous expliquer le rôle de ]0;dans votre code? Je pense avoir trouvé la signification de echo -e '\007 \033'avec la ascii -ocommande… même si je ne suis vraiment pas sûr de ce que ça fait là non plus… merci…
isomorphismes
2
@iso \eou \033est le caractère d'échappement (ESC) qui commence une séquence d'échappement. ]lance une commande du système d'exploitation (OSC). Pour un xterm, 0;signifie "définir le titre", et \aou \007est le caractère de cloche (BEL) qui termine la CVMO. Plus d'infos: fr.wikipedia.org/wiki/ANSI_escape_code#Escape_sequences
wjandrea
@wjandrea Je cherchais les lettres d'échappement équivalentes ( \eet \a) pour \033et \007mais je ne pouvais pas les trouver certainement parce que je ne connaissais pas les bons mots - clés à taper dans google. Le lien que vous avez donné est également utile. Pouvez-vous s'il vous plaît convertir votre commentaire en réponse?
SebMa
10

Si vous êtes un utilisateur Ubuntu, vous pouvez modifier le titre d'un onglet gnome-terminal à l'aide du HUD .

Dans le terminal gnome, appuyez sur Alt pour afficher le HUD, tapez les premières lettres, par exemple "tit", appuyez sur Entrée et tapez votre nouveau titre.

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

À M
la source
1
En effet. Garde les mains sur le clavier. Le titre existant est affiché, il est donc simple et rapide de modifier simplement le titre existant à l’aide de cette méthode.
Brent Faust
tit est seulement pour l'anglais Ubuntu.
törzsmókus
et l'option entière a été supprimée :(
törzsmókus 22/02/2017
la F2touche évite aussi la souris.
isomorphismes
@ törzsmókus et français - titre ;)
wjandrea
3

Une autre façon de changer le titre de gnome-terminalest d'utiliser gconftool-2; cela change le titre initial du terminal pour le profil sélectionné, vous pouvez donc associer différents profils à des titres tels que 'Apache', 'Édition', etc. Vous devez ensuite lancer gnome-terminalle profil approprié pour obtenir le titre du terminal que vous avez spécifié. Cela contraste avec le gnome-terminal --title "name"changement de 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 modifier le nom du terminal à certaines heures de la journée pour vous rappeler des événements:

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

Ceci concerne le profil par défaut, mais vous pouvez également définir le titre d'autres profils en modifiant, par exemple, Defaultun autre profil tel que 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 pourrait être utilisée dans les scripts, ou simplement comme un moyen rapide en ligne de commande de définir le titre du profil. Notez que vous devez parfois relancer le terminal avec le profil spécifié pour que le gconftool-2paramètre soit pris en compte. Les paramètres complets disponibles pour gnome-terminalpeuvent être listés avec gconftool-2 -R /apps/gnome-terminal.


la source
3

Une autre solution consiste à utiliser xdotool pour simuler des frappes au clavier, ce qui peut être utile dans les scripts:

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

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

    Par exemple assing le Shift+Ctrl+Y.

  2. Installez xdotoolsi 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 / onglet (échappera les 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, ouvrir un nouvel onglet et définir le titre avec les commandes ci-dessus, en utilisant:

    xdotool key ctrl+shift+t
    

    Pensez à ajouter un temps de sommeil 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.

MakisH
la source
1

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"' 
Sriram
la source
0

Cela a fonctionné dans mon terminal Gnome 3.18.3 .

Editez votre fichier .bashrc et ajoutez cette fonction

# Update gnome terminal title
function termtitle() {
    # take argument
    TITLE=$1
    shift
    # update title
    PROMPT_COMMAND='echo -ne "\033]0; $TITLE \007"'
}

N'oubliez pas sourcevotre fichier .bashrc

$ source ~/.bashrc

Et puis vous pouvez simplement mettre à jour, vous pourrez changer le titre du terminal comme ceci:

$ termtitle "MariaDB CLI"
RousseauAlexandre
la source
0

Ma réponse est similaire à la réponse plus récente qui n'a pas fonctionné pour moi. Les réponses les plus anciennes ne fonctionnent plus. La vieille réponse du milieu est trop de frappe alors j'ai créé une fonction dans mon ~/.bashrcfichier:

function termtitle() { PS1="${PS1/\\u@\\h: \\w/$@}"; }

Après avoir ajouté ou modifié la fonction ou, si vous souhaitez réinitialiser le titre une deuxième fois, utilisez:

. ~/.bashrc
termtitle Special Projects

Sinon, utilisez tous les jours termtitleun nouveau titre.

WinEunuuchs2Unix
la source
-1

Si des âmes pauvres comme moi sont obligées d’utiliser tcsh, essayez quelque chose comme ça dans votre .cshrc:

set prompt='%{\033]0;%n@%m\007%}%~%# '

Source et plus de détails: http://tldp.org/HOWTO/Xterm-Title-4.html

spookypeanut
la source
Une indication de la raison pour laquelle ma réponse a été rejetée aurait été intéressante :-(
spookypeanut
-1

Si vous utilisez gnome 3, l' Terminal > Set Titleoption de menu pratique a été supprimée. Vous pouvez installer un terminal forké de gnome 2 qui a toujours cette option de menu "Définir le titre" et l'exécuter à la place:

sudo apt-get install mate-terminal

Au lieu d'exécuter "Terminal", exécutez "MATE Terminal". Vous devriez probablement aussi sélectionner mate-terminal dans sudo update-alternatives --config x-terminal-emulator.

JDiMatteo
la source