Hyprland, un compositeur Wayland «âŻtilingâŻÂ»
Hyprland est un compositeur Wayland pavant (tiling) crĂ©Ă© par Vaxri et placĂ© sous licence BSD 3-Clause. Si vous nâavez aucune idĂ©e de ce que cela signifie, un compositeur inclut des fonctionnalitĂ©s de gestion de fenĂȘtres. Dâautres compositeurs Wayland incluent GNOME, KDE et ceux basĂ©s sur wlroots.
Plus de dĂ©tails dans la suite de la dĂ©pĂȘche.
- lien ná” 1 : Journal Ă lâorigine de la dĂ©pĂȘche
- lien ná” 2 : Hyprland.org
- lien ná” 3 : Le site de Vaxry
- lien ná” 4 : Les codes sources d'Hyprland (miroir Forgejo)
- lien ná” 5 : Les codes sources d'Hyprland (Github)
Sommaire
- Gestion des fenĂȘtres
- Configuration, doc, outils
- Aspects techniques, conclusion
- Conclusion
- Commentaires du journal
Avant Hyprland, Vaxri avait crĂ©Ă© Hypr, qui fonctionnait sous Xorg et utilisait XCB, tout en adoptant une philosophie similaire en matiĂšre de gestion des fenĂȘtres. Revenons Ă Hyprland : câest un « compositeur moderne avec du style » pour traduire leur formulation. La derniĂšre version est la v0.47.2 (une mise Ă jour mineure), la v0.47 datant de janvier 2025. Il existe des paquets officiels pour Arch et NixOS, mais le site fournit des instructions pour lâinstaller ailleurs. Je lâai testĂ© sur Arch, jâai voulu me faire une idĂ©e et jâai trouvĂ© que ça valait le coup de partager lâexpĂ©rience (NdM: «âŻJe » est lâauteur du journal, saltimbanque).
Notez que Hyprland est principalement un compositeur avec des fonctionnalitĂ©s de gestion des fenĂȘtres, mais pas un environnement de bureau complet. Plus de dĂ©tails sur ça plus tard.
DâaprĂšs le site officiel : « Hyprland fournit les derniĂšres fonctionnalitĂ©s de Wayland, un tiling dynamique, de nombreux effets visuels, des plugins puissants et bien plus, tout en restant lĂ©ger et rĂ©actif ». Sans surprise, son crĂ©ateur apprĂ©cie tout ce qui touche Ă lâesthĂ©tique graphique.
Ah, lâapparenceâŻ!⊠a probablement beaucoup contribuĂ© Ă faire connaĂźtre Hyprland. DâaprĂšs les sondages du crĂ©ateur, r/unixporn a Ă©tĂ© lâun des principaux vecteurs de sa popularitĂ©. Jâaime aussi, dans une certaine mesure, les effets visuels et jâapprĂ©cie lâeffort fait en ce sens : de beaux espacements, des bordures, des animations. Nous avons tous jouĂ© avec Compiz quelques minutes⊠avant de le jeter Ă la poubelle car ça ne sert Ă rien. Heureusement, Hyprland ne se limite pas Ă lâesthĂ©tique et lorsque nous travaillons quotidiennement sur un ordinateur, nous pouvons apprĂ©cier son autre atout : la configurabilitĂ©. Vous pouvez utiliser plusieurs fichiers de configuration ou un seul, mais tout passe par fichier texte.
Petit dĂ©tail : modifiez le fichier texte de config, enregistrez-le et votre configuration se recharge automatiquement Ă chaud. Simple dĂ©tail, mais agrĂ©able. Si vous faites une erreur de syntaxe, un bandeau apparaĂźtra et affichera les erreurs qui empĂȘchent le rechargement. Il vous suffira alors de corriger et de sauvegarder Ă nouveau.
Gestion des fenĂȘtres
Pour comprendre la personnalisation, il faut dâabord comprendre les bases. Hyprland est un gestionnaire en mosaĂŻque. Par dĂ©faut, il utilise la mise en page (layout) âDwindleâ, qui Ă©tait dĂ©jĂ utilisĂ© par le gestionnaire de fenĂȘtres BSPWM. La description la plus courte de ce layout serait : « Pensez Fibonacci ! »
Bon appliquĂ© Ă des fenĂȘtres⊠voilĂ un extrait du README de BSPWM
a a a
/ \ / \ / \
1 b ---> 1 c ---> 1 d
/ \ / \ / \
2 3 4 b 5 c
^ ^ / \ ^ / \
3 2 b 4
/ \
3 2
+-----------------------+ +-----------------------+ +-----------------------+
| | | | | | | | |
| | 2 | | | 4 | | | 5 |
| | ^ | | | ^ | | | ^ |
| 1 |-----------| | 1 |-----------| | 1 |-----------|
| | | | | | | | | 3 | |
| | 3 | | | 3 | 2 | | |-----| 4 |
| | | | | | | | | 2 | |
+-----------------------+ +-----------------------+ +-----------------------+
X Y Z
Un autre layout standard est âMasterâ. Vous pouvez modifier votre fichier de configuration pour lâutiliser Ă la place ou mĂȘme assigner une touche pour basculer entre eux. Le layout Master fonctionne avec une fenĂȘtre occupant la moitiĂ© de lâĂ©cran, tandis que les autres sâempilent sur lâautre moitiĂ©. Vous pouvez Ă©galement changer la fenĂȘtre maĂźtresse.
Bon cette fois partageons les GIF enragés du wiki de Hyprland :
Hyprland offre aussi des fonctionnalitĂ©s de gestion des fenĂȘtres, communes aux diffĂ©rents layouts :
- plusieurs espaces de travail (avec placement manuel ou automatique des fenĂȘtres),
- un espace de travail spécial,
- un systĂšme de âgroupementâ, permettant de regrouper et dĂ©grouper des fenĂȘtres,
- mode plein Ă©cran,
- fenĂȘtres flottantes.
Hyprland propose aussi un systĂšme de plugins. Et devinez quoi, un plugin a Ă©tĂ© dĂ©veloppĂ© pour ajouter le layout de i3 (i3 Ă©tant un WM pavant sous Xorg, dont lâĂ©quivalent sous Wayland est Sway, qui est dĂ©v. par Drew DeVault). Ce plugin sâappelle hy3. Dans i3, il y a des conteneurs, en gros câest un layout « manuel avec des dĂ©coupages horizontaux/verticaux, trĂšs simple et efficace, et la doc i3 est trĂšs bien. Parce que la doc Sway, ce sont juste des man page, ok câest trĂšs bien aussi passons⊠Bref, voilĂ , maintenant jâai un compositeur i3 avec des gaps et de belles animations, vous vous souvenez de i3-gaps â qui a entre-temps Ă©tĂ© intĂ©grĂ© Ă i3âŻ? Bref, hy3 câest ça en mieux.
Configuration, doc, outils
Notez que dâautres plugins existent, pour les animations, pour changer des comportements. La communautĂ© pourrait ĂȘtre un bel axe de dĂ©veloppement maintenant que dâaprĂšs lâauteur le code se calme.
Ă un moment un gestionnaire de plugins a Ă©tĂ© ajoutĂ©, hyprpm (pm pour package manager je suppose). Alors jâai essayĂ© dâinstaller hy3 avec, mais jâai rencontrĂ© des soucis de versions me rappelant le bon vieux temps oĂč les dĂ©v. de plugins gnome-shell hurlaient comme des putois quand une nouvelle version sortait. Bon bref jâai compilĂ© hy3 Ă la main Ă la place, mais sortez cpp et une bonne tasse de cafĂ©, câest pas juste un script Emacs en Lisp qui prend 3 secondes. Mais au moins ça a bien marchĂ©.
Sinon la configuration permet de personnaliser le layout clavier, la rĂ©solution dâĂ©cran, lâesthĂ©tique et les animations. Beaucoup de possibilitĂ©s, par ex. pour les raccourcis on peut faire des âsubmapâ (oui je sais, i3 aussi). On peut modifier plein de choses sans redĂ©marrer.
On peut aussi utiliser la commande hyprctl pour communiquer avec hypr.
CĂŽtĂ© documentation, lâAPI technique est trĂšs bien couverte, mais il manque une documentation simplifiĂ©e pour une prise en main rapide. Et puis de base ne vous attendez pas Ă plein de raccourcis claviers prĂ©-configurĂ©s, vous allez devoir faire les vĂŽtres.
Ou alors vous pouvez aussi utiliser des configurations prĂ©existantes. On se croirait dans Doom EmacsâŻ!
Hyprland nâest pas un environnement de bureau complet. Il vous faudra un tableau de bord, un lanceur dâapplications et dâautres outils. Quelques options populairesâŻ:
- barre dâĂ©tat : Ashell (prĂȘt Ă lâemploi) ou Waybar (trĂšs personnalisable). A noter quâil y a maintenant des mini libs pour se faire ses barres facilement comme quickshell, astalâŻ;
- lanceur dâapplications : Wofi (simple, clavier + souris)âŻ;
- ou le fait dâutiliser un tiling peut mĂȘme vous donner envie de changer de terminalâŻ? Foot, Kitty, Alacritty, etc.
Mais Awesome Hyprland vous listera bien plus de choses.
Je nâai pas encore testĂ© ibus, et je sais que je vais rencontrer des soucis avec cela, comme jâen aurai sous Sway⊠(Pas trop envie de passer sous fcitx mais on verra)
Aspects techniques, conclusion
Au cours du dĂ©veloppement de Sway, Drew Devault a conçu une bibliothĂšque, wlroots, qui est devenue indĂ©pendante de Sway et utilisĂ©e par dâautres compositeurs wayland.
Hyprland a dĂ©marrĂ© en 2022. En 2024, la dĂ©pendance Ă wlroots, qui Ă©tait inclus sous forme de « submodule git », a Ă©tĂ© abandonnĂ©e au profit de Aquamarine, un moteur de rendu en C++. Lâabandon de wlroots, dâaprĂšs lâauteur, tient au fait que
- wlroots est en C,
- wlroots manque de doc,
- faire Ă©voluer wlroots prend du temps,
- et accessoirement parce quâil a Ă©tĂ© banniâŻ! (Bon lĂ dĂ©solĂ© je prĂ©fĂšre passer du temps sur la revue de Hyprland que sur les feux de lâamour, voyez ici).
Mais Aquamarine nâest pas un compĂ©titeur de wlroots.
Conclusion
Hyprland, comme dâautres, ça prend un max de temps Ă sâapproprier. Il faut lire et configurer Ă tout-va, mĂȘme si aprĂšs-coup on se rend compte que câĂ©tait simple. Ce qui lâest moins, câest de choisir sa maniĂšre de travailler.
Jâadore jouer avec les gestionnaires de fenĂȘtre en mosaĂŻque et Hyprland est une belle dĂ©couverte. Jâavais peur dâun simple ensemble dâanimations flashy, mais il offre bien plus que cela. Jâaimerais voir un tableau de bord style âActivitĂ©sâ de GNOME pour visualiser toutes les fenĂȘtres et espaces de travail en un coup dâĆil. Peut-ĂȘtre quâavec le temps, quelquâun dĂ©veloppera cette fonctionnalité⊠ou alors je finirai par coder un petit quelque chose moi-mĂȘme ! jâai dĂ©jĂ remarquĂ© que quelquâun a codĂ© « hot corner », surprenant pour un tiling!
Commentaires du journal
- multi-Ă©cran possible
- définition des raccourcis et des rÚgles.
Commentaires : voir le flux Atom ouvrir dans le navigateur