Présentation
La version 0.28 du gestionnaire de fenêtres Enlightenment, publiée par Carsten Haitzler, poursuit la double compatibilité X11/Wayland tout en introduisant le premier support officiel de NetBSD. Cette inclusion élargit la portée du projet au-delà des systèmes Linux habituels, imposant une adaptation du code base aux appels système BSD et aux différences de gestion du serveur d’affichage.
Intégration réseau et support système
Enlightenment 0.28 embarque un module dédié à NetworkManager, permettant la configuration automatisée des interfaces filaires, sans fil et des tunnels VPN. Le module s’appuie sur l’API D‑Bus de NetworkManager, ce qui évite la duplication de logique de gestion d’état réseau au sein d’Enlightenment. Cette approche réduit la surface d’erreur en déléguant la résolution d’authentification WPA/WPA2 et la négociation IP à NetworkManager, tout en conservant une interface utilisateur native dans le composant e_intl. Le support initial de NetBSD implique la prise en charge du système de sockets BSD, du gestionnaire de paquets pkgsrc et de la couche d’abstraction d’affichage libX11 adaptée aux ports NetBSD, ce qui nécessite des tests de compatibilité supplémentaires pour les extensions X11 spécifiques.
Gestion audio et multimédia
Le nouveau moteur audio introduit le support natif de PipeWire tout en maintenant la compatibilité avec PulseAudio. En pratique, Enlightenment crée un pw-node dédié lorsqu’un serveur PipeWire est détecté, ce qui permet la gestion du routage audio, du partage d’applications et de la latence réduite grâce au modèle de graphes de traitement de PipeWire. La coexistence avec PulseAudio repose sur le module pipewire-pulse, qui expose une interface PulseAudio virtuelle, garantissant que les applications anciennes continuent de fonctionner sans modification. Parmi les améliorations audio, on note une meilleure synchronisation des flux multimédias et la prise en charge de nouveaux formats de codecs via les bibliothèques GStreamer mises à jour.
Améliorations d'affichage et de rendu
Sur le plan visuel, la version 0.28 propose plusieurs optimisations : de nouvelles actions de fenêtre (minimisation, maximisation, basculement) sont exposées via le gestionnaire d’événements E_Comp, facilitant la personnalisation via les scripts E‑config. Le traitement des décorations côté client (CSD) a été revu pour réduire le nombre de redraws, ce qui diminue la charge GPU sur les environnements Wayland. Le tri des modes d’affichage a été réécrit pour prioriser les résolutions natives, améliorant la sélection automatique lors de la connexion à des écrans externes. Le filtrage du rétroéclairage a été affiné grâce à un algorithme de lissage temporel, limitant les variations brusques de luminosité. Au niveau du rendu bas‑niveau, la gestion des pixmaps a été optimisée par la mise en cache des surfaces partagées, réduisant les appels XCopyArea sous X11. Enfin, le mécanisme de récupération de connexion X et l’arrêt ordonné des compositors Wayland imbriqués (nested) ont été renforcés, limitant les plantages lors de la perte de connexion au serveur X ou du redémarrage du sous‑compositeur.