Загрузка tmux по умолчанию при запуске терминала zsh

23

Мой текущий рабочий процесс:

  1. CTRL+ SHIFT+, Tчтобы запустить новое окно терминала. Это запускает новый терминал Zsh.
  2. Типа tmuxдля запуска tmux.

Как я могу загрузить tmux по умолчанию с новым окном терминала?

eoinoc
источник

Ответы:

36

Есть как минимум два пути:

  1. Напишите что-нибудь вроде

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

    в начале ~/.zshrc. Обратите внимание на условный тест для возможного цикла, когда он tmuxпорождает свой собственный zsh.

  2. Измените команду запуска терминала на что-то вроде

    xterm -e tmux

Я предпочитаю второй способ, потому что иногда мне нужно запустить терминал без tmux(например, когда мне нужно повторно подключиться к существующему сеансу).

порыв
источник
2
Или есть разные ярлыки для xterm -e tmuxи простой xterm.
Николай Н Фетисов
Да, на самом деле я имел в виду это под "я предпочитаю второй путь" =)
пик
1
Выполнение tmuxв конце .zshrcприведет к бесконечному циклу zsh, начиная с tmux, начиная с zsh, начиная с tmux ...
Thor
Как можно было бы "изменить команду запуска терминала"?
eoinoc
@eoinoc, это зависит от вашей среды. Например, я использую удивительный wm, поэтому мне просто нужно изменить строку в моем конфигурационном файле. В kde вам нужно отредактировать горячие клавиши. И так далее.
Раш
6

Будьте осторожны с echo tmux >> ~/.zshrcраствором , хотя, я помню , что просто бросает bashв .cshrcфайл заставил меня неприятности через SSH.

IIRC проблема возникла с неинтерактивными оболочками, поэтому вы должны проверить это.

case $- in *i*)
  if [ -z "$TMUX" ]; then exec tmux; fi;;
esac
deviantkarot
источник
Вам не хватает пробела между "и ].
n.st
5

добавь его в свой .zshrc

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

тогда tmux автоматически подключится к сеансу TMUX при запуске вашего терминала.

theJian
источник
1

На самом деле есть плагин tmuxпо умолчанию для oh_my_zsh.

Добавьте его в список плагинов и установите ZSH_TMUX_AUTOSTART=trueв своем.zshrc

Для получения дополнительной информации, перейдите сюда

Райан
источник
0

Добавьте «tmux» в ваш файл .zshrc, который выполняется каждый раз, когда вы запускаете zsh. Быстрый способ:

echo tmux >> ~/.zshrc
Осколок Хаоса
источник
Дело в том, что он запускает новый сеанс в каждом новом экземпляре и раздувает tmux сеансами, которые вы никогда не выходили (также tmux будет жаловаться на это). Не очень хорошее решение.
Эксапсы
0

Добавьте это в свой ~/.zshrc:

if [ -z $TMUX ]; then; tmux; fi
Джером Далберт
источник