Vue normale

Aujourd’hui — 4 avril 2025Flux principal

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.

Sommaire

Hall of fame

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 ! »

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 :

MasterLayout

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

Sources 1 et 2

  • multi-écran possible
  • définition des raccourcis et des règles.

Commentaires : voir le flux Atom ouvrir dans le navigateur

À partir d’avant-hierFlux principal

Cloonix version 46

Cloonix est un outil d’aide à la construction de réseau virtuel, sous AGPLV3 (inclus qemu-kvm, openvswitch, spice, crun et wireshark).

C'est pensé comme Docker, dont le succès provient de l'absence de tracasseries au moment de l'empaquetage, en mettant bibliothèques et binaires dans un espace de nommage (namespace). Docker est un produit de grande qualité mais il n'y a pas que sa méthode. Cloonix utilise les mêmes principes de namespace, sans infrastructure d'accueil pour faire tourner les conteneurs. Notez qu'un logiciel qui s'installe puis tourne avec les droits limités d'un utilisateur normal est la meilleure façon de décourager un pirate. Donc, pour essayer Cloonix 46, un fichier auto-extractible sans dépendance à la distribution qui l'héberge vous attend ! Téléchargez, cliquez…

Cloonix est un outil pour étudier les réseaux. Il permet de faire des scripts de scénarios avec plusieurs machines connectées, les machines étant soit des vraies machines virtuelles tournant avec kvm, soit des conteneurs tournant avec crun. Cette maquette simplifiée de réseaux avec leur visualisation permet de transmettre des démonstrations réseaux entre utilisateurs. J'ai présenté Cloonix plus largement dans mes dépêches précedentes.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Atelier : Mieux comprendre l'impact du Cyber Resilience Act sur les pratiques Open Source !

ATELIER du lundi 31 mars de 11h30 à 13h30 à Paris (participation en ligne possible).

Titre de l'image

Etes-vous prêts pour les échéances de 2026 et 2027 du Cyber Resilience Act (CRA) ?

Le CRA est un dispositif adpoté par la Commission Européenne en 2024 pour répondre à la vulnérabilité accrue aux cyberattaques des entreprises et services publics européens,. Il vise à renforcer la cybersécurité et la cyberrésilience des produits logiciels (et matériels qui comportent des éléments numériques) connectés.

Le premier guide de conformité au CRA dédié aux acteurs de l’open source, proposé par le CNLL et inno³ a pour objectif de faciliter la compréhension du CRA et les effets attendus, et de proposer des recommandations concrètes.

N'attendez pas pour commencer à évaluer vos obligations nouvelles à venir et les adaptations nécéssaires de vos processus, rejoignez l'atelier du 31 mars !

📅 Quand ? Le 31 mars de 11h30 à 13h30, la rencontre sera suivie d'un buffet pour les personnes sur place.

📍 Où ? 137 Boulevard de Magenta 75010 Paris (nombre de places limité, participation en ligne possible).

L'objectif est de rendre la session de discussion la plus active possible, n'hésitez pas à lire d'un œil critique et intéressé le guide en amont. Vous pouvez même nous envoyer dès aujourd'hui vos diverses questions ou remarques afin de nous aider à préparer l'atelier : mission-cra-cnll@framagroupes.org.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Première publication libre de Multigit

Multigit est un outil graphique conçu pour simplifier la gestion de projets composés de beaucoup de dépôts git.

Une image et une vidéo valant mieux qu'un long discours, voici à quoi ça ressemble:

Screenshot

Je l'ai développé dans le cadre de mon travail chez IDEMIA où nous sommes souvent confrontés à plus de trente (voire plus de soixante) dépôts à gérer conjointement sur un projet. Dans ce contexte, la moindre opération git devient un mini-défi qu'il fallait relever quotidiennement.

Multigit est abouti et stable, il est utilisé au quotidien par plus d'une centaine de personnes (sous Windows), depuis plusieurs années. Mon employeur m'a aimablement autorisé à le publier en Open Source, ce dont je lui sais gré. Il est publié sous licence Apache 2.0

La problématique de gestion de plusieurs dépôts git conjoints pour un projet est assez peu répandue dans le monde du logiciel libre. Mais beaucoup plus dans le monde de l'entreprise. En effet, git ne gère pas la notion de droit d'accès à une partie d'un dépôt. La seule façon de restreindre l'accès à certains parties d'un projet est donc de créer un dépôt spécifique pour les y stocker, avec des droits d'accès au niveau du dépôt. Ajoutons à cela beaucoup de personnes, beaucoup de projets parfois complexes, beaucoup de sous-projets, beaucoup d'historique et on se retrouve avec une gestion des sources particulièrement complexe. Complexe … avant l'arrivée de Multigit en tout cas.

Installation

Sous Linux, la seule option d'installation disponible à l'heure actuelle est Python + pip, ou encore mieux avec pipx:

    $ sudo apt install python-pipx
    $ pipx install multigit_gx
    $ multigit

Sous Windows, un installeur graphique click-and-play vous permettra d'arriver au même résultat.

J'ai bien tenté de fournir un snap pour Linux mais snap est conçu pour empêcher à peu près tout ce que veut faire Multigit: accèder à tous vos fichiers et lancer des programmes de votre distribution (git, gitk, …)

Je ferai mieux dans la prochaine version. D'ailleurs, si vous avez des recommandations pour un packaging moderne, simple, facile à maintenir et couvrant toutes les distributions Linux, je suis preneur.

Contribution

Le projet est géré sous GitHub, les contributions ou les retours sont les bienvenus.

Commentaires : voir le flux Atom ouvrir dans le navigateur

[Communiqué du CNLL] Cyber Resilience Act : êtes-vous prêts pour les échéances de 2026 et 2027 ?

Le CNLL, Union des Entreprises du Logiciel Libre et du Numérique Ouvert, est l’instance représentative de la filière du logiciel libre en France, et inno³ un cabinet de conseil spécialiste des modèles ouverts. Ils proposent le premier guide de conformité au CRA dédié aux acteurs de l’open source, destiné à accompagner sans attendre les acteurs dans la mise en conformité de leurs activités en décryptant les obligations nouvelles et adaptations nécessaires de processus. Il est publié sous licence Creative Commons By-SA 4.0.

Guide CNLL / inno³ sur le CRA

Pourquoi est-il nécessaire d'anticiper ?

Adopté formellement par l'UE en 2024, le CRA vise à renforcer la cybersécurité des produits logiciels (et matériels qui comportent des éléments numériques) pour répondre à la vulnérabilité accrue aux cyberattaques des entreprises et services publics européens. Les acteurs ont jusqu’au 10 septembre 2026 pour se mettre en conformité avec certaines obligations critiques (notification des vulnérabilités activement exploitées et des incidents graves) et jusqu’au 10 décembre 2027 pour s’adapter à l’ensemble des autres exigences du texte telles que la sécurité par principe ou la transparence vis-à-vis des consommateurs.

Un guide pratique pour vous accompagner

Le guide répond à un objectif de sensibilisation des membres du CNLL et plus largement des acteurs de la filière du logiciel libre (producteurs, intégrateurs et utilisateurs) aux enjeux et défis du CRA. À l’aide de mises en situation à partir d’exemples d’entreprises membres du CNLL, le guide propose une vision détaillée des modalités d’application et obligations nouvelles : documentation technique détaillée, gestion rigoureuse des vulnérabilités, déclaration de conformité et apposition du marquage CE, production d’une Software Bill of Materials (SBOM), etc.

Transformons ensemble cette contrainte réglementaire en opportunité d'amélioration de la sécurité, la qualité et la confiance pour nos produits et services !

👉 Explorez le guide dès aujourd'hui et contribuez à sa prochaine version en partageant vos commentaires ou en rejoignant le groupe de travail.

👉 Participez à la réunion de présentation en ligne qui aura lieu prochainement (informations à venir sur le site : cnll.fr).

Commentaires : voir le flux Atom ouvrir dans le navigateur

❌
❌