Создать сессию tmux в отдельных оболочках

1

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

У меня есть две раковины. Давайте назовем их а и б

В первой оболочке я запускаю:

tmux new -s a

Во второй оболочке я запускаю:

tmux new -s b

В конечном итоге я заметил, что фактическая оболочка, используемая сеансом tmux b, это оболочка a. Переменные среды наследуются правильно, но сама оболочка не та, которую я ожидал.

Любые предложения о том, как заставить tmux хорошо играть с несколькими оболочками?

phantombit
источник

Ответы:

1

Вы можете создать несколько серверов tmux, каждый из которых использует свою оболочку.

$> SHELL=$(which zsh) && tmux -L zsh-tmux-socket new -s zsh-session
$> SHELL=$(which bash) && tmux -L bash-tmux-socket new -s bash-session

Страница man tmux гласит, что [-L socket-name]опция позволяет указать другое имя сокета, что позволяет запускать несколько независимых серверов tmux .

Я обнаружил, что каждое новое окно, созданное в каждом сеансе сервера, будет использовать оболочку, указанную переменной среды SHELL для этого сеанса.

Это работает для tmux 1.8, я не знаю о более ранних версиях.

Шейн Войсард
источник