web-dev-qa-db-fra.com

Comment changer le titre du terminal dans Ubuntu 16.04

Lorsque j'utilisais Ubuntu 14.04, il est facile de définir le titre. Appuyez simplement sur F2 ou déplacez la souris vers le menu principal. Mais il n'y a pas de menu sur Ubuntu 16.04 et appuyez sur F2 ne peut pas changer le titre. Que devrais-je faire?

29
Vikrant

Beaucoup de programmes vont écraser le titre, vous ne pouvez donc pas vous fier à ce que le titre soit corrigé ou dupliqué par d'autres fenêtres. C'est particulièrement le cas avec les sessions ssh distantes dans un terminal gnome. Cela aide toujours beaucoup mais il n’est pas assez fiable pour que les gestionnaires de fenêtres fassent une correspondance (c’est pourquoi je pense qu’ils l’ont enlevé. (Ajout d’Amias Channer)), cette capacité a donc été supprimée avec le gnome-terminal le plus récent, mais il reste une possibilité de changer le titre, vous pouvez le faire par commande. Pour ce faire, éditez facilement votre fichier ~/.bashrc et ajoutez les lignes suivantes:

# function to set terminal title
function set-title(){
  if [[ -z "$ORIG" ]]; then
    ORIG="$PS1"
  fi
  TITLE="\[\e]2;$*\a\]"
  PS1="${ORIG}${TITLE}"
}

Avec cela, vous pouvez ensuite définir le titre de la fenêtre de votre terminal en utilisant simplement la commande set-title <name you want to set it to>. Cela est possible grâce aux codes d'échappement ANSI. Ainsi, tout programme peut les sortir quel que soit l'endroit où le code est exécuté. C'est ce que font les\e et les\a. (ajout d'Amias Channer).

Le solution trouvée ici et l’utiliser moi-même depuis que je tourne sous 16.04 LTS.

36
Videonauth

La solution de Videonauth est spécifique à bash, ce qui signifie que si vous utilisez un autre shell (tel que korn Shell ou c Shell, mksh ou tcsh), cela ne fonctionnera pas. Il définit également le titre en modifiant l'invite PS1 (qui, pour une raison quelconque, a un effet sur le titre dans bashname__). Voici par exemple gnome-terminal avec mksh:

enter image description here

Ce que j'utilise personnellement, c'est ceci:

setTitle() {
    echo -e "\033]0;$@\007" 
}

Cette commande utilise des séquences d'échappement et ne fait pas appel à Shell, ce qui signifie que cela fonctionne dans les shells autres que bash. Le petit inconvénient est que vous aurez besoin de connaître ASCII séquences d'échappement si vous voulez modifier ceci.

10
Sergiy Kolodyazhnyy