Comment démarrer tmux avec plusieurs volets ouverts en même temps?

23

Supposons que je démarre tmuxet exécute immédiatement Ctrl+ b+ %et Ctrl+ b+ ".

Cela me donne une grande vitre sur le côté gauche de l'écran; le côté droit de l'écran a un volet supérieur et inférieur.

Comment puis-je configurer tmux pour démarrer dans cette configuration sans avoir à taper ces commandes?

Mark Harrison
la source
Si vous avez besoin d'ouvrir plusieurs terminaux en une seule fois, vous pouvez le faire avec terminator . Installez-le à partir du centre logiciel.
SAGAR Nair
Merci, c'est une bonne commande à savoir! Pour mon cas particulier, il s'agit d'une session ssh vers un ordinateur distant.
Mark Harrison

Réponses:

15

Vous pouvez utiliser le script shell suivant pour votre configuration:

#!/bin/sh 
tmux new-session -s "mySession" -d
tmux split-window -h
tmux split-window -v
tmux -2 attach-session -d 

Cela donnera la configuration requise de l'écran avec les commandes suivantes comme vous l'avez mentionné. tmux -> Ctrl+ b+ %-> Ctrl+ b+"

Pour référence, veuillez utiliser la page de manuel tmux .

Harshit
la source
4

Il peut être facile d'activer et de désactiver les tmuxsessions automatiques lors de la connexion en utilisant l' application Byobu . Vous pouvez utiliser Byobu comme interface pour tmuxrépondre à ce besoin, il est simple de faire ce que vous demandez. Dans un terminal, exécutez les commandes suivantes:

sudo apt-get install byobu
sudo byobu-enable
sudo -i

Lorsque l'utilisateur root se connecte via la console, SSH ou avec sudo -i, Byobu se connecte à une tmuxsession existante ou en crée une nouvelle si celle-ci n'est pas déjà en cours d'exécution. Utilisez sudo -iau lieu de sudo -s. L' -soption démarre uniquement un shell, pas un shell de connexion. Vous devez utiliser sudo -ipour émuler une connexion complète, qui se charge également roots ~/.profile, et c'est là que byobu s'installera lorsque vous exécuterez

byobu-enable.

Vous pouvez configurer différentes sessions à partir de votre .tmux.confcomme ci-dessous:

# initialize sessions
bind S source-file ~/.tmux/session1 
bind s source-file ~/.tmux/session2

Et puis vous pouvez formater les sessions selon vos besoins:

#session1
new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

Cela ouvrirait 2 fenêtres, la seconde serait nommée foo / bar et serait divisée verticalement en deux (50%) avec foo au-dessus de la barre. Le focus serait dans la fenêtre 2 (foo / bar), volet supérieur (foo).

Byobu rend la configuration et le démarrage de tmux automatiquement très simples.

Abhishek Tandon
la source
1
pourquoi bind S vs bind s? (d'abord un grand S, puis un petit S?)
knb
3

Le plugin tmux-resurrect permettra de configurer la persistance de session ainsi que de fournir des fonctionnalités supplémentaires pour enregistrer et restaurer les paramètres sur les sessions tmux.

De nombreuses fonctionnalités supplémentaires sont disponibles. Depuis la page Web du plugin:

" Ce plugin se donne beaucoup de mal pour enregistrer et restaurer tous les détails de votre environnement tmux. Voici ce qui a été pris en charge:

  • toutes les sessions, fenêtres, volets et leur ordre
  • répertoire de travail actuel pour chaque volet
  • dispositions exactes des volets dans les fenêtres (même en cas de zoom)
  • session active et alternative
  • fenêtre active et alternative pour chaque session
  • fenêtres avec focus volet actif pour chaque fenêtre
  • "sessions groupées" (fonctionnalité utile lors de l'utilisation de tmux avec plusieurs moniteurs) programmes exécutés dans un volet! "

Installation:

  1. Dans le terminal, accédez à votre répertoire de plugin tmux (dans mon cas, ~/dotfiles/tmux/plugins).
  2. Clone du référentiel avec la commande: git clone https://github.com/tmux-plugins/tmux-resurrect.

  3. Modifiez votre .tmux.conffichier et ajoutez la ligne set -g @plugin 'tmux-plugins/tmux-resurrect'.

  4. Recharger l'environnement tmux avec la commande: tmux source-file ~/dotfiles/tmux/tmux.conf.
  5. Entrez la mise en page souhaitée. Dans ce cas Ctrl- b %et Ctrl- b ".
  6. Enregistrez votre session tmux en entrant la commande Ctrl- b+ Ctrl- s.
  7. Au prochain démarrage de votre session tmux, entrez la commande Ctrl- b+ Ctrl- rpour restaurer votre session tmux.

Comme mentionné précédemment, en plus de configurer la disposition des volets de la session tmux, ce plugin peut également configurer des répertoires de travail persistants et redémarrer vos applications en cours à chaque session.

Kevin Bowen
la source
2

Je me suis écrit un petit script bash :

# filename tmuxv in /home/<username>/Bash/tmuxv/

#!/bin/bash
tmux new-session \; split-window -v \; rename-window ${1} \; attach

et mettre un alias dans mes ~ / .bash_aliases

alias tmuxv="/home/<username>/Bash/tmuxv/tmuxv"

Alors maintenant, je peux simplement taper tmuxv PYTHONet j'ai une session tmux divisée verticalement avec une fenêtre nommée PYTHON, ce qui est bien parce que le nom de la fenêtre est reflété dans mon nom d'onglet gnome-terminaux.

anarchist912
la source
1
Bonne réponse, mais veuillez supprimer la question à la fin. Essayez de la poser comme une nouvelle question, ce qui permettra à plus de gens de la voir.
Tom Brossman