Nouvelle installation de Ubuntu 15.04: impossible de renommer les onglets gnome-terminal

39

Sous Ubuntu 14.10, si plusieurs onglets de terminal étaient ouverts, je pouvais cliquer avec le bouton droit de la souris sur un onglet de terminal et le renommer. Dans Ubuntu 15.04, je ne trouve pas cette fonctionnalité.

Existe-t-il un moyen facile de le récupérer?

Ceci est la version actuelle:

$ gnome-terminal --version
GNOME Terminal 3.14.2
    
posée Tom 30.04.2015 - 15:55
la source

6 réponses

22

Réponse ici

Je cite:

The user title code was removed1 from gnome-terminal 3.14. There's only one way to set the title, using an escape sequence - e.g. with bash:

PROMPT_COMMAND='echo -ne "3]0;YOUR TITLE GOES HERE%bl0ck_qu0te%7"'

1: see gnome bug 724110 and gnome bug 740188.

    
réponse donnée A.B. 30.04.2015 - 15:59
la source
31

La proposition proposée par Kirby a fonctionné pour moi:

set-title(){
  ORIG=$PS1
  TITLE="\e]2;[email protected]\a"
  PS1=${ORIG}${TITLE}
}

puis à partir de mon invite: .bashrc

    
réponse donnée ronan_mac 26.11.2015 - 13:19
la source
18

Je ne peux pas croire qu'ils aient supprimé une fonctionnalité aussi conviviale que celle-ci.

Je passe à ROXTerm ( lien ), ce qui fait bien l'affaire. C'est emballé dans Ubuntu:

sudo apt-get install roxterm

Ensuite, laissez le dinosaure continuer sa propre voie ;-)

    
réponse donnée Michael Opdenacker 05.05.2015 - 06:49
la source
14

J'ai essayé RoxTerm comme suggéré ci-dessus, avec de bons résultats. Mais je me suis installé sur MATE Terminal, qui fait partie du projet MATE, dans la continuité de Gnome 2, le 15.04:

sudo apt-get install mate-terminal

Ce terminal est basé sur le code du terminal Gnome.

Commentaire: Il est difficile de comprendre l’état d’esprit des développeurs de Gnome Terminal. Il y a beaucoup de discussions là-bas sur "comment" nommer les onglets de terminal, et comment il est difficile de faire les choses correctement. Si tel est le cas, pourquoi empêcher l’utilisateur de le nommer plus difficilement? Pas très intelligent du tout.

    
réponse donnée Doug Van Horn 04.11.2015 - 21:43
la source
6

Maintenant, j'ai étudié la question pendant la plus grande partie de la journée et j'ai finalement trouvé un moyen de définir ce titre. Cela se fait via des séquences d'échappement commençant par \ e] 0; et se terminer par un caractère BEL (= \ 007 = \ a). Contrairement à ce que j'ai indiqué ci-dessus, les communications du shell avec l'application de terminal sont possibles, très limitées, via de telles séquences d'échappement (il en existe quelques autres).

À propos d'en haut:

PROMPT_COMMAND='echo -ne "\e]0;YOUR TITLE GOES HERE\a"'

Cela peut fonctionner, mais ce n'est pas toujours le cas. PROMPT_COMMAND est une variable dont le contenu est exécuté à chaque fois que vous envoyez une commande. Il envoie donc également cette séquence d'échappement. Toutefois, cela peut être annulé par une séquence d'échappement dans la variable PS1, qui définit l'invite de ligne de commande. C’est pourquoi ce qui précède n’a eu aucun effet ici.

À partir d'une ancienne installation Ubuntu, j'ai saisi ceci, qui définit l'invite de commande (partie droite, après le ] ) et envoie également la séquence d'échappement requise (partie gauche, jusqu'au ] inclus):

PS1="\[\e]0;\[email protected]\h: \w\a\]\[email protected]\h:\w\$ "

Cela fonctionne probablement mieux, car il n'est pas nécessaire d'interpréter $PROMPT_COMMAND à chaque fois. Il a également beaucoup plus d'options, car Bash a plus de séquences d'échappement ici, par exemple. \u pour le nom d'utilisateur actuel, \W pour le nom du répertoire en cours ou \w pour le chemin d'accès complet du répertoire de travail en cours, éventuellement ajusté aux derniers en fonction du nombre indiqué dans $PROMPT_DIRTRIM . Voir le chapitre PROMPTING dans la page de manuel Bash. Notez également que la séquence d'échappement doit en outre être entourée par \[ et \] ici.

Pour définir un titre fixe, cela fonctionne:

PS1="\[\e]0;YOUR TITLE GOES HERE\a\]\[email protected]\h:\w\$ "

Profitez!

Au cours de mon enquête, j’ai également essayé de comprendre le code source de gnome-terminal, ce qui aboutissait au code source vte. Là, la prise en charge de la définition du titre et de la lecture des séquences d’échappement est considérée comme un risque pour la sécurité: Voir ici (cas 20, cas 21) et ici (" Rapport de titre de fenêtre ").

    
réponse donnée Traumflug 01.05.2015 - 20:43
la source
5

Définir $ PROMPT_COMMAND comme indiqué ci-dessus n'a aucun effet ici. Pas de surprise, car Bash fonctionne à l'intérieur du terminal et les processus parents (ici: gnome-terminal) ne peuvent pas lire l'environnement d'un enfant sur un système d'exploitation de type Unix. Utiliser quelque chose de plus simple, comme

PROMPT_COMMAND='echo bla'

Exécute echo bla , rien d'autre ne se produit.

Edit: il faut envelopper cela dans des séquences d'échappement, voir mon autre réponse. Bien que la lecture de l'environnement enfant ne soit pas possible, certaines communications avec le parent le sont via ces séquences.

Dans le bogue Gnome 740188, ils parlent de la définition d’une fonction title () dans .bashrc. Un différent pour chaque onglet ouvert? Le piratage laide grave à venir, si possible du tout!

Même d’autres explications sur Stackexchange parlent de la définition de $ PS1 (et d’être voté). Désolé, ce n'est pas le titre, c'est l'invite de commande.

En bref: ils ont tout gâché pour économiser un tout petit espace dans la boîte de dialogue des préférences. OMG

Maintenant, la seule chance de faire annuler une décision de la part d'un développeur est de provoquer une tempête de merde grave, sinon le rapport de bogue se ferme en quelques secondes (plusieurs fois essayé). Comment pourrions-nous créer cette merde?

    
réponse donnée Traumflug 01.05.2015 - 00:10
la source

Lire d'autres questions sur les étiquettes