Tendo o tmux load por padrão quando um terminal zsh é iniciado

23

Meu fluxo de trabalho atual é:

  1. CTRL+ SHIFT+ Tpara iniciar uma nova janela do terminal. Isso inicia um novo terminal zsh.
  2. Digite tmuxpara iniciar o tmux.

Como posso carregar o tmux por padrão com uma nova janela de terminal?

eoinoc
fonte

Respostas:

36

Existem pelo menos duas maneiras:

  1. Escreva algo como

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

    no começo de ~/.zshrc. Observe o teste condicional para um possível loop quando tmuxgerar o seu próprio zsh.

  2. Modifique o comando de inicialização do terminal para algo como

    xterm -e tmux

Eu prefiro a segunda maneira, porque às vezes eu preciso iniciar um terminal sem tmux(por exemplo, quando eu preciso me reconectar a uma sessão existente).

pressa
fonte
2
Ou ter diferentes atalhos para xterm -e tmuxe simples xterm.
Nikolai N Fetissov
Sim, na verdade, eu quis dizer isso em "Prefiro o segundo caminho" =) #
pressa
1
Execução tmuxno final do .zshrccausará um loop infinito de zsh começando tmux começando zsh tmux começando ...
Thor
Como alguém poderia "modificar o comando de inicialização do terminal"?
eoinoc
@eoinoc depende do seu ambiente. Por exemplo, estou usando o wm awesome, portanto, só preciso modificar a string no meu arquivo de configuração. No kde você precisa editar teclas de atalho. E assim por diante.
apressar
6

Tenha cuidado com a echo tmux >> ~/.zshrcsolução, porém, lembro-me de que simplesmente jogar um bashem um .cshrcarquivo me causou problemas com o SSH.

IIRC, o problema ocorreu com shells não interativos; portanto, você deve testar isso.

case $- in *i*)
  if [ -z "$TMUX" ]; then exec tmux; fi;;
esac
deviantkarot
fonte
Você está perdendo um espaço entre "e ].
n.st
5

adicione ao seu .zshrc

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

o tmux se conectará automaticamente a uma sessão chamada TMUX quando você iniciar o seu terminal.

theJian
fonte
1

Na verdade, existe um plugin padrão tmuxpara oh_my_zsh.

Adicione-o à sua lista de plug-ins e defina ZSH_TMUX_AUTOSTART=trueem seu.zshrc

Para mais referência, clique aqui

Ryan
fonte
0

Adicione "tmux" ao seu arquivo .zshrc, que é executado toda vez que você inicia o zsh. A maneira rápida:

echo tmux >> ~/.zshrc
Lasca do Caos
fonte
O problema é que ele inicia uma nova sessão em cada nova instância e incendeia o tmux com sessões que você nunca saiu (o tmux também se queixará). Não é uma boa solução.
Eksapsy
0

Adicione isso no seu ~/.zshrc:

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