Die erste Version des Komposit-Servers Niri wurde veröffentlicht. Das Projekt wurde inspiriert durch die GNOME-Erweiterung PaperWM und implementiert eine mosaikartige (tiling) Anordnung, bei der Fenster in einem endlos scrollbaren Band auf dem Bildschirm gruppiert werden. Das Öffnen eines neuen Fensters erweitert das Band, und zuvor hinzugefügte Fenster ändern nie ihre Größe. Der Code des Projekts ist in Rust geschrieben und wird unter der GPLv3-Lizenz verbreitet. Pakete sind für Fedora, NixOS, Arch Linux und FreeBSD zusammengestellt.

Ein Grund für die Schaffung eines separaten Komposit-Managers ist die Unmöglichkeit, in PaperWM eine getrennte Arbeit mit Monitoren aufgrund der Besonderheiten von GNOME Shell (Bindung an globale Fensterkoordinaten) zu realisieren. Der wichtigste Unterschied von Niri zu PaperWM ist die Bindung an jedes Monitor mit seinem eigenen Fensterband, die sich nicht überschneiden. Niri unterstützt HiDPI und kann auf Systemen mit mehreren GPUs (z.B. hybriden Systemen mit einer dedizierten Grafikkarte und einem integrierten GPU) betrieben werden.
Virtuelle Desktops in Niri werden dynamisch erstellt (wie in GNOME) und vertikal angeordnet (das Fensterband dreht sich horizontal, während das Band der Arbeitsflächen vertikal ist). Auf jedem Monitor kann ein unabhängiger Satz angezeigt werden. virtuellen Arbeitsplätzen. Um zwischen den Desktops zu wechseln, können Steuerungsbewegungen auf dem Touchpad verwendet werden. Wenn ein Monitor getrennt wird, wird das Layout der virtuellen Desktops gespeichert und auf den verbleibenden Monitor übertragen, und bei Wiederanschluss des Monitors wird es in den ursprünglichen Zustand zurückversetzt.
Es gibt eine integrierte Schnittstelle zur Erstellung von Screenshots und zur Aufnahme von Screencasts (der Zugriff erfolgt über xdg-desktop-portal-gnome). Für das Starten von X11-Anwendungen gibt es die Möglichkeit, den DDX-Server Xwayland zu nutzen. Die Konfiguration erfolgt über eine Konfigurationsdatei, die es ermöglicht, grundlegende Umgebungsparameter wie Rahmenbreiten, Abstände, Ausgabemodi und Fenstergrößen zu ändern. Änderungen der Konfiguration werden im laufenden Betrieb ohne Neustart des Kompositors angewendet. Server.



Quelle: opennet.ru
