Goodbye Niri and MangoWC, I'm Scrolling over to Herbstluftwm again

Un développeur a créé un fork personnalisé de herbstluftwm pour y intégrer un layout à défilement infini (scrolling layout) avec animations, inspiré des window managers Wayland niri et mango, afin de retrouver son environnement X11 préféré sans sacrifier ce workflow moderne.

Voir la source

SYNTHÈSE STRUCTURÉE

Retour à herbstluftwm après une période sur Wayland

L’intervenant explique qu’il a utilisé niri et mango pendant un certain temps, séduit par leur layout à défilement infini, mais qu’il a ressenti le besoin de revenir à herbstluftwm sur X11. Il déclare : « Herbstluft has been my favorite window manager for a long time, and I just really wanted to come back home to it. » Ce retour est motivé par une préférence personnelle pour l’écosystème X11 malgré les avantages de Wayland.

Implémentation du scrolling dans herbstluftwm

Pour combler le manque du scrolling layout, l’auteur a décidé de le coder directement dans son propre fork de herbstluftwm. Il montre comment lancer un terminal (fastfetch) puis Firefox via un menu, et constate que chaque nouvelle fenêtre « pousse » la précédente vers la gauche, créant un défilement horizontal infini. Il précise : « We have actually taken the scrolling feature that I loved so much on Niri and Mango and I have decided to start implementing it on my own custom fork of Herbstluft. »

Gestion des fenêtres : stacking, déplacement et redimensionnement

Le fork permet de superposer (stack) des fenêtres avec Mod+Shift+[ (pour empiler à gauche) ou Mod+Shift+] (à droite). Pour désempiler, on utilise Mod+e. Le déplacement d’une fenêtre d’un côté à l’autre se fait avec Mod+[ ou Mod+]. L’intervenant mentionne aussi la possibilité de redimensionner, bien que les raccourcis ne soient pas encore tous finalisés dans la vidéo.

Problème sur configuration multi-écrans

Sur un setup avec plusieurs moniteurs, le scrolling déborde sur l’écran adjacent au lieu de rester confiné à l’écran actif. L’auteur montre que les fenêtres défilent « derrière » les fenêtres déjà ouvertes sur l’autre moniteur, ce qui n’est pas souhaité. Il explique : « I got to fix the scrolling issue that overlap, the clipping when it actually goes on to instead of just disappearing when it goes off the end of the one screen, it’s actually scrolling into the frame on the other screen. » Sur un laptop avec un seul écran, le comportement est parfait.

Vue d’ensemble (overview) en mode grille

Une fonctionnalité similaire à l’overview de niri ou mango est implémentée : en pressant Mod+z, l’écran bascule en grille affichant toutes les fenêtres ouvertes sur le tag courant. On peut alors naviguer avec la tabulation (Alt+Tab implicite) et sélectionner une fenêtre, puis rappuyer sur Mod+z pour revenir en mode scrolling. L’auteur précise : « It’s just basically toggling you between grid view and scroll view, but it actually works pretty well the same. »

Animations intégrées au window manager

Contrairement à une approche où les animations seraient gérées par un compositeur externe (comme picom), les animations de défilement sont directement codées dans le fork de herbstluftwm. L’intervenant montre un défilement fluide et note : « All that is built into my custom version of Herbstluft. » Il précise que picom reste nécessaire pour les coins arrondis, la transparence et la lutte contre le screen tearing.

Projets futurs : alt-tab global et dépôt public

L’auteur souhaite ajouter un alt-tab qui liste toutes les fenêtres de tous les tags, et non seulement celles du tag actif. Il prévoit de publier le code sur un dépôt dès que la version sera stable : « I’m going to create a repo for it. I’m going to push it out there as long as I know it’s good and working. »

CONCEPTS CLÉS

  • Scrolling layout : Mode de gestion des fenêtres où elles s’alignent horizontalement (ou verticalement) et défilent comme une bande infinie, chaque nouvelle fenêtre poussant les précédentes. Popularisé par niri et mango sous Wayland.
  • Stacking : Action de superposer deux fenêtres dans le même espace de défilement, permettant de les grouper sans les placer côte à côte.
  • Tag : Terme utilisé par herbstluftwm pour désigner un espace de travail (workspace). Chaque tag peut contenir plusieurs fenêtres, et le scrolling s’applique à l’intérieur d’un tag.
  • Fork : Copie d’un projet open source modifiée de manière indépendante. Ici, l’auteur a cloné herbstluftwm et y a ajouté ses propres fonctionnalités.

CONCLUSION

Ce fork de herbstluftwm démontre qu’il est possible de marier la stabilité et la légèreté de X11 avec un workflow moderne de défilement infini, sans passer par Wayland. L’approche est technique (modification du code source du window manager) mais ouvre la voie à une personnalisation poussée pour les administrateurs qui tiennent à leur environnement X11 tout en voulant une expérience utilisateur fluide. Le message principal est que l’innovation n’est pas l’apanage des nouveaux protocoles : un développeur motivé peut adapter un outil ancien à ses besoins, à condition de maîtriser le code sous-jacent.

Du même canal

Tout voir