Tmux wird standardmäßig geladen, wenn ein zsh-Terminal gestartet wird

23

Mein aktueller Workflow ist:

  1. CTRL+ SHIFT+ TEin neues Terminalfenster zu starten. Das startet ein neues zsh-Terminal.
  2. Geben Sie tmuxbeginnen tmux.

Wie kann ich tmux standardmäßig mit einem neuen Terminalfenster laden?

eoinoc
quelle

Antworten:

36

Es gibt mindestens zwei Möglichkeiten:

  1. Schreiben Sie so etwas wie

    if [ "$TMUX" = "" ]; then tmux; fi

    am anfang von ~/.zshrc. Beachten Sie den Bedingungstest für eine mögliche Schleife, wenn tmuxeine eigene erzeugt wird zsh.

  2. Ändern Sie den Befehl zum Starten des Terminals in etwa

    xterm -e tmux

Ich bevorzuge den zweiten Weg, weil ich manchmal ein Terminal ohne starten muss tmux(zum Beispiel, wenn ich mich wieder mit einer bestehenden Sitzung verbinden muss).

eilen
quelle
2
Oder haben Sie verschiedene Abkürzungen für xterm -e tmuxund einfach xterm.
Nikolai N Fetissov
Ja, eigentlich meinte ich es unter "Ich bevorzuge den zweiten Weg" =)
Ansturm
1
Die Ausführung tmuxam Ende von .zshrcwird eine Endlosschleife von zsh auslösen, wenn tmux gestartet wird. Zsh startet tmux ...
Thor
Wie würde man vorgehen, um den Terminal-Startbefehl zu ändern?
Eoinoc
@eoinoc es hängt von Ihrer Umgebung ab. Zum Beispiel verwende ich awesome wm, daher muss ich nur den String in meiner Konfigurationsdatei ändern. In kde müssen Sie Hotkeys bearbeiten. Und so weiter.
Ansturm
6

Seien Sie vorsichtig mit der echo tmux >> ~/.zshrcLösung, aber ich erinnere mich, dass das einfache Werfen eines bashin eine .cshrcDatei mir Probleme über SSH bereitete.

IIRC Das Problem trat bei nicht interaktiven Shells auf. Sie sollten dies testen.

case $- in *i*)
  if [ -z "$TMUX" ]; then exec tmux; fi;;
esac
Deviantkarot
quelle
Es fehlt ein Leerzeichen zwischen "und ].
9.
5

füge es deinem hinzu .zshrc

if [ -z "$TMUX" ]
then
    tmux attach -t TMUX || tmux new -s TMUX
fi

Wenn Sie Ihr Terminal starten, stellt tmux automatisch eine Verbindung zu einer Sitzung namens TMUX her .

theJian
quelle
1

Es gibt tatsächlich ein Standard-Plugin tmuxfür oh_my_zsh.

Füge es deiner Plugin-Liste hinzu und setze es ZSH_TMUX_AUTOSTART=truein deiner.zshrc

Weitere Informationen finden Sie hier

Ryan
quelle
0

Fügen Sie "tmux" zu Ihrer .zshrc-Datei hinzu, die bei jedem Start von zsh ausgeführt wird. Der schnelle Weg:

echo tmux >> ~/.zshrc
Splitter des Chaos
quelle
Das Problem dabei ist, dass es in jeder neuen Instanz eine neue Sitzung startet und tmux mit Sitzungen aufbläht, die Sie nie beendet haben (auch tmux wird sich darüber beschweren). Keine gute Lösung.
Eksapsy
0

Fügen Sie dies in Ihrem ~/.zshrc:

if [ -z $TMUX ]; then; tmux; fi
Jerome Dalbert
quelle