
Eu gostaria de usar sessões tmux para gerenciar janelas/painéis em diferentes shells. O que notei é que o tmux sempre usará o shell a partir do qual foi iniciado pela primeira vez para todas as sessões subsequentes, independentemente do shell usado para elas.
Eu tenho duas conchas. Vamos chamá-los de a e b
No primeiro shell eu executo:
tmux new -s a
No segundo shell eu executo:
tmux new -s b
O que acabo percebendo é que o shell real usado pela sessão b do tmux é o shell a. As variáveis de ambiente são herdadas corretamente, mas o shell em si não é o que eu esperava.
Alguma sugestão sobre como fazer com que o tmux funcione bem com vários shells?
Responder1
Você pode criar vários servidores tmux, cada um usando um shell diferente.
$> SHELL=$(which zsh) && tmux -L zsh-tmux-socket new -s zsh-session
$> SHELL=$(which bash) && tmux -L bash-tmux-socket new -s bash-session
Opágina de manual do tmuxafirma que a [-L socket-name]
opção permite que um nome de soquete diferente seja especificado,permitindo que vários servidores tmux independentes sejam executados.
Descobri que cada nova janela criada em cada sessão do servidor usará o shell especificado pela variável de ambiente SHELL para essa sessão.
Isso funciona para o tmux 1.8, não conheço versões anteriores.