En 2007, Nicholas Marriott en avait assez de GNU Screen. Screen existait depuis 1987, était installé partout, et avait une config qui ressemblait à ce qu'on obtenait quand on demandait à quelqu'un d'écrire un fichier de configuration en 1987. Ce n'est pas un compliment.
Il a écrit tmux. Vingt ans plus tard, tmux est devenu l'outil que tout le monde installe sur ses serveurs, que la moitié comprend à moitié, et que l'autre moitié utilise uniquement pour Ctrl+b d et tmux attach. Ce guide parle de ce qui vient après.
Le problème que tmux résout - et que vous avez tous vécu
Vous êtes connecté en SSH sur un serveur de prod. Vous avez un build qui tourne depuis 20 minutes, un tail de logs dans un autre shell, et vim ouvert sur trois fichiers en cours de modification. Votre connexion SSH tombe. Réseau instable, timeout, VPN qui décide de redémarrer, chat qui marche sur le clavier - peu importe la raison.
Tout ce que vous faisiez est mort. Le build, les logs, vim, tout. Vous vous reconnectez et vous recommencez depuis zéro, avec ce sentiment particulier qui se situe quelque part entre la rage et la résignation.
tmux règle ça. Le serveur fait tourner tmux. Vos sessions vivent dans tmux. Votre connexion SSH n'est qu'une fenêtre sur tmux - elle peut tomber, se reconnecter, changer d'ordinateur, peu importe. Les sessions continuent de tourner côté serveur, exactement là où vous les avez laissées.
C'est ça, tmux. Tout le reste c'est du bonus.
Les concepts - la hiérarchie que tout le monde confond
tmux a trois niveaux. Les confondre au début est normal. Les confondre après six mois d'utilisation est moins excusable.
Session - le conteneur principal. Une session survit à la déconnexion SSH. Vous pouvez avoir plusieurs sessions sur le même serveur - une par projet, une par client, une par contexte. Chaque session a un nom.
Fenêtre (window) - l'équivalent d'un onglet de navigateur. Une session contient une ou plusieurs fenêtres. Chaque fenêtre occupe tout l'écran. Vous naviguez entre elles avec le préfixe + numéro.
Panneau (pane) - la subdivision d'une fenêtre. Une fenêtre peut être découpée en plusieurs panneaux - horizontalement, verticalement, ou les deux. Chaque panneau est un shell indépendant.
Session: rudeops
├── Fenêtre 1: dev
│ ├── Panneau gauche: vim
│ └── Panneau droit: shell
├── Fenêtre 2: logs
│ ├── Panneau haut: nginx logs
│ └── Panneau bas: app logs
└── Fenêtre 3: monitoring
└── Panneau unique: htop
Le préfixe - et pourquoi Ctrl+b c'est une mauvaise idée
Toutes les commandes tmux commencent par le préfixe. Par défaut : Ctrl+b. C'est inconfortable, loin sur le clavier, et Ctrl+b est aussi le raccourci de "page précédente" dans certains terminaux. La quasi-totalité des gens qui utilisent tmux sérieusement le changent.
Les deux alternatives populaires :
Ctrl+a - compatible avec les vieux réflexes GNU Screen. Le problème : Ctrl+a est aussi le raccourci bash/zsh pour "aller en début de ligne". Dans tmux, vous perdez ce raccourci dans les panneaux... à moins d'appuyer deux fois sur Ctrl+a, ce qui finit par devenir un réflexe.
Ctrl+Space - de plus en plus populaire. Confortable, peu utilisé par d'autres outils, facile à atteindre. C'est ce que j'utilise. Vous ferez votre propre choix et vous en changerez au moins une fois.
Dans ~/.tmux.conf :
# Changer le préfixe
unbind C-b
set-option -g prefix C-Space
bind-key C-Space send-prefix
La config ~/.tmux.conf - ce qu'on devrait tous avoir
# ~/.tmux.conf
# Préfixe
unbind C-b
set-option -g prefix C-Space
bind-key C-Space send-prefix
# Recharger la config sans quitter tmux
bind r source-file ~/.tmux.conf \; display-message "Config rechargée"
# Découpage intuitif - | pour vertical, - pour horizontal
unbind '"'
unbind %
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Navigation entre panneaux à la vim
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Redimensionnement des panneaux
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
# Activer la souris
set -g mouse on
# Numéroter les fenêtres depuis 1 (pas 0)
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
# Augmenter le buffer de l'historique
set -g history-limit 50000
# Terminal colors
set -g default-terminal "screen-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
# Pas de délai sur Escape (important pour vim)
set -sg escape-time 0
# Mode vi pour le copier-coller
set-window-option -g mode-keys vi
# Barre de statut
set -g status-position bottom
set -g status-bg colour234
set -g status-fg colour137
set -g status-left '#[fg=colour233,bg=colour241,bold] #S '
set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m/%Y %H:%M '
set -g status-right-length 50
set -g status-left-length 20
set -sg escape-time 0 - ce paramètre sauvera votre santé mentale si vous utilisez vim dans tmux. Par défaut, tmux attend 500ms après un Escape avant de l'envoyer à l'application, pour détecter les séquences d'échappement. Vim dans tmux avec escape-time non nul donne une expérience utilisateur qui ressemble à du développement sur une connexion satellite. Mettez-le à 0.
Sessions persistantes - le workflow qui change tout
Les commandes de base
# Créer une session nommée
tmux new-session -s rudeops
tmux new -s rudeops # raccourci
# Détacher une session (la laisser tourner en fond)
# Préfixe + d
# Lister les sessions actives
tmux list-sessions
tmux ls
# Rattacher une session
tmux attach -t rudeops
tmux a -t rudeops # raccourci
tmux a # dernière session utilisée
# Tuer une session
tmux kill-session -t rudeops
# Renommer une session depuis l'intérieur
# Préfixe + $
Le workflow SSH + tmux
La bonne façon de travailler sur un serveur distant :
# Se connecter et créer/rejoindre une session tmux
ssh user@serveur
tmux new-session -A -s main
-A : si la session main existe déjà, s'y attacher. Sinon, la créer. Une seule commande pour les deux cas. Vous ne vous demandez plus jamais si une session existe déjà.
Ou avec la fonction ssht() du guide zsh :
ssht() { ssh -t "$1" "tmux new-session -A -s main" }
ssht mon-serveur
Connexion SSH + création/attachement tmux en une commande. Si votre connexion tombe, vous faites ssht mon-serveur et vous retrouvez exactement là où vous étiez. Build toujours en cours, logs toujours en train de défiler, vim toujours ouvert. La sérénité.
Sessions multiples - organiser par contexte
# Une session par projet
tmux new -s rudeops-dev
tmux new -s rudeops-prod
tmux new -s client-xyz
# Naviguer entre les sessions
# Préfixe + s : liste interactive avec aperçu
# Préfixe + $ : renommer la session courante
# Préfixe + ( : session précédente
# Préfixe + ) : session suivante
Fenêtres et panneaux - travailler efficacement
Gestion des fenêtres
# Créer une fenêtre : Préfixe + c
# Renommer la fenêtre : Préfixe + ,
# Fenêtre suivante : Préfixe + n
# Fenêtre précédente : Préfixe + p
# Aller à la fenêtre N : Préfixe + 1-9
# Fermer la fenêtre : Préfixe + &
Gestion des panneaux
Avec notre config, | découpe verticalement et - découpe horizontalement :
# Préfixe + | : split vertical (deux panneaux côte à côte)
# Préfixe + - : split horizontal (deux panneaux l'un sur l'autre)
# Préfixe + h/j/k/l : navigation vim entre les panneaux
# Préfixe + H/J/K/L : redimensionner les panneaux
# Préfixe + z : zoomer sur le panneau courant (toggle)
# Préfixe + x : fermer le panneau courant
# Préfixe + q : afficher les numéros des panneaux
# Préfixe + { : déplacer le panneau courant vers la gauche
# Préfixe + } : déplacer le panneau courant vers la droite
Préfixe + z - le zoom
Vous travaillez dans un petit panneau et vous avez besoin de voir plus. Préfixe + z zoome sur le panneau courant - il prend toute la fenêtre. Reappuyez pour revenir au layout précédent. Utile pour lire un fichier de log ou travailler dans vim sans avoir à redimensionner. C'est la fonctionnalité qu'on découvre après six mois et qu'on utilise ensuite tous les jours.
Les layouts prédéfinis
tmux a des layouts prédéfinis pour organiser les panneaux automatiquement :
# Préfixe + Espace : cycler entre les layouts
# even-horizontal : panneaux côte à côte de même taille
# even-vertical : panneaux empilés de même taille
# main-horizontal : un grand panneau en haut, petits en bas
# main-vertical : un grand panneau à gauche, petits à droite
# tiled : grille de panneaux de même taille
Le mode copie - enfin comprendre le presse-papier
Le mode copie tmux est la fonctionnalité la plus utilisée et la plus mal configurée. Par défaut, vous ne pouvez pas copier du texte dans tmux vers votre clipboard système sans configuration supplémentaire. Ce qui explique pourquoi 70% des gens utilisent la souris pour sélectionner du texte dans tmux en désactivant le mode souris - perdant ainsi tous les avantages de la souris tmux.
La bonne solution :
# ~/.tmux.conf
# Mode vi
set-window-option -g mode-keys vi
# Entrer en mode copie : Préfixe + [
# Quitter le mode copie : q ou Escape
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
# Copie vers le clipboard système
# macOS
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
# Linux (nécessite xclip ou xsel)
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
# Linux avec Wayland
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy"
Le workflow mode copie
Préfixe + [ → entrer en mode copie
/terme → chercher vers le bas
?terme → chercher vers le haut
n / N → résultat suivant / précédent
v → commencer la sélection (comme vim)
C-v → sélection rectangulaire
y → copier et quitter le mode copie
q → quitter sans copier
Navigation en mode copie : exactement comme vim. h/j/k/l, w/b, 0/$, gg/G, Ctrl+f/b. Si vous connaissez vim, vous connaissez le mode copie tmux.
Synchronisation de panneaux - la killer feature que personne ne connaît
C'est ici que tmux passe d'un outil pratique à un outil qui change la façon de travailler. La synchronisation de panneaux envoie la même frappe à tous les panneaux de la fenêtre courante simultanément.
Cas d'usage concret : vous devez exécuter une commande de maintenance sur 8 serveurs. Sans synchronisation : vous tapez la commande 8 fois, ou vous écrivez un script. Avec synchronisation : vous ouvrez 8 panneaux, chacun SSH sur un serveur différent, vous activez la synchronisation, et vous tapez une fois.
# Activer la synchronisation
# Préfixe + :setw synchronize-panes on
# Désactiver
# Préfixe + :setw synchronize-panes off
Ou mieux, avec un toggle dans ~/.tmux.conf :
bind S setw synchronize-panes \; display-message "synchronize-panes: #{?pane_synchronized,on,off}"
Préfixe + S bascule la synchronisation et affiche l'état dans la barre de statut. Vous savez toujours si elle est activée ou non - évite d'exécuter une commande destructive sur 8 serveurs quand vous pensiez avoir désactivé la synchro.
Le workflow complet sur plusieurs serveurs
#!/bin/bash
SERVERS=("prod-01" "prod-02" "prod-03" "prod-04")
SESSION="multi-deploy"
tmux new-session -d -s $SESSION
for i in "${!SERVERS[@]}"; do
if [ $i -eq 0 ]; then
tmux send-keys -t $SESSION "ssh ${SERVERS[$i]}" Enter
else
tmux split-window -t $SESSION
tmux select-layout -t $SESSION tiled
tmux send-keys -t $SESSION "ssh ${SERVERS[$i]}" Enter
fi
done
tmux set-window-option -t $SESSION synchronize-panes on
tmux attach -t $SESSION
Ce script ouvre une session tmux, crée un panneau par serveur, se connecte en SSH sur chacun, dispose les panneaux en grille, et active la synchronisation. Vous vous retrouvez face à 4 panneaux, tous connectés à leurs serveurs respectifs, attendant votre commande. Tapez une fois, ça s'exécute partout.
Indicateur visuel dans la barre de statut
Quand la synchronisation est active, un indicateur visible évite les accidents :
# ~/.tmux.conf
set -g status-right '#{?pane_synchronized,#[bg=red] SYNC ,}#[fg=colour233,bg=colour241,bold] %d/%m/%Y %H:%M '
Fond rouge dans la barre de statut quand la synchro est activée. Impossible à rater. Votre DBA vous remerciera.
Scripting de sessions - retrouver son environnement en une commande
Le vrai gain de productivité tmux, c'est de scripter son environnement de travail. Plutôt que de recréer manuellement votre layout à chaque fois - vim à gauche, logs en haut à droite, shell en bas à droite - un script le fait en une commande.
Script de session de développement
#!/bin/bash
# ~/scripts/dev-session.sh
SESSION="rudeops-dev"
PROJECT_DIR="$HOME/projets/rudeops"
# Ne pas créer si la session existe déjà
tmux has-session -t $SESSION 2>/dev/null
if [ $? == 0 ]; then
tmux attach -t $SESSION
exit
fi
# Créer la session avec la première fenêtre
tmux new-session -d -s $SESSION -n "editor" -c $PROJECT_DIR
# Fenêtre 1 : éditeur + shell
tmux send-keys -t $SESSION:editor "vim ." Enter
tmux split-window -t $SESSION:editor -h -c $PROJECT_DIR
tmux resize-pane -t $SESSION:editor -R 30
# Fenêtre 2 : logs
tmux new-window -t $SESSION -n "logs" -c $PROJECT_DIR
tmux split-window -t $SESSION:logs -v
tmux send-keys -t $SESSION:logs.0 "tail -f /var/log/nginx/access.log" Enter
tmux send-keys -t $SESSION:logs.1 "tail -f /var/log/app/production.log" Enter
# Fenêtre 3 : monitoring
tmux new-window -t $SESSION -n "monitoring"
tmux send-keys -t $SESSION:monitoring "htop" Enter
# Fenêtre 4 : git
tmux new-window -t $SESSION -n "git" -c $PROJECT_DIR
tmux send-keys -t $SESSION:git "git log --oneline --graph --decorate --all" Enter
# Revenir sur la première fenêtre
tmux select-window -t $SESSION:editor
tmux select-pane -t $SESSION:editor.0
tmux attach -t $SESSION
chmod +x ~/scripts/dev-session.sh
alias dev='~/scripts/dev-session.sh'
Maintenant dev dans votre terminal ouvre (ou rejoint) votre environnement de développement complet. Build qui tourne, logs qui défilent, vim prêt - en une commande.
Script de session de déploiement
#!/bin/bash
# ~/scripts/deploy-session.sh
ENV=${1:-staging}
SESSION="deploy-$ENV"
SERVERS_STAGING=("staging-01" "staging-02")
SERVERS_PROD=("prod-01" "prod-02" "prod-03" "prod-04")
if [ "$ENV" = "prod" ]; then
SERVERS=("${SERVERS_PROD[@]}")
else
SERVERS=("${SERVERS_STAGING[@]}")
fi
tmux has-session -t $SESSION 2>/dev/null && tmux attach -t $SESSION && exit
tmux new-session -d -s $SESSION -n "servers"
for i in "${!SERVERS[@]}"; do
if [ $i -eq 0 ]; then
tmux send-keys -t $SESSION "ssh ${SERVERS[$i]}" Enter
else
tmux split-window -t $SESSION -h
tmux select-layout -t $SESSION tiled
tmux send-keys -t $SESSION "ssh ${SERVERS[$i]}" Enter
fi
done
tmux new-window -t $SESSION -n "local"
tmux select-window -t $SESSION:servers
tmux attach -t $SESSION
deploy staging # ouvre la session staging
deploy prod # ouvre la session prod
Tmuxinator - pour ceux qui n'aiment pas les scripts bash
Si l'idée d'écrire des scripts bash pour configurer vos sessions vous semble trop artisanale, Tmuxinator fait la même chose via des fichiers YAML.
gem install tmuxinator
# ~/.config/tmuxinator/rudeops-dev.yml
name: rudeops-dev
root: ~/projets/rudeops
windows:
- editor:
layout: main-vertical
panes:
- vim .
- git status
- logs:
layout: even-vertical
panes:
- tail -f /var/log/nginx/access.log
- tail -f /var/log/app/production.log
- monitoring:
panes:
- htop
tmuxinator start rudeops-dev
tmuxinator stop rudeops-dev
tmuxinator list
Les plugins - TPM et l'essentiel
TPM (Tmux Plugin Manager) gère les plugins tmux comme Oh My Zsh gère les plugins zsh - en moins populaire mais en aussi utile.
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Dans ~/.tmux.conf :
# TPM
set -g @plugin 'tmux-plugins/tpm'
# Les plugins essentiels
set -g @plugin 'tmux-plugins/tmux-sensible' # defaults sensibles
set -g @plugin 'tmux-plugins/tmux-resurrect' # sauvegarder/restaurer les sessions
set -g @plugin 'tmux-plugins/tmux-continuum' # sauvegarde automatique
set -g @plugin 'tmux-plugins/tmux-yank' # copie vers le clipboard système
# Config des plugins
set -g @continuum-restore 'on'
set -g @resurrect-capture-pane-contents 'on'
# Initialiser TPM (toujours en dernier)
run '~/.tmux/plugins/tpm/tpm'
Recharger la config puis installer les plugins :
# Préfixe + r : recharger la config
# Préfixe + I : installer les plugins (I majuscule)
# Préfixe + U : mettre à jour les plugins
# Préfixe + alt+u : désinstaller les plugins non listés
tmux-resurrect - ne plus jamais recréer ses sessions après un reboot
# Sauvegarder la session courante : Préfixe + Ctrl+s
# Restaurer la dernière sauvegarde : Préfixe + Ctrl+r
tmux-resurrect sauvegarde vos sessions, fenêtres, panneaux, layouts, et même le contenu des panneaux si @resurrect-capture-pane-contents est activé. Après un reboot serveur, Préfixe + Ctrl+r et vous retrouvez votre environnement exactement comme vous l'avez laissé.
tmux-continuum - sauvegarde automatique
Sauvegarde automatique toutes les 15 minutes (configurable). Avec @continuum-restore 'on', tmux restaure automatiquement la dernière sauvegarde au démarrage. Vous ne pensez plus jamais à sauvegarder manuellement.
set -g @continuum-save-interval '15' # toutes les 15 minutes
La config finale complète
# ~/.tmux.conf
# Préfixe
unbind C-b
set-option -g prefix C-Space
bind-key C-Space send-prefix
# Recharger la config
bind r source-file ~/.tmux.conf \; display-message "Config rechargée"
# Découpage intuitif
unbind '"'
unbind %
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Navigation vim
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Redimensionnement
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
# Synchronisation de panneaux avec indicateur
bind S setw synchronize-panes \; display-message "synchronize-panes: #{?pane_synchronized,ON,OFF}"
# Souris
set -g mouse on
# Numérotation depuis 1
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
# Historique
set -g history-limit 50000
# Terminal
set -g default-terminal "screen-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
# Pas de délai Escape (vital pour vim)
set -sg escape-time 0
# Mode vi pour le copier-coller
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy" # macOS
# bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard" # Linux X11
# bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy" # Linux Wayland
# Barre de statut avec indicateur de synchronisation
set -g status-position bottom
set -g status-bg colour234
set -g status-fg colour137
set -g status-left '#[fg=colour233,bg=colour241,bold] #S '
set -g status-right '#{?pane_synchronized,#[bg=red] SYNC ,}#[fg=colour233,bg=colour241,bold] %d/%m/%Y %H:%M '
set -g status-right-length 50
set -g status-left-length 20
# Plugins TPM
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @continuum-restore 'on'
set -g @continuum-save-interval '15'
set -g @resurrect-capture-pane-contents 'on'
run '~/.tmux/plugins/tpm/tpm'
À retenir
| Commande | Pour quoi |
|---|---|
tmux new -s nom | Créer une session nommée |
tmux new-session -A -s main | Créer ou rejoindre |
tmux a -t nom | Rattacher une session |
tmux ls | Lister les sessions |
| Préfixe + d | Détacher la session |
| Préfixe + s | Liste interactive des sessions |
| Préfixe + z | Zoomer sur le panneau courant |
| Préfixe + S | Toggle synchronisation de panneaux |
| Préfixe + [ | Entrer en mode copie |
| Préfixe + Ctrl+s | Sauvegarder la session (resurrect) |
| Préfixe + Ctrl+r | Restaurer la session (resurrect) |
FAQ
tmux vs screen - lequel choisir en 2026 ?
tmux. Screen est installé partout par défaut sur les vieux systèmes, ce qui est sa seule qualité en 2026. Sa config est hostile, son développement est quasi à l'arrêt, et ses fonctionnalités s'arrêtent là où tmux commence. Si vous avez le choix - et vous l'avez - tmux.
Pourquoi mon copier-coller ne fonctionne pas dans tmux ?
Trois raisons possibles dans l'ordre de probabilité : vous n'avez pas configuré copy-pipe-and-cancel vers votre clipboard système, vous avez la souris activée et vous essayez de sélectionner avec la souris sans tenir Shift, ou vous êtes sur Linux et vous n'avez pas xclip/xsel/wl-copy installé. Suivez la section mode copie de ce guide dans l'ordre.
Ctrl+b vs Ctrl+a vs Ctrl+Space - lequel choisir ?
Ctrl+b si vous voulez garder les défauts et ne jamais expliquer votre config à personne. Ctrl+a si vous venez de Screen et avez les réflexes correspondants. Ctrl+Space si vous partez de zéro et voulez quelque chose de confortable sans conflit. Peu importe votre choix, vous vous demanderez dans six mois si vous auriez dû choisir autrement. C'est inévitable.
tmuxinator vs scripts bash - lequel choisir ?
Scripts bash si vous aimez comprendre exactement ce qui se passe et ne voulez pas de dépendance Ruby. Tmuxinator si vous préférez la lisibilité YAML et les commandes haut niveau. Les deux font le même travail - c'est une question de goût et de tolérance au YAML.
Est-ce que tmux fonctionne dans tmux ?
Oui, et c'est aussi perturbant que ça en a l'air. Votre préfixe devient Préfixe + Préfixe pour envoyer des commandes au tmux imbriqué. Ça arrive quand vous vous connectez en SSH sur un serveur qui a lui-même tmux. Gérable, mais évitez si vous pouvez.
Pour aller plus loin
- tmux cheatsheet - référence rapide de tous les raccourcis
- The Tao of tmux - le guide le plus complet, disponible en ligne gratuitement
- tmux-plugins - l'écosystème de plugins
man tmux- 6000 lignes. Aussi agréable à lire que les CGU de votre banque. Mais la réponse à votre question est dedans.