Die Veröffentlichung des Composite-Servers Niri 25.05, der die Methode der Kachelanordnung im Stil der GNOME-Erweiterung PaperWM implementiert, in der Fenster in einem endlos scrollbaren Streifen auf dem Bildschirm gruppiert werden. Das Öffnen eines neuen Fensters führt zur Erweiterung des Streifens, während zuvor hinzugefügte Fenster ihre Größe nicht ändern. Das Projekt basiert auf der Verwendung des Wayland-Protokolls, ermöglicht jedoch das Starten von X11-Anwendungen mithilfe des DDX-Servers Xwayland. Der Code des Projekts ist in Rust geschrieben und wird unter GPLv3 lizenziert. Pakete werden für Fedora, NixOS, Arch Linux und FreeBSD erstellt.
Ein wesentliches Unterscheidungsmerkmal von Niri im Vergleich zu PaperWM ist die Zuordnung jeder Monitor- zur eigenen Fensterleiste, die sich nicht mit den Leisten auf anderen Monitoren überschneidet (in PaperWM kann aufgrund der Bindung an globale Fensterkoordinaten im GNOME Shell keine separate Arbeit mit Monitoren realisiert werden). Niri unterstützt HiDPI und kann auf Systemen mit mehreren GPUs (zum Beispiel hybriden Systemen mit einer dedizierten Grafikkarte und integriertem GPU) betrieben werden. Es gibt eine integrierte Schnittstelle zum Erstellen von Screenshots und Aufzeichnen von Screencasts, deren Besonderheit darin besteht, dass bestimmte Fenster mit vertraulichen Informationen von der Aufnahme ausgeschlossen werden können.
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:
- Ein Übersichtsmodus zur Navigation durch die virtuellen Arbeitsbereiche und die darin geöffneten Fenster wurde hinzugefügt. Der Modus wird aktiviert, indem der Cursor in die obere linke Ecke bewegt oder durch Wischen mit vier Fingern auf dem Touchpad aktiviert wird, woraufhin der Maßstab verkleinert wird und ein Streifen der vorhandenen virtuellen Arbeitsbereiche und der darin geöffneten Fenster angezeigt wird. Fenster können mit der Maus oder durch Gesten auf dem Bildschirm umgruppiert oder zwischen den Arbeitsbereichen verschoben werden.

- Die Möglichkeiten zur Erstellung von Screencasts und zur gemeinsamen Bildschirmnutzung wurden erweitert. Die Möglichkeit zur dynamischen Auswahl des Objekts für die Aufnahme eines Screencasts wurde hinzugefügt – zunächst wird ein leerer Videostream erstellt, der auf die Erfassung des aktiven Fensters oder des gesamten Bildschirms auf dem aktuellen Monitor umgeschaltet werden kann. Die Unterstützung für die Aufnahme der Ausgabe von Vollbildanwendungen in Form eines virtuellen Fensters wurde implementiert.
- In die Benutzeroberfläche zur Erstellung von Screenshots wurde die Möglichkeit hinzugefügt, den Aufnahmebereich mit einem Grafiktablet oder einem Touchscreen auszuwählen. In die untere Leiste wurde eine separate Schaltfläche zur Erstellung eines Screenshots eingefügt.
- Die Möglichkeit zur Hervorhebung von Fenstern, die besondere Aufmerksamkeit erfordern, wurde hinzugefügt. Solche Fenster werden mit einem farbigen Rahmen hervorgehoben (die Farbe wird über die Einstellung urgent-color festgelegt) und haben einen separaten Indikator in der Leiste.
- Die Möglichkeiten der IPC-Schnittstelle, die zur Interaktion mit externen Systemen verwendet wird, wurden erweitert. ServerEs wurden Befehle hinzugefügt: „niri msg pick-window“ (gibt die ID des Fensters zurück, auf das der Benutzer geklickt hat) und „niri msg pick-color“ (gibt die Farbe des ausgewählten Pixels zurück).
- Aktionen mit Fenstern wurden hinzugefügt: focus-monitor, move-window-to-monitor, move-column-to-monitor, focus-column, move-column-to-index.
- Einstellungen für Eingabegeräte wurden hinzugefügt: Deaktivierung von tap-and-drag, Deaktivierung von Touchscreens, Änderung der Modifier-Taste, Auswahl der Ausrichtung des Touchpads, Aktivierung von Num Lock beim Start.
- Die Effizienz der Darstellung von Fenstern in Zwischen-Texturen (Offscreening), die einer zusätzlichen Verarbeitung (z. B. Schichteinblendung) vor der Anzeige auf dem Monitor unterzogen werden, wurde erhöht.
Quelle: opennet.ru

