Après trois mois de développement, la version du serveur composite Niri 26.04 a été publiée, mettant en œuvre une méthode de disposition en mosaïque (tiling) dans le style de l'extension GNOME PaperWM, dans laquelle les fenêtres sont regroupées sur un ruban déroulant à l'écran. L'ouverture d'une nouvelle fenêtre entraîne l'extension du ruban, tandis que les fenêtres déjà ajoutées ne changent pas de taille. Le projet est basé sur l'utilisation du protocole Wayland, mais permet de lancer des applications X11 grâce au serveur DDX Xwayland. Le code du projet est écrit en Rust et est distribué sous la licence GPLv3. Des paquets sont formés pour Fedora, NixOS, Arch Linux et FreeBSD.
La principale différence entre Niri et PaperWM est l'attachement d'un ruban de fenêtres propre à chaque moniteur, qui ne se chevauche pas avec les rubans des autres moniteurs (dans PaperWM, le travail distinct avec les moniteurs ne peut pas être réalisé en raison de l'attachement aux coordonnées globales des fenêtres dans GNOME Shell). Niri prend en charge HiDPI et peut fonctionner sur des systèmes avec plusieurs GPU (par exemple, des systèmes hybrides avec une carte graphique discrète et un GPU intégré). Il dispose d'une interface intégrée pour créer des captures d'écran et enregistrer des screencasts, avec la particularité de pouvoir exclure l'enregistrement de certaines fenêtres contenant des informations confidentielles.
Les bureaux virtuels dans Niri sont créés dynamiquement et sont disposés verticalement, à l'instar de GNOME (la bande de fenêtres pivote horizontalement, tandis que la bande des bureaux l'est verticalement). Un ensemble indépendant de bureaux peut être affiché sur chaque moniteur des bureaux virtuels. Pour basculer entre les bureaux et les fenêtres, vous pouvez utiliser des gestes de contrôle sur le pavé tactile. Lorsque le moniteur est déconnecté, la disposition des bureaux virtuels est mémorisée et transférée au moniteur restant, et lors du retour du moniteur, elle est restaurée à son état initial. La configuration se fait via un fichier de configuration, permettant de modifier des paramètres tels que la largeur des bordures, les marges, les modes de sortie et les tailles des fenêtres. Les modifications apportées au fichier de configuration sont appliquées automatiquement sans redémarrage du compositeur. de serveurs.
Dans la nouvelle version :
- Ajout de la possibilité de flou en arrière-plan pour les fenêtres semi-transparentes. Les applications et les composants de l’environnement utilisateur peuvent gérer la transparence grâce au protocole Wayland ext-background-effect, tandis que pour les programmes ne prenant pas en charge ce protocole, la transparence peut être configurée via un lien dans le fichier de configuration. Le support intégré du flou en arrière-plan est réalisé dans les shells Dank Material Shell et Noctalia, le lanceur Vicinae, les émulateurs de terminal foot, kitty et Ghostty, et les kits d'outils Quickshell et winit. Deux modes de flou en arrière-plan sont disponibles : « xray » (le flou est calculé une fois et ensuite une image statique pré-rendue est fournie) et « normal » (le flou est effectué dynamiquement).

- Une option « optional=true » a été ajoutée à la directive de fichier de configuration « include », utilisée pour insérer le contenu d'autres fichiers, permettant de définir des composants de configuration facultatifs. Si le fichier inclus est manquant, l'option « optional=true » affichera un avertissement au lieu d'une erreur. À l'intérieur de la configuration, il est désormais possible d'utiliser le chemin « ~/ », associé au répertoire personnel.
- Pour simplifier la navigation entre plusieurs fenêtres, similaire à Blender, un saut automatique du curseur d'un bord de l'écran à l'autre lors du défilement horizontal de l'espace de travail a été mis en œuvre.
- Lors de l'enregistrement de screencasts, il est désormais possible de transmettre dans PipeWire les métadonnées du curseur séparément du flux vidéo, ce qui permet, par exemple, à OBS de dessiner le curseur de manière autonome. Des commandes ont été ajoutées à l'IPC pour suivre l'enregistrement du screencast, arrêter le screencast et recevoir des événements de début/fin d'enregistrement (pour afficher un indicateur dans la barre).
- L'animation de défilement et d'expansion/repli de fenêtres a été améliorée.
- La possibilité d'annuler l'opération de glisser-déposer en appuyant sur la touche Échap a été ajoutée.
- Amélioration de la prise en charge des tablettes et des trackballs.
- Les capacités de profilage GPU ont été étendues grâce au package Tracy. La possibilité de suivre les performances de rendu et les opérations de flou a été ajoutée. Prise en charge des systèmes avec des graphismes hybrides (GPU intégré + carte graphique discrète).
- L’optimisation du rendu a été effectuée. La construction de la liste des objets à dessiner à l’écran est accélérée de 2 à 3 fois sur les systèmes modernes et jusqu'à 8 fois sur les anciens.
Source : opennet.ru

