Memiliki beban tmux secara default ketika terminal zsh diluncurkan

23

Alur kerja saya saat ini adalah:

  1. CTRL+ SHIFT+ Tuntuk meluncurkan jendela terminal baru. Itu memulai terminal zsh baru.
  2. Ketik tmuxuntuk memulai tmux.

Bagaimana saya bisa memuat tmux secara default dengan jendela terminal baru?

eoinoc
sumber

Jawaban:

36

Setidaknya ada dua cara:

  1. Menulis sesuatu seperti

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

    di awal ~/.zshrc. Catat tes bersyarat ke kemungkinan loop ketika tmuxmemunculkan sendiri zsh.

  2. Ubah perintah peluncuran terminal ke sesuatu seperti

    xterm -e tmux

Saya lebih suka cara kedua, karena kadang-kadang saya perlu meluncurkan terminal tanpa tmux(misalnya ketika saya perlu menyambung kembali ke sesi yang ada).

buru-buru
sumber
2
Atau memiliki cara pintas yang berbeda untuk xterm -e tmuxdan polos xterm.
Nikolai N Fetissov
Ya, sebenarnya saya maksudkan di bawah "Saya lebih suka cara kedua" =)
buru
1
Melaksanakan tmuxdi akhir .zshrcakan menyebabkan loop tak berujung dari zsh mulai tmux mulai zsh mulai tmux ...
Thor
Bagaimana cara "memodifikasi perintah peluncuran terminal"?
eoinoc
@ eoinoc tergantung pada lingkungan Anda. Sebagai contoh, saya menggunakan wm yang luar biasa, oleh karena itu saya hanya perlu memodifikasi string pada file konfigurasi saya. Di KDE Anda perlu mengedit hotkey. Dan seterusnya.
buru
6

Hati-hati dengan echo tmux >> ~/.zshrcsolusi meskipun, saya ingat bahwa hanya melemparkan bashdalam .cshrcberkas menyebabkan saya kesulitan melalui SSH.

IIRC masalah terjadi dengan cangkang non-interaktif, jadi Anda harus mengujinya.

case $- in *i*)
  if [ -z "$TMUX" ]; then exec tmux; fi;;
esac
deviantkarot
sumber
Anda kehilangan ruang antara "dan ].
n.st
5

tambahkan ke .zshrc

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

maka tmux akan secara otomatis terhubung ke sesi yang disebut TMUX ketika Anda meluncurkan terminal Anda.

theJian
sumber
1

Sebenarnya ada plugin default tmuxuntuk oh_my_zsh.

Tambahkan ke daftar plugin Anda kemudian atur ZSH_TMUX_AUTOSTART=truedi.zshrc

Untuk referensi lebih lanjut, buka di sini

Ryan
sumber
0

Tambahkan "tmux" ke file .zshrc Anda, yang dieksekusi setiap kali Anda memulai zsh. Cara cepat:

echo tmux >> ~/.zshrc
Serpihan Kekacauan
sumber
Masalahnya, ini memulai sesi baru di setiap instance baru dan membengkak tmux dengan sesi yang Anda belum pernah keluar (juga tmux akan mengeluh tentang hal itu). Bukan solusi yang bagus.
Eksapsy
0

Tambahkan ini di ~/.zshrc:

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