Neuinstallation von Ubuntu 15.04: Gnome-Terminal-Tabs können nicht umbenannt werden

38

Wenn in Ubuntu 14.10 mehrere Terminal-Registerkarten geöffnet waren, konnte ich mit der rechten Maustaste auf eine Terminal-Registerkarte klicken und diese umbenennen. In Ubuntu 15.04 kann ich diese Funktion nicht finden.

Gibt es einen einfachen Weg, es zurückzubekommen?

Dies ist die aktuelle Version:

$ gnome-terminal --version
GNOME Terminal 3.14.2
Tom
quelle

Antworten:

21

beantwortet hier

Ich zitiere:

Der user titleCode wurde 1 von entfernt gnome-terminal 3.14. Es gibt nur eine Möglichkeit, den Titel mithilfe einer Escape-Sequenz festzulegen - zB mit bash:

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

1: Siehe Gnomenkäfer 724110 und Gnomenkäfer 740188 .

AB
quelle
10
Danke für die Antwort. Es ist eine Schande, dass es weg ist. Ich hoffe, sie fügen es in der nächsten Version wieder hinzu. In der Zwischenzeit verwende ich die Escape-Sequenz anstelle der Rechtsklick-Methode.
Tom
2
@ Tom Schreiben Sie einen Fehlerbericht =)
AB
13
Es ist nicht nur eine Schande, es ist unsinnig. Ich hatte die schlechte Idee, von Debian Wheezy auf Jessie zu "upgraden", nur um alles zu haben, was ich vorher hatte (noch nicht sicher), aber schlimmer; schlechte entscheidungen und dumme fehler (zb in gdm3 passt die liste der möglichen wm / sessions, die ich installiert habe, nicht noch scrollt sie, ist also einfach zu schneiden und daher kann ich nicht alle wm auswählen, die ich habe). Für mich ist GNOME seitdem zum Scheitern verurteilt gnome-shell. Es verschwand auch das Menü, um ein neues Terminal in einem neuen Fenster oder einer neuen Registerkarte zu öffnen (aber Sie können es immer noch über die Verknüpfung tun. Warum ?! Ersetzen Sie alles mit einem großen Smart-Button: ein Klick und es macht alles!)
ShinTakezou
2
In der Regel werden in neuen Versionen Funktionen hinzugefügt und nicht entfernt.
Angelcervera
2
Ich habe einen Befehl (ein Shell-Skript) namens tab erstellt, der einfach echo -ne "\ 033] 0; $ 1 \ 007" enthält. Jetzt kann ich auf jeder Registerkarte einfach tab TABNAME ausführen, um den Tabulatortitel festzulegen. Nicht so praktisch wie das Klicken mit der rechten Maustaste zum Umbenennen, aber es reicht fürs Erste. Danke AB!
Brian Pipa
31

Die von Kirby vorgeschlagene.bashrc Lösung hat für mich funktioniert:

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

dann von meiner Aufforderung: $ set-title test-title

ronan_mac
quelle
2
Funktioniert für mich am 15.10 einwandfrei, der einzige Nachteil ist, dass Sie jedes Mal, wenn Sie es ausführen, an PS1 anhängen. Führen Sie dies also nicht über ein Skript aus. Nachdem ich es ein paar Mal angerufen habe mit set-title "longer and ":echo $PS1 \[\e]0; \u@\h: \w \a\]\u@\h:\w\[\033[m\]$(__git_ps1)$ \e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a
ahcox 20.02.16
1
funktioniert bei mir auf Ubuntu 16.04!
Programster
1
wirkt wie Charme !!
Sharadendu Sinha
Wie ändere ich den Titel, während ein Vordergrundprozess ausgeführt wird, den ich nicht abbrechen möchte?
Jānis Elmeris
1
Ich denke, dass Sie es tun können, indem Sie den Prozess mit Control + Zdann anhalten set-title X, um dann fgden Prozess fortzusetzen.
ronan_mac
18

Ich kann nicht glauben, dass sie solch eine benutzerfreundliche Funktion wie diese entfernt haben.

Ich wechsle zu ROXTerm ( http://roxterm.sourceforge.net ), was die Arbeit gut macht. Es ist in Ubuntu verpackt:

sudo apt-get install roxterm

Dann lass den Dinosaurier seinen eigenen Weg gehen ;-)

Michael Opdenacker
quelle
1
Wie kann ich den Tab-Titel in roxterm ändern? Ich konnte es nicht finden.
Halil
funktioniert auch für den 16.04
prusswan 19.03.16
Wow, ich kann mit gnome-terminal kein Terminal in den Hintergrund setzen und ich habe nie verstanden, warum ... es ist ein Problem mit dem Terminal selbst. Der Hintergrund des Devilspie-Terminals funktioniert gut mit Roxterm.
erm3nda
1
RoxTerm ist fantastisch und funktioniert immer noch, wird aber leider nicht mehr lange dauern: sadface:: sourceforge.net/p/roxterm/discussion/422638/thread/60da6975
Williams
Ich bin seitdem zu Terminator gewechselt und musste RoxTerm nicht mehr verwenden ....
Michael Opdenacker
14

Ich habe RoxTerm wie oben vorgeschlagen mit guten Ergebnissen ausprobiert. Aber ich habe mich am 15.04. Für das MATE-Terminal entschieden, das Teil des MATE-Projekts ist, einer Fortsetzung von Gnome 2:

sudo apt-get install mate-terminal

Dieses Terminal basiert auf dem Gnome-Terminal-Code.


Kommentar: Die Denkweise der Gnome Terminal-Entwickler ist schwer zu verstehen. Dort wird viel darüber diskutiert, wie man Terminal-Tabs benennt und wie schwierig es ist, die richtigen zu finden. Wenn dies der Fall ist, warum erschweren Sie es dem Benutzer, sie zu benennen? Gar nicht so schlau.

Doug Van Horn
quelle
6

Jetzt habe ich das fast einen Tag lang untersucht und endlich einen Weg gefunden, diesen Titel zu setzen. Dies geschieht über Escape-Sequenzen, die mit \ e] 0 beginnen. und ende mit einem BEL-Zeichen (= \ 007 = \ a). Im Gegensatz zu ich oben erwähnt, Mitteilungen der Schale zurück in die Terminal - Anwendung ist möglich, sehr begrenzt, durch eine solche Escape - Sequenzen (es gibt ein paar mehr).

Dazu von oben:

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

Es kann funktionieren, aber nicht immer. PROMPT_COMMANDist eine Variable, deren Inhalt jedes Mal ausgeführt wird, wenn Sie einen Befehl senden. Daher sendet sie auch diese Escape-Sequenz. Dies kann jedoch durch eine Escape-Sequenz in der PS1-Variablen überschrieben werden, mit der die Befehlszeile festgelegt wird. Dies ist der Grund, warum das oben Gesagte hier keine Wirkung hatte.

Aus einer älteren Ubuntu-Installation habe ich folgendes herausgesucht, das die Eingabeaufforderung (rechter Teil nach dem ]) setzt und auch die erforderliche Escape-Sequenz (linker Teil bis einschließlich des ]) sendet :

PS1="\[\e]0;\u@\h: \w\a\]\u@\h:\w\$ "

Dies führt wahrscheinlich zu einer besseren Leistung, da nicht $PROMPT_COMMANDjedes Mal eine Interpretation erforderlich ist . Es hat auch viel mehr Optionen, da Bash hier mehr Escape-Sequenzen hat, z. B. \ufür den aktuellen Benutzernamen, \Wfür den aktuellen Verzeichnisnamen oder \wfür den gesamten Pfad des aktuellen Arbeitsverzeichnisses, optional auf die letzten paar durch die Zahl in gekürzt $PROMPT_DIRTRIM. Siehe Kapitel PROMPTINGin der Bash-Manpage. Beachten Sie auch, dass die Escape-Sequenz zusätzlich von \[und \]hier umgeben sein muss.

So legen Sie einen festen Titel fest:

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

Genießen!


Während meiner Untersuchung habe ich auch versucht, den gnome-terminal-Quellcode zu verstehen, der zu vte-Quellcode führt, und dort wird die Unterstützung für das Setzen von Titeln und das Lesen von Escape-Sequenzen als Sicherheitsrisiko angesehen: Siehe hier (Fall 20, Fall 21) und hier ("Window Title Reporting").

Traumflug
quelle
Dies setzt den Titel, löscht aber auch alle vorherigen Definitionen PS1für andere Zwecke, wie das Festlegen einer benutzerdefinierten Eingabeaufforderung. Ich habe gerade versucht, Ihre Escape-Sequenz zu den vorhandenen PS1Inhalten hinzuzufügen, und es scheint zu funktionieren. Wie PS1+="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
folgt
5

Das Setzen von $ PROMPT_COMMAND wie oben gezeigt hat hier keine Auswirkung. Kein Wunder, da Bash innerhalb des Terminals ausgeführt wird und übergeordnete Prozesse (hier: gnome-terminal) die Umgebung eines Kindes unter einem Unix-ähnlichen Betriebssystem nicht lesen können. Mit etwas Einfacherem, wie

PROMPT_COMMAND='echo bla'

Führt echo bla aus , sonst passiert nichts.

Bearbeiten: Man muss dies in Escape-Sequenzen einwickeln, siehe meine andere Antwort. Obwohl das Lesen der Kinderumgebung nicht möglich ist, erfolgt über diese Sequenzen eine gewisse Kommunikation zum Elternteil.

Im Gnome-Fehler 740188 wird über das Definieren einer title () -Funktion in .bashrc gesprochen. Ein anderes für jede Registerkarte geöffnet? Schweres hässliches Hacken voraus, wenn überhaupt möglich!

Sogar andere Erklärungen zu Stackexchange beziehen sich auf das Setzen von $ PS1 (und werden hochgestuft). Sorry, nein, das ist nicht der Titel, das ist die Eingabeaufforderung.

Kurz gesagt: Sie haben es irreparabel vermasselt, um ein bisschen Platz im Einstellungsdialog zu sparen. Oh mein Gott

Jetzt besteht die einzige Möglichkeit, eine Entwicklerentscheidung rückgängig zu machen, darin, einen schweren Scheißsturm auszulösen. Andernfalls wird der Fehlerbericht in Sekundenschnelle geschlossen (viele, viele Male ausprobiert). Wie würden wir diesen Shitstorm schaffen?

Traumflug
quelle