Erzwingen Sie, dass jedes neue Terminal in einer neuen Registerkarte geöffnet wird


8

Ich habe die Angewohnheit, ein Terminal mit dem Befehl "Terminal hier öffnen" in Ordnern zu öffnen. Dies führt dazu, dass einige Terminals geöffnet bleiben, während ich sie nicht mehr wirklich benutze, oder ich bin verwirrt, welches Terminal welchen Zweck erfüllt hat.

Ich weiß, dass ich Terminal-Registerkarten und dergleichen beschriften kann, aber kann ich ein neues Terminal, das geöffnet wird, zwingen, eine neue Registerkarte in einem Terminal-Bildschirm zu werden (falls bereits eine geöffnet ist?). Auf diese Weise habe ich sie immer in einer einzigen Registerkarte Terminal.

EDIT Okay, es ist schon eine Weile her und mein Linux Mojo hat sich sehr verbessert. Die aktuelle Lösung für diese Situation wurde für mich verwendet tmux. Es ist etwas fortgeschrittener als normale Terminals und Tabs, aber sobald ich den Dreh raus habe (ungefähr eine Stunde lang versucht), bin ich sehr zufrieden mit der Art und Weise, wie man Dinge macht.

Zunächst habe ich sichergestellt, dass bei jedem Öffnen eines Terminals mit ctrl-alt-ttmux standardmäßig tmux geöffnet wird. Dies kann erreicht werden, indem .bashrcnach allen Aliasnamen die folgende Zeile in Ihre Datei eingefügt wird:

[[ $TERM != "screen" ]] && exec 'tmux

Nun jedes Mal laichen Sie einen Terminal ctrl-alt-twerden Sie mit einem präsentiert tmux.

Um sicherzustellen, dass nur ein Terminal gleichzeitig geöffnet ist, habe ich Folgendes getan:

Zunächst können Sie eine Sitzung tmuxdurch Ausführen erneut zuordnen tmux attach -d. Dadurch werden alle anderen mit dieser Sitzung verbundenen Clients getrennt. Dies funktioniert gut, wenn Sie die einzige Person sind, die die Sitzungen verwendet.

Wenn jedoch keine Sitzung ausgeführt wird, wird angezeigt, dass keine Sitzungen gefunden wurden. Ergo brauchst du so etwas wie if (nosession) {tmux} else {tmux attach -d}. Erstellen Sie dazu ~/.tmux.confdie folgende Zeile zum Anhängen an Ihre Datei:

#if run as "tmux attach", create a session if one does not already exist
new-session -n $HOST

(Danke an diesen Beitrag )

In meiner .bashrcDatei habe ich die zuvor hinzugefügte Zeile wie folgt geändert:

[[ $TERM != "screen" ]] && exec 'tmux attach -d'

Dadurch werden alle anderen Clients von der tmuxSitzung getrennt. Wenn Sie dies tun, werden alle anderen Terminals geschlossen. Sie werden geschlossen, da diese Zeile auch sicherstellt, dass beim Öffnen eines Terminals (Strg-Alt-T) sofort eine tmux-Sitzung gestartet wird.

Ergo, attach -dtötet die anderen Sitzungen. Das ist also die beste Lösung, die ich bekommen konnte, und ich bin ziemlich zufrieden damit! :) :)

Das einzige, was ich noch möchte, ist, dass beim Drücken ctrl-alt-tmeine aktuelle Sitzung geöffnet und ein neues Fenster erstellt wird. Ich habe das noch nicht herausgefunden, also zögern Sie nicht zu helfen!


Drücken Sie Strg + Umschalt + t, um die Registerkarte im Terminal zu öffnen.
Ankur Khandelwal

Ja, das ist mir bewusst. Wie gesagt, ich öffne jedoch häufig Registerkarten aus einem Verzeichnis mit dem Plugin "Terminal hier öffnen" (dies ist beispielsweise in Xubuntu die Standardeinstellung). Diese öffnen ein neues Fenster. Ich möchte, dass diese als neue Registerkarte im bereits vorhandenen Terminalfenster geöffnet werden.
Christophe De Troyer

Antworten:


3

Leider ist das Öffnen neuer Registerkarten in der vorhandenen Gnome-Terminal-Sitzung seit einigen Jahren ein gewünschtes Feature - siehe hier .

Es wäre jedoch möglich, etwas zusammen zu hacken. Zum Beispiel dieser bietet Antwort einen Hack einen neuen Tab im aktuellen Fenster von gnome-terminal zu öffnen.


Ausgezeichnet. +1 für den Link zum Fehlerbericht. Ich kann nur alle dazu ermutigen, oben auf den Link "Das betrifft mich auch" zu klicken, um darauf aufmerksam zu machen. Auch +1 für den Hack. Gute Antwort!
Christophe De Troyer
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.