- Le fichier de configuration
~/.tmux.confpermet d’ajuster librement les raccourcis clavier, couleurs, barre d’état et comportement de la souris - Il est possible de remplacer la touche Prefix par défaut
C-bparC-aet de remapper Caps Lock en Ctrl pour gagner en efficacité de saisie - Le fractionnement des fenêtres peut se faire de manière plus intuitive avec
|et-au lieu de"et%, et la toucherpermet de recharger immédiatement le fichier de configuration - Alt + touches fléchées pour changer de panneau, activation du mode souris, désactivation du renommage automatique des fenêtres, etc. améliorent le confort d’utilisation
- Les éléments visuels comme les couleurs, la barre d’état, les messages et les bordures peuvent être finement personnalisés pour créer un thème cohérent
Concepts de base de la personnalisation de tmux
- Le fichier de configuration tmux s’appelle
tmux.confet, placé dans~/.tmux.confdans le répertoire personnel, il s’applique comme configuration utilisateur- Pour le partager entre plusieurs utilisateurs, il peut être placé dans un répertoire système global, dont l’emplacement varie selon le système d’exploitation
- L’emplacement exact peut être vérifié dans l’explication de l’option
-fdeman tmux
- En modifiant ce fichier, on peut changer librement les raccourcis clavier, couleurs, barre d’état, comportement de la souris, etc.
Une touche Prefix moins contraignante
- La touche Prefix par défaut
C-bpeut être remplacée parC-a, plus facile d’accèsC-apeut entrer en conflit avec la commande bash « aller au début de la ligne »- Si l’on remappe Caps Lock en Ctrl, il devient plus facile de saisir les combinaisons avec Prefix
- Exemple de configuration :
unbind C-b set-option -g prefix C-a bind-key C-a send-prefix C-a C-apermet de continuer à utiliser la commande bash d’origine
Des commandes de fractionnement plus intuitives
- Au lieu des touches de fractionnement par défaut
"et%, on utilise|et-, plus parlantes visuellement|est configuré pour un fractionnement horizontal,-pour un fractionnement vertical- Les raccourcis existants sont supprimés
bind | split-window -h bind - split-window -v unbind '"' unbind %
Rechargement rapide du fichier de configuration
- Si vous modifiez souvent
tmux.conf, vous pouvez le recharger immédiatement avec un raccourci- La touche
rest associée à la commande qui réapplique le fichier de configuration
bind r source-file ~/.tmux.conf - La touche
Changement rapide de panneau
- Alt (Meta) + touches fléchées permet de naviguer entre les panneaux sans utiliser Prefix
Alt-Left,Alt-Right,Alt-Up,Alt-Downpermettent chacun de se déplacer
bind -n M-Left select-pane -L bind -n M-Right select-pane -R bind -n M-Up select-pane -U bind -n M-Down select-pane -D
Activation du mode souris
- Il devient possible de sélectionner des fenêtres et redimensionner des panneaux à la souris
- L’usage centré sur le clavier reste le mode par défaut, mais cela est utile en collaboration
- Cela peut notamment servir souvent en pair programming
set -g mouse on
Désactiver le renommage automatique des fenêtres
- Empêche que les noms de fenêtres définis manuellement soient automatiquement écrasés lors de l’exécution d’une commande
set-option -g allow-rename off
Modifier l’apparence de tmux
- Les couleurs, la barre d’état, les messages, les bordures de panneau, etc. peuvent être ajustés avec précision
- La section
STYLESpermet de configurer de nombreux éléments visuels - En utilisant les couleurs de terminal par défaut (
red,yellow,black, etc.), le thème s’intègre naturellement - En mode 256 couleurs, on peut utiliser
colour0àcolour256
- La section
- L’exemple de configuration inclut notamment :
-
désactivation des alertes sonores**,** couleur de l’horloge en yellow**,** style du mode copie en fg=black bg=red bold
-
couleur des bordures de panneau en red**,** bordure du panneau actif en yellow
-
position de la barre d’état en bottom**,** espace vide à gauche**,** affichage de l’heure à droite
-
style de la fenêtre active en fg=black bg=red**,** style des fenêtres normales en fg=red bg=black
- style des messages en fg=yellow bg=red bold
- Ces réglages apportent une palette cohérente et une meilleure séparation visuelle
-
Ressources complémentaires
- Divers exemples de configuration tmux peuvent être consultés dans des dépôts GitHub
tmux.confoudotfiles- On peut aussi s’inspirer de
/r/dotfileset/r/unixpornsur Reddit
- On peut aussi s’inspirer de
- La configuration complète est publiée dans le dépôt GitHub dotfiles
- Pour aller plus loin, il est recommandé de consulter la page de man de tmux ainsi que la section Configuring tmux du wiki tmux
- Elles couvrent les fonctionnalités récentes et toutes les options détaillées
- Pour concevoir soi-même un thème de couleurs de terminal, on peut utiliser Root Loops(https://rootloops.sh/)
- Il permet de créer une palette de couleurs de terminal personnalisée
1 commentaires
Avis sur Hacker News
J’utilisais tmux avant, puis j’ai découvert Zellij et j’ai complètement migré dessus
La configuration des onglets et des panneaux est bien plus intuitive, et le défilement ainsi que la sélection de texte à la souris rendent le copier-coller facile
On ne peut pas faire de copie par clic droit sur un lien-bouton, et ce n’est pas idéal non plus côté accessibilité
Sur tmux, j’utilise cette fonction toutes les 1 à 2 minutes, mais les développeurs de Zellij disent de rediriger les données vers l’éditeur, ce qui n’est pas compatible avec le presse-papiers système
Du coup, je suis finalement revenu à tmux
Zellij fait environ 50 Mo alors que tmux tourne autour de 2 Mo, bibliothèques incluses, donc l’écart de taille est important
Zellij devenait de plus en plus lourd, ce qui le rendait pénible, et maintenant j’organise mes sessions avec tmuxp et je maintiens la connexion avec autossh, ce qui me satisfait bien davantage
Concernant les raccourcis clavier, ^a est la tradition de screen et ^b celle de tmux
Si on administre plusieurs systèmes, il est important de connaître le keymap par défaut
Dans ma config perso, je n’ai changé que les couleurs, l’arrière-plan du panneau actif, l’horloge avec horodatage et l’activation de la souris ; j’ai laissé les raccourcis tels quels
Une fois habitué, les valeurs par défaut sont en fait plus confortables
J’avais abandonné tmux pour Zellij parce que Shift+Enter ne marchait pas
Mais Zellij faisait planter les processus avec des crashs de type panic, donc je suis finalement revenu à tmux
La solution était
"bind-key -T root S-Enter send-keys C-j", trouvée dans ce ticket"bind -n S-Enter send-keys Escape '[13;2u'"pi.dev avertit qu’il n’y a pas de réglage extended-keys, mais ça fonctionne bien
Avec tmux, quand on tue le serveur, les processus descendants sont aussi nettoyés, ce qui était pratique
\ + EnterDécouvrir le Control Mode de tmux a complètement changé la donne pour moi
En lançant
tmux -CCdans iTerm2, les onglets, le défilement, le copier-coller et les raccourcis fonctionnent nativement côté terminalOn voit aussi visuellement tous les onglets, ce qui est particulièrement utile pour les débutants
Sur tmux, j’utilise Alt+chiffre pour changer rapidement de fenêtre
Par exemple :
bind-key -n M-1 select-window -t :1Alt-/ permet aussi d’ouvrir le mode de copie façon vi
Sous Wayland, on peut utiliser
wl-copy, ce qui permet de copier via un glisser de souris ou avec la toucheyJ’ai aussi ajouté un design style Powerline, mais il faut installer powerline-fonts
J’ai tellement personnalisé tmux que, quand je me connecte en ssh à un nouveau serveur, j’oublie comment utiliser la configuration par défaut
Maintenant, je l’utilise quasiment en mode standard. En revanche, je dois toujours changer le réglage du défilement à la souris
Il y a aussi The Lisp Curse comme concept lié
Par exemple, je garde Ctrl-b tel quel et j’ajoute Ctrl-space comme raccourci supplémentaire
Sur iTerm2, j’ai été impressionné par le Control Mode de tmux
Il permet de piloter des fenêtres de terminal distantes via le gestionnaire de fenêtres local
L’implémentation de cette fonctionnalité est aussi en cours dans ghostty, ce qui est prometteur
Beaucoup trouvent la touche de préfixe par défaut de tmux (C-b) peu naturelle, mais je pense au contraire que cette étrangeté est un avantage
On appuie dessus par erreur très rarement
Même les commandes de découpage me semblent intuitives —
%évoque une ligne horizontale et"une ligne verticaleJe rechargeais souvent la configuration au début, mais maintenant presque jamais
Si besoin, il suffit d’ajouter ceci dans
.tmux.conf: Comme ça, aucun souci de conflit si on ne l’utilise qu’en localJ’adore tmux, mais le piège, c’est qu’il faut un fichier de configuration de 400 lignes
Dans son état par défaut, il n’est pas très accueillant, mais une fois bien réglé, il devient vraiment excellent
On peut jeter un œil à mon fichier de config
Je n’ai eu besoin de mémoriser qu’environ 9 raccourcis
Je compte aussi ajouter une version PowerShell
J’ai simplement remis le binding du préfixe comme à l’origine
Il y a quelque temps, j’ai passé un week-end à lire “tmux 2: mouse-free productivity”, et c’est l’un des livres qui ont eu le plus grand impact sur ma productivité
L’édition récente continue d’être mise à jour → tmux 3: productive mouse-free development