Tener carga tmux por defecto cuando se inicia un terminal zsh

23

Mi flujo de trabajo actual es:

  1. CTRL+ SHIFT+ Tpara iniciar una nueva ventana de terminal. Eso inicia un nuevo terminal zsh.
  2. Escriba tmuxpara iniciar tmux.

¿Cómo puedo tener tmux load por defecto con una nueva ventana de terminal?

eoinoc
fuente

Respuestas:

36

Hay al menos dos formas:

  1. Escribe algo como

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

    a principios de ~/.zshrc. Tenga en cuenta la prueba condicional a un posible bucle cuando tmuxgenera su propio zsh.

  2. Modificar el comando de lanzamiento de terminal a algo como

    xterm -e tmux

Prefiero la segunda forma, porque a veces necesito iniciar un terminal sin tmux(por ejemplo, cuando necesito volver a conectarme a una sesión existente).

prisa
fuente
2
O tener diferentes atajos para xterm -e tmuxy simple xterm.
Nikolai N Fetissov
Sí, en realidad lo dije en "Prefiero la segunda forma" =)
prisa
1
Ejecutar tmuxal final de .zshrccausará un ciclo infinito de zsh que comienza tmux que comienza zsh que comienza tmux ...
Thor
¿Cómo se trataría de "modificar el comando de lanzamiento de terminal"?
eoinoc
@eoinoc depende de tu entorno. Por ejemplo, estoy usando wm impresionante, por lo tanto, solo necesito modificar la cadena en mi archivo de configuración. En kde necesitas editar teclas de acceso rápido. Y así.
precipitarse
6

Sin echo tmux >> ~/.zshrcembargo, tenga cuidado con la solución, recuerdo que simplemente arrojar bashun .cshrcarchivo en un archivo me causó problemas con SSH.

IIRC el problema se produjo con shells no interactivos, por lo que debe probarlo.

case $- in *i*)
  if [ -z "$TMUX" ]; then exec tmux; fi;;
esac
deviantkarot
fuente
Te falta un espacio entre "y ].
n.st
5

agréguelo a su .zshrc

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

entonces tmux se conectará automáticamente a una sesión llamada TMUX cuando inicie su terminal.

theJian
fuente
1

En realidad, hay un complemento predeterminado tmuxpara oh_my_zsh.

Agréguelo a su lista de complementos y luego configúrelo ZSH_TMUX_AUTOSTART=trueen su.zshrc

Para más referencia, vaya aquí.

Ryan
fuente
0

Agregue "tmux" a su archivo .zshrc, que se ejecuta cada vez que inicia zsh. La forma rápida:

echo tmux >> ~/.zshrc
Astilla del caos
fuente
Lo que ocurre con esto es que comienza una nueva sesión en cada nueva instancia e hincha tmux con sesiones que nunca has salido (también tmux se quejará). No es una buena solución.
Eksapsy
0

Agregue esto en su ~/.zshrc:

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