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?

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


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

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.


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


0

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

echo tmux >> ~/.zshrc

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.