Avoir tmux chargé par défaut lors du lancement d'un terminal zsh

23

Mon workflow actuel est:

  1. CTRL+ SHIFT+ Tpour lancer une nouvelle fenêtre de terminal. Cela démarre un nouveau terminal zsh.
  2. Tapez tmuxpour démarrer tmux.

Comment puis-je charger tmux par défaut avec une nouvelle fenêtre de terminal?

eoinoc
la source

Réponses:

36

Il existe au moins deux façons:

  1. Écrivez quelque chose comme

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

    au début de ~/.zshrc. Notez le test conditionnel sur une boucle possible lorsqu'elle se tmuxdéclenche zsh.

  2. Modifiez la commande de lancement du terminal en quelque chose comme

    xterm -e tmux

Je préfère la deuxième façon, car parfois je dois lancer un terminal sans tmux(par exemple lorsque je dois me reconnecter à une session existante).

se ruer
la source
2
Ou avoir des raccourcis différents pour xterm -e tmuxet simple xterm.
Nikolai N Fetissov
Oui, en fait je le pensais sous "Je préfère la deuxième voie" =)
rush
1
L'exécution tmuxà la fin de .zshrcprovoquera une boucle sans fin de zsh à partir de tmux à partir de zsh à partir de tmux ...
Thor
Comment procéder pour "modifier la commande de lancement du terminal"?
eoinoc
@eoinoc cela dépend de votre environnement. Par exemple, j'utilise wm génial, donc j'ai juste besoin de modifier la chaîne dans mon fichier de configuration. Dans kde, vous devez modifier les raccourcis clavier. Etc.
rush
6

Soyez prudent avec la echo tmux >> ~/.zshrcsolution, je me souviens que le simple fait de lancer bashun .cshrcfichier m'a causé des problèmes avec SSH.

IIRC, le problème est survenu avec des shells non interactifs, vous devriez donc le tester.

case $- in *i*)
  if [ -z "$TMUX" ]; then exec tmux; fi;;
esac
deviantkarot
la source
Vous manquez un espace entre "et ].
2014
5

ajoutez-le à votre .zshrc

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

puis tmux se connectera automatiquement à une session appelée TMUX lorsque vous lancerez votre terminal.

theJian
la source
1

Il existe en fait un plugin par défaut tmuxpour oh_my_zsh.

Ajoutez-le à votre liste de plugins puis définissez-le ZSH_TMUX_AUTOSTART=truedans votre.zshrc

Pour plus de référence, allez ici

Ryan
la source
0

Ajoutez "tmux" à votre fichier .zshrc, qui est exécuté à chaque démarrage de zsh. Le moyen rapide:

echo tmux >> ~/.zshrc
Splinter of Chaos
la source
Le truc avec ça, c'est qu'il démarre une nouvelle session dans chaque nouvelle instance et il gonfle tmux avec des sessions que vous n'avez jamais quittées (tmux s'en plaindra également). Pas une bonne solution.
Eksapsy
0

Ajoutez ceci dans votre ~/.zshrc:

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