Nach drei Monaten Entwicklung wurde die Veröffentlichung des Komposit-Servers Niri 25.11 bekannt gegeben, der die Methode des mosaikartigen (Tiling) Layouts im GNOME-Extension-Stil PaperWM implementiert. Dabei werden Fenster in einem endlos scrollbaren Band auf dem Bildschirm gruppiert. Das Öffnen eines neuen Fensters führt zu einer Erweiterung des Bandes, während die zuvor hinzugefügten Fenster ihre Größe nicht ändern. Das Projekt basiert auf der Verwendung des Wayland-Protokolls, ermöglicht jedoch das Ausführen von X11-Anwendungen über den DDX-Server Xwayland. Der Code des Projekts ist in der Programmiersprache Rust geschrieben und steht unter der Lizenz GPLv3. Die Pakete werden für Fedora, NixOS, Arch Linux und FreeBSD erstellt.
Ein grundlegender Unterschied zwischen Niri und PaperWM besteht darin, dass Niri jedem Monitor ein eigenes Fensterband zuweist, das sich nicht mit den Bändern anderer Monitore überschneidet (in PaperWM kann aufgrund der Bindung an globale Fensterkoordinaten im GNOME Shell keine separate Nutzung von Monitoren realisiert werden). Niri unterstützt HiDPI und kann auf Systemen mit mehreren GPUs (zum Beispiel hybriden Systemen mit einer dedizierten Grafikkarte und einer integrierten GPU) betrieben werden. Es gibt eine integrierte Schnittstelle zur Erstellung von Screenshots und zur Aufzeichnung von Screencasts, wobei es die Möglichkeit bietet, bestimmte Fenster mit vertraulichen Informationen auszuschließen..
Virtuelle Desktops in Niri werden dynamisch erstellt und ähnlich wie in GNOME vertikal angeordnet (die Fensterleiste dreht sich horizontal, während die Desktopleiste vertikal ist). Auf jedem Monitor kann eine unabhängige Sammlung angezeigt werden virtuellen Arbeitsplätzen. Für das Wechseln zwischen Arbeitsbereichen und Fenstern können Steuereingaben über das Touchpad verwendet werden. Beim Trennen des Monitors wird die Anordnung der virtuellen Arbeitsbereiche gespeichert und auf den verbleibenden Monitor übertragen, während sie beim Zurückkehren des Monitors in den ursprünglichen Zustand zurückgesetzt wird. Die Einstellungen werden über eine Konfigurationsdatei vorgenommen, die das Ändern von Parametern wie Rahmenbreite, Abständen, Ausgabemodi und Fenstergrößen ermöglicht. Änderungen in der Konfigurationsdatei werden automatisch ohne Neustart des Composite-Servers angewendet.

In der neuen Version:
- Eine Schnittstelle zum Wechseln zwischen Fenstern mit Alt+Tab wurde hinzugefügt, die während des Scrollens der Fenster Thumbnails anzeigt. Es ist möglich, Fenster an den aktuellen virtuellen Desktop (Taste „w“) oder das Ausgabegerät (Taste „o“) zu binden. Ebenfalls verfügbar ist die Tastenkombination Alt+»`« zum Wechseln zwischen den Fenstern der aktuellen Anwendung.

- Animationseffekte beim Wechsel eines Fensters in den Vollbildmodus und beim Verlassen wurden hinzugefügt.
- Vollständige Unterstützung für das Maximieren von Fenstern auf den gesamten Bildschirm wurde implementiert (früher wurde nur das Maximieren eines Fensters auf die volle Breite mit Erhaltung von Abständen und Rändern unterstützt, nun wird das Maximieren unterstützt, das den gesamten verfügbaren Bereich einnimmt, ohne Ränder anzuzeigen). Das Maximieren erfolgt durch Drücken der entsprechenden Taste im oberen Bereich des Fensters oder durch einen Doppelklick mit der Maus auf die Titelleiste.

- Die Möglichkeit zur Generierung von Scrollereignissen beim horizontalen Ziehen der Titelleiste eines Fensters im mosaikartigen Layout wurde hinzugefügt (vertikales Ziehen führt zum Verschieben des Fensters, während horizontales Ziehen das Scrollen von Informationen im Fenster zur Folge hat).
- Es wurde die Möglichkeit bereitgestellt, separate Fensterkonfigurationen zu definieren, die an ein bestimmtes Ausgabegerät (Monitor) oder einen virtuellen Desktop gebunden sind.
- In Konfigurationsdateien wurde die Direktive „include“ zur Einfügung von Inhalten anderer Dateien implementiert.
- Unterstützung für externe Monitore, die über den DisplayLink-Port angeschlossen sind, wurde hinzugefügt.
- Änderungen wurden vorgenommen, um das Flimmern des Bildschirms zu reduzieren.
- Unterstützung für benutzerdefinierte Video-Modi für Ausgabegeräte hinzugefügt, die nicht durch EDID übertragene Modi eingeschränkt sind. Zum Beispiel: 'mode custom=true «1920×1080@100″'.
- Unterstützung für den Start einer Fenstersitzung niri in WSL (Windows Subsystem for Linux) hinzugefügt.
Quelle: opennet.ru


