17 points par GN⁺ 2025-08-04 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • L’auteur a utilisé tmux pendant longtemps, mais a récemment commencé à douter de sa complexité et de ses limites (compatibilité des couleurs, scrollback, copie à la souris, absence de prise en charge de certains protocoles, etc.)
  • Les fonctions clés de tmux, comme la persistance de session (detach/attach) ou le fractionnement et la gestion des fenêtres, ne nécessitent pas forcément tmux
  • En s’appuyant sur des outils légers fidèles à la philosophie Unix, comme dtach, abduco, shpool, on peut se concentrer uniquement sur la gestion de session tout en conservant un scrollback natif et davantage de simplicité
  • En particulier, la combinaison shpool + ssh permet de gérer directement plusieurs sessions distantes avec le gestionnaire de fenêtres, tout en continuant à utiliser les fonctions natives (notifications, défilement, titres, etc.)
  • Ce n’est pas parfait, mais selon l’auteur cela a permis de remplacer complètement tmux, avec à la clé un workflow plus simple et plus facile à maintenir

Avantages et limites de tmux

  • La persistance de session (detach/attach) et la gestion des fenêtres (onglets, splits) constituaient le cœur du workflow fourni jusque-là par tmux
  • Mais sans configuration correcte de TERM, des problèmes de rendu des couleurs apparaissent, et il faut aussi tenir compte des interactions entre le terminal et tmux, ce qui augmente la complexité
  • L’utilisation du tampon de défilement impose aussi d’apprendre le fonctionnement propre à tmux, et la copie de zones à la souris était peu pratique dans un environnement avec splits
  • La prise en charge de nouvelles fonctions de terminal comme le kitty graphics protocol est insuffisante, et certains protocoles expérimentaux ne sont pas pris en charge
  • Certains critiquent aussi le fait que, en réinterprétant à nouveau les escape codes et en ajoutant ses propres concepts de session et de fenêtre, un multiplexeur freine l’évolution de l’écosystème des terminaux

Explorer des alternatives à tmux

  • Persistance de session :
    • Des solutions simples comme ctrl-z + fg, nohup, disown existent, mais elles remplacent difficilement complètement tmux
    • Plusieurs outils conçus pour uniquement préserver la session sont apparus (dtach, abduco, shpool)
      • Ils s’appuient sur une combinaison de fork() et de sockets UNIX pour relier daemon et client
      • Contrairement à tmux, sans split virtuel, ils permettent un scrollback natif et offrent parfois une restauration du tampon
    • D’après l’expérience de l’auteur, la plupart de ces outils alternatifs manquent de maturité, avec des bugs ou des raccourcis de détachement qui ne fonctionnent pas dans nvim
    • Seul shpool lui a semblé suffisamment abouti, notamment sur les commandes detach/attach et la personnalisation des raccourcis clavier
  • Gestion des fenêtres :
    • En local, le fractionnement et l’agencement sont gérés par le gestionnaire de fenêtres
    • Même à distance (en SSH), la combinaison de ssh_config et shpool permet de conserver plusieurs sessions indépendantes dans des fenêtres séparées
    • Associé à autossh, cela permet de conserver les sessions même lors des reconnexions réseau

Nouveau workflow

  • L’auteur utilise personnellement ghostty (sur son portable) et sway+foot (sur son PC personnel) pour la gestion des fenêtres. Les serveurs tournent sur des VM headless basées sur Proxmox, avec un environnement de développement toujours accessible en SSH
  • Plusieurs sessions shpool sont connectées automatiquement via des raccourcis ssh, puis contrôlées indépendamment par le gestionnaire de fenêtres local
    • Dans ssh_config, l’attachement à une session shpool est automatisé pour chaque hôte
    • Chaque terminal peut se connecter séparément à IRC, à la gestion des dotfiles, à un environnement neovim distinct, etc. pour des sessions multiples indépendantes
  • Le défilement natif, les notifications, les titres de terminal et d’autres fonctions que tmux gérait de manière instable fonctionnent au contraire plus naturellement
  • Il y a aussi des inconvénients : délai de restauration de l’état du terminal lors de la reconnexion à vim, et problèmes de redimensionnement avec nvim
    • Pas de prise en charge multi-utilisateur/multi-client (conflit de session si plusieurs clients lancent autossh en même temps)
  • Mais, selon les critères de l’auteur, le remplacement complet de tmux est réussi

Conclusion

  • Ce n’est pas exactement identique, mais il est possible de passer à un workflow de gestion de session plus simple et plus flexible, libéré de la complexité et des limites de tmux
  • Selon votre workflow, des outils alternatifs comme shpool peuvent valoir le détour

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.