Domyślne ładowanie tmux po uruchomieniu terminala zsh

23

Mój obecny przepływ pracy to:

  1. CTRL+ SHIFT+, Taby uruchomić nowe okno terminala. To uruchamia nowy terminal Zsh.
  2. Wpisz, tmuxaby rozpocząć tmux.

Jak mogę domyślnie ładować tmux w nowym oknie terminala?

eoinoc
źródło

Odpowiedzi:

36

Istnieją co najmniej dwa sposoby:

  1. Napisz coś w stylu

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

    na początku ~/.zshrc. Zwróć uwagę na test warunkowy na możliwą pętlę, gdy tmuxpojawi się jej własny zsh.

  2. Zmodyfikuj polecenie uruchamiania terminala na coś podobnego

    xterm -e tmux

Wolę drugi sposób, ponieważ czasami muszę uruchomić terminal bez tmux(na przykład, gdy muszę ponownie połączyć się z istniejącą sesją).

pośpiech
źródło
2
Lub użyj różnych skrótów xterm -e tmuxi zwykłych xterm.
Nikolai N Fetissov
Tak, właściwie miałem to na myśli pod hasłem „Wolę drugi sposób” =)
szczytu
1
Wykonanie tmuxna końcu .zshrcspowoduje nieskończoną pętlę zsh start tmux start zsh start tmux ...
Thor
Jak można przejść do „modyfikowania polecenia uruchamiania terminala”?
eoinoc
@eoinoc zależy od twojego środowiska. Na przykład używam niesamowitego wm, dlatego muszę tylko zmodyfikować ciąg w moim pliku konfiguracyjnym. W KDE musisz edytować skróty klawiszowe. I tak dalej.
pędzi
6

Bądź ostrożny z echo tmux >> ~/.zshrcroztworem chociaż pamiętam, że po prostu rzuca bashsię w .cshrcpliku spowodowane mi kłopot przez SSH.

IIRC problem wystąpił w przypadku nieinteraktywnych powłok, więc powinieneś to sprawdzić.

case $- in *i*)
  if [ -z "$TMUX" ]; then exec tmux; fi;;
esac
deviantkarot
źródło
Brakuje spacji między "i ].
n.st
5

dodaj to do swojego .zshrc

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

wtedy tmux automatycznie połączy się z sesją o nazwie TMUX po uruchomieniu terminala.

theJian
źródło
1

W rzeczywistości istnieje domyślna wtyczka tmuxdla oh_my_zsh.

Dodaj go do listy wtyczek, a następnie ustaw ZSH_TMUX_AUTOSTART=truena swoim.zshrc

Aby uzyskać więcej informacji, przejdź tutaj

Ryan
źródło
0

Dodaj „tmux” do pliku .zshrc, który jest wykonywany przy każdym uruchomieniu zsh. Szybki sposób:

echo tmux >> ~/.zshrc
Drzazga Chaosu
źródło
Chodzi o to, że rozpoczyna nową sesję w każdej nowej instancji i napełnia Tmux sesjami, których nigdy nie opuściłeś (również Tmux narzeka na to). Niezbyt dobre rozwiązanie.
Eksapsy
0

Dodaj to w ~/.zshrc:

if [ -z $TMUX ]; then; tmux; fi
Jerome Dalbert
źródło