Wie starte ich tmux beim Start des Terminals richtig?

7

Ich habe dieses Snippet verwendet, um tmux zu starten, wenn das Terminal gestartet wird:

# TMUX startup
if command -v tmux>/dev/null; then
 [[ ! $TERM =~ screen ]] && [ -z $TMUX ] && exec tmux
fi

Aber damit kann ich tmux nicht beenden, ohne dass auch der Terminalbildschirm geschlossen ist.

Ich habe es versucht:

Ctrl + b :detach

exit

Und nach der PID suchen und sie töten. Alle diese Methoden schließen auch das Terminal.

Wie sollte ich tmux so konfigurieren, dass es beim Starten des Terminals startet, es aber trotzdem schließen kann, ohne dass das Terminal geschlossen wird? Irgendwelche Tipps sind willkommen!

bpinaya
quelle
Ich habe gerade versucht, den Ausschnitt, den ich verwendet habe, durch nur zu ersetzen tmux, aber ich bekomme ein : sessions should be nested with care, unset $TMUX to force. Ich habe auch versucht, den Ausschnitt, den ich verwendet habe, so zu belassen, wie er ist, und tmuxam Ende des Ausschnitts einen hinzuzufügen, der ~/.bashrcdann aber immer noch das Terminal verlässt.
Bpinaya

Antworten:

10

Das Problem ist der execBefehl. Wie hier erläutert , execwird die aktuelle Shell durch die von Ihnen angegebene Ausführung ersetzt. Sie haben also keine Shell, die ausgeführt wird tmux, sondern nur eine. Wenn Sie sie tmuxbeenden, wird auch das Terminal verlassen.

Entfernen execSie einfach die und es sollte wie erwartet funktionieren:

if command -v tmux>/dev/null; then
 [[ ! $TERM =~ screen ]] && [ -z $TMUX ] && tmux
fi
Terdon
quelle