Après trois mois de développement, Niri 26.04, un serveur de composition, est disponible. Il implémente une méthode de disposition en mosaïque similaire à l'extension GNOME PaperWM, regroupant les fenêtres dans un ruban à défilement infini. L'ouverture d'une nouvelle fenêtre agrandit le ruban, tandis que les fenêtres précédemment ajoutées restent inchangées. Le projet repose sur le protocole Wayland, mais permet l'exécution d'applications X11 via le serveur Xwayland DDX. Le code est écrit en Rust et distribué sous licence GPLv3. Des paquets sont disponibles pour Fedora, NixOS et Arch. Linux et FreeBSD.
La différence fondamentale entre Niri et PaperWM est que chaque moniteur possède son propre ruban de fenêtres qui ne croise pas les rubans des autres moniteurs (dans PaperWM, un travail séparé avec les moniteurs ne peut pas être implémenté en raison de la liaison aux coordonnées globales des fenêtres dans GNOME Shell). Niri prend en charge HiDPI et peut fonctionner sur des systèmes dotés de plusieurs GPU (par exemple, des systèmes hybrides avec une carte graphique discrète et un GPU intégré). Il existe une interface intégrée pour prendre des captures d'écran et enregistrer des screencasts, dont la particularité est la possibilité d'exclure de l'enregistrement des fenêtres individuelles contenant des informations confidentielles.
Dans Niri, les bureaux virtuels sont créés dynamiquement et, comme dans GNOME, sont disposés verticalement (le ruban des fenêtres pivote horizontalement, tandis que celui du bureau pivote verticalement). Chaque moniteur peut afficher un ensemble indépendant de bureaux virtuelsVous pouvez utiliser les gestes du pavé tactile pour basculer entre les bureaux et les fenêtres. Lorsque vous déconnectez un moniteur, la disposition du bureau virtuel est mémorisée et transférée sur le moniteur restant. Lorsque vous reconnectez le moniteur, elle est restaurée à son état initial. La configuration s'effectue via un fichier de configuration, vous permettant de modifier des paramètres tels que la largeur du cadre, les retraits, les modes d'affichage et la taille des fenêtres. Les modifications apportées au fichier de configuration sont appliquées automatiquement, sans qu'il soit nécessaire de redémarrer l'écran composite. serveur.
Dans la nouvelle version:
- Il est désormais possible de flouter l'arrière-plan des fenêtres translucides. Les applications et les composants de l'environnement utilisateur peuvent contrôler la transparence grâce au protocole Wayland `ext-background-effect`. Pour les programmes ne prenant pas en charge ce protocole, la transparence peut être configurée via une liaison dans le fichier de configuration. La prise en charge native du flou d'arrière-plan est implémentée dans les shells Dank Material Shell et Noctalia, le lanceur Vicinae, les émulateurs de terminal foot, kitty et Ghostty, ainsi que les boîtes à outils Quickshell et winit. Deux modes de flou d'arrière-plan sont disponibles : « xray » (le flou est calculé une seule fois, puis une image statique prédéfinie est insérée) et « normal » (le flou est appliqué dynamiquement).

- L'option « optional=true » a été ajoutée à la directive « include » du fichier de configuration, qui permet de remplacer le contenu d'autres fichiers. Cette option permet de spécifier des composants de configuration optionnels. Si le fichier inclus est manquant, un avertissement s'affichera au lieu d'une erreur si l'option « optional=true » est présente. La possibilité d'utiliser le chemin « ~/ » associé au répertoire personnel a également été ajoutée à la configuration.
- Pour simplifier la navigation entre plusieurs fenêtres, à l'instar de Blender, le curseur se déplace désormais automatiquement d'un bord de l'écran à l'autre lors du défilement horizontal de la souris dans l'espace de travail.
- Lors de l'enregistrement de screencasts, les métadonnées du curseur sont désormais envoyées à PipeWire séparément du flux vidéo, permettant par exemple à OBS d'afficher le curseur indépendamment. Des commandes ont été ajoutées à l'IPC pour surveiller l'enregistrement du screencast, l'arrêter et recevoir les événements de début/fin d'enregistrement (afin d'afficher un indicateur dans le panneau).
- Amélioration des animations de défilement et d'ouverture/fermeture des fenêtres.
- Ajout de la possibilité d'annuler une opération de glisser-déposer en appuyant sur la touche Échap.
- Prise en charge améliorée des tablettes et des trackballs.
- Les fonctionnalités de profilage GPU ont été étendues grâce au package Tracy. Le suivi des performances de rendu et de flou a été ajouté. La prise en charge des systèmes graphiques hybrides (GPU intégré + carte graphique dédiée) a été implémentée.
- Des optimisations de rendu ont été mises en œuvre. La génération de la liste des objets affichés à l'écran a été accélérée de 2 à 3 fois sur les systèmes modernes et jusqu'à 8 fois sur les systèmes plus anciens.
Source: opennet.ru
