Festlegen von Titeln auf der Registerkarte "Terminal"


11

Ich versuche, ein paar Terminal-Registerkarten im Gnome-Terminal zu öffnen, und bis jetzt habe ich es geschafft, etwas zu tun , aber ich stecke jetzt fest.

Ich habe also folgende Anforderung:

  • Öffnen Sie die Registerkarten "X" und "Y".
  • Führen Sie einige Befehle aus
  • Halten Sie die Laschen offen und bereit für die weitere Verwendung. Behalte den Titel.

Bisher habe ich einige der Anforderungen erfüllt, aber nicht alle:

gnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top"

Dies öffnet zwei Registerkarten:

  1. "X" (und ändert dann den Titel in den Standardtitel)
  2. "Y", aber der Tab wird geschlossen, sobald ich aufhöre top.

Gibt es eine Möglichkeit, einen Tab zu öffnen, den Titel zu starten bash, aber nicht zu ändern? Ich habe Google ausprobiert, aber aufgegeben.

EDIT: Es muss kein Befehl sein.


Muss es ein Befehl sein? Weil die Gnome-Terminal-GUI dafür gut funktioniert.
Neph

@kikjezrous Nun, ich weiß, wie man es mit Tastaturkürzeln macht oder einfach mit der rechten Maustaste klickt, aber ich muss es tun, wenn ich zur Arbeit komme (und es sind 6 Registerkarten), also ist es eher ein Problem der Bequemlichkeit als eine echte Notwendigkeit.
Omninonsense

Ah, ich werde meine Antwort bearbeiten.
Neph

Antworten:


4

Wie Sie in anderen Antworten sehen können , wird der Titel der Registerkarte bei jeder Ausgabe einer Eingabeaufforderung von der Shell geändert. Und nachdem Sie topIhren Tab ausgeführt haben, wird er beendet, da der Befehl, den Sie ausgeführt haben, beendet ist ...

Ich werde folgendes tun:

Schritt 1: Rufen Sie das Terminal mit Shells auf und fügen Sie folgende Umgebungsvariablen hinzu:

gnome-terminal --tab -t X -e "env MYTAB=X bash" --tab -t Y -e "env MYTAB=Y bash" 

Schritt 2: Fügen Sie am Ende Ihres .bashrcfolgenden Codes hinzu:

#if MYTAB is not set, return
[ -z "$MYTAB" ] && return
# reset the cursor and title 
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1="\[\e]0;$MYTAB \w\a\]$PS1"   #title: $MYTAB and current dir
# execute the commands for every tab
case "$MYTAB" in
        X)
                echo this is X
        ;;

        Y)
                echo this is Y 
                top
        ;;
esac

... was meiner Meinung nach leicht zu verstehen ist und Sie mit dem Befehl / den Optimierungen, die Sie benötigen, ändern können. Getestet und funktioniert ok; Nachdem Sie topdie Registerkarte verlassen haben, haben Sie weiterhin die Eingabeaufforderung und die Registerkarte, die Sie lesen können.

Screenshot (nach Drücken von "q" top):

Bildschirmfoto


6

Um die Tab-Titel beizubehalten, müssen Sie die folgenden Zeilen in Ihrem Kommentar kommentieren .bashrc:

# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
#    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
#    ;;
#*)
#    ;;
#esac

Dann gnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top"wird wie erwartet funktionieren:

Geben Sie hier die Bildbeschreibung ein


Markieren Sie dies als die richtige Antwort, da es die einfachste ist. :-)
Omninonsense

Ich habe die akzeptierte Antwort geändert (und leicht bearbeitet), weil sie meinen Anforderungen besser entspricht. Dies ist jedoch immer noch eine gute Antwort!
Omninonsense

1
Kein Problem, so funktioniert es :)
Sylvain Pineau

1

Ich gehe davon aus, dass es kein Befehl sein muss, und gebe eine vollständig grafische Möglichkeit, dies zu tun.

Nach dem Start von gnome-terminal können Sie im Menü 'Datei' neue Registerkarten öffnen, denen ein bestimmter Titel zugewiesen wurde. Dies kann entweder durch das Menü 'Terminal' oder durch Klicken mit der rechten Maustaste auf die Registerkarte und Ausführen aus dem Kontextmenü geändert werden.

Dann können Sie oben öffnen und alle anderen Befehle, die Sie möchten, alles im Terminal ausführen. Es wird als normaler, ungebundener Prozess ausgeführt, der von jedem anderen Terminal - nur der Desktop-Umgebung - ausgeführt wird und nicht stirbt, wenn es das Gefühl hat, getan zu sein, was es ist tun soll.


Bei Verwendung des eingebauten Gnome-Terminals gibt es keine Option zum Festlegen des Titels im Kontextmenü für Registerkarten oder eine Option im Menü 'Terminal'. Welche Terminalversion verwenden Sie?
Williams

1

Beim Herumspielen stellte ich fest, dass es überhaupt nicht der Befehl ist - es ist das Profil.

Gehe zu:

Edit | Profiles | (Default) | Edit | Title and Command 

und ändern Sie die Option "Wenn Terminals ihren eigenen Titel festlegen" am Ende der Liste in "Ersttitel beibehalten". Wenn Sie jetzt einen Befehl mit einem Titel starten, bleibt dieser erhalten, sodass Ihr Befehl ordnungsgemäß funktioniert.

Geben Sie hier die Bildbeschreibung ein


Beachten Sie, dass Sie dies für jedes definierte Profil tun müssen
Sylvain Pineau
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.