Sauvegarder les sessions tmux
Tmux
Tmux est un terminal multiplexer, particulièrement utile utilisé via ssh lorsque l’on accède à la même machine depuis plusieurs clients.
J’utilise tmux extensivement pour basculer de mon laptop à mon desktop facilement.
C’est aussi énormément pratique pour “ranger” ses shells selon différentes activités.
Bref, tmux c’est cool.
Le problème
By design, les sessions tmux ne survive pas au reboot. Comme je suis plutôt rigide dans mes habitudes, j’aimerai recréer mes sessions tmux dans l’était où je les ai laissé avant le reboot. Ce serait particulièrement utile maintenant que j’utilise tmux sur un laptop.
Tmux Plugin Manager
La première étape est d’installer Tmux Plugin Manager (tpm).
Les instructions sont dans le README, mais actuellement c’est tout simple:
Cloner TPM:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Ajouter à la fin de votre ~/tmux.conf
:
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin 'git@github.com:user/plugin'
# set -g @plugin 'git@bitbucket.com:user/plugin'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
Utilisation de tmux-resurrect et tmux-continuum
Dans notre ~/tmux.conf
, j’ai ajouté:
# Set Tmux plugin to resurrect every time workstation restarted (Ctrl+A Ctrl+S to Save / Ctrl+A Ctrl+R to Resurrect)
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'
# for neovim
set -g @resurrect-strategy-nvim 'session'
# Automatically restore tmux windows when tmux starts.
set -g @continuum-restore 'on'
# Don't auto-launch tmx at machine boot. Give me a chance to gcert first.
set -g @continuum-boot 'off'
# Preserves what was readable in each pane.
set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-strategy-vim 'session'
run-shell ~/.tmux/plugins/tmux-resurrect/resurrect.tmux
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
Installation des plugins
Dernière étape, sourcer la config et installer les plugins :
tmux source ~/.tmux.conf
Et enfin dans tmux prefix + I
pour lancer l’installation.