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?

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).


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

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.


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


0

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

echo tmux >> ~/.zshrc

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.