Nach drei Monaten Entwicklung wurde die Version des Composite-Servers Niri 25.11 veröffentlicht, die die Methode der mosaikartigen (tiling) Komposition im Stil der GNOME-Erweiterung PaperWM implementiert, bei der Fenster in einem unendlich scrollbaren Band auf dem Bildschirm gruppiert werden. Das Öffnen eines neuen Fensters führt zur Erweiterung des Bands, während zuvor hinzugefügte Fenster ihre Größe nicht ändern. Das Projekt basiert auf dem Einsatz des Wayland-Protokolls, ermöglicht jedoch die Ausführung von X11-Anwendungen über den DDX-Server Xwayland. Der Code des Projekts ist in Rust geschrieben und wird unter der GPLv3-Lizenz verbreitet. Pakete werden für Fedora, NixOS, Arch Linux und FreeBSD erstellt.
Ein grundlegender Unterschied zwischen Niri und PaperWM besteht darin, dass Niri jedes Display mit einem eigenen Fenster-Stream verknüpft, der nicht mit den Streams auf anderen Displays überlappt (in PaperWM kann aufgrund der Bindung an globale Fensterkoordinaten in GNOME Shell keine separate Arbeit mit Displays realisiert werden). Niri unterstützt HiDPI und kann auf Systemen mit mehreren GPUs (zum Beispiel hybriden Systemen mit dedizierter Grafikkarte und integrierter GPU) betrieben werden. Es gibt eine integrierte Schnittstelle zur Erstellung von Screenshots und zur Aufnahme von Screencasts, deren Besonderheit es ist, dass einzelne Fenster mit vertraulichen Informationen von der Aufnahme ausgeschlossen werden können..
Virtuelle Desktops in Niri werden dynamisch erstellt und ähneln der Anordnung in GNOME, wobei sie vertikal angeordnet sind (der Fensterstreifen rotiert horizontal, während der Streifen der Desktops vertikal ist). Auf jedem Monitor kann ein unabhängiger Satz angezeigt werden. virtuellen Arbeitsflächen. Zum Wechseln zwischen Desktops und Fenstern können die Steuergesten auf dem Touchpad verwendet werden. Wenn der Monitor getrennt wird, wird das Layout der virtuellen Desktops gespeichert und auf den verbleibenden Monitor übertragen. Bei Rückkehr des Monitors wird der ursprüngliche Zustand wiederhergestellt. Die Einstellungen erfolgen über eine Konfigurationsdatei, die es ermöglicht, Parameter wie Rahmenbreite, Abstände, Ausgabemodi und Fenstergrößen zu ändern. Änderungen in der Konfigurationsdatei werden automatisch ohne einen 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 Miniaturansichten anzeigt. Es ist möglich, Fenster in Verbindung mit dem aktuellen virtuellen Desktop (Taste „w“) oder dem Ausgabegerät (Taste „o“) anzuzeigen. Außerdem steht die Tastenkombination Alt+„`“ zum Wechseln zwischen Fenstern der aktuellen Anwendung zur Verfügung.

- Animationsübergänge für den Wechsel in den Vollbildmodus und wieder hinaus wurden hinzugefügt.
- Es wurde eine umfassende Unterstützung für die Vollbildansicht implementiert (früher wurde nur die Fensterbreitenanpassung bei gleichzeitiger Beibehaltung von Abständen und Rahmen unterstützt, jetzt wird die Anzeige des gesamten verfügbaren Bereichs ohne Rahmen gezeigt). Die Maximierung erfolgt durch Klicken auf die entsprechende Schaltfläche oben im Fenster oder durch Doppelklicken auf den Titel.

- Die Möglichkeit zur Generierung von Scrollereignissen wurde hinzugefügt, wenn der Titel des Fensters in der Mosaikansicht horizontal gezogen wird (vertikales Ziehen führt zu einer Fensterbewegung, während horizontales Ziehen zu einem Scrollen der Informationen im Fenster führt).
- Es wurde die Möglichkeit bereitgestellt, einzelne Fensterlayoutkonfigurationen zu definieren, die an ein bestimmtes Ausgabegerät (Monitor) oder einen virtuellen Desktop gebunden sind.
- In den Konfigurationsdateien wurde die Direktive „include“ für das Einfügen des Inhalts anderer Dateien realisiert.
- Die Unterstützung für externe Monitore, die über den DisplayLink-Anschluss verbunden sind, wurde hinzugefügt.
- Änderungen wurden vorgenommen, um das Flimmern des Bildschirms zu verringern.
- Die Unterstützung für die Festlegung eigener Video-Modi für Ausgabegeräte wurde hinzugefügt, die nicht auf durch EDID übertragene Modi beschränkt sind. Zum Beispiel: 'mode custom=true «1920×1080@100″'.
- Die Unterstützung für den Start einer Fenstersitzung von niri in WSL (Windows Subsystem for Linux) wurde hinzugefügt.
Quelle: opennet.ru


