Opublikowano wydanie kompozytowego serwera Niri 25.05, implementującego metodę mozaikowego (tiling) układu w stylu rozszerzenia GNOME PaperWM, w którym okna grupowane są w nieskończoną taśmę przewijaną na ekranie. Otworzenie nowego okna prowadzi do rozszerzenia taśmy, a wcześniej dodane okna nie zmieniają swojego rozmiaru. Projekt oparty jest na protokole Wayland, ale umożliwia uruchamianie aplikacji X11 za pomocą serwera DDX Xwayland. Kod projektu napisany jest w języku Rust i rozpowszechniany na licencji GPLv3. Pakiety są tworzone dla Fedora, NixOS, Arch Linux i FreeBSD.
W podstawowej różnicy Niri od PaperWM jest przypisanie do każdego monitora własnej taśmy okien, która nie koliduje z taśmami na innych monitorach (w PaperWM oddzielna praca z monitorami nie może być zrealizowana z powodu powiązania z globalnymi współrzędnymi okien w GNOME Shell). Niri wspiera HiDPI i może działać na systemach z wieloma GPU (na przykład w hybrydowych systemach z dedykowaną kartą graficzną i zintegrowanym GPU). Zawiera wbudowany interfejs do tworzenia zrzutów ekranu i nagrywania screencastów, którego cechą jest możliwość wykluczenia z nagrania poszczególnych okien z poufnymi informacjami.
Wirtualne pulpity w Niri tworzone są dynamicznie i analogicznie do GNOME umieszczane są pionowo (taśma okien obraca się poziomo, a taśma pulpitów – pionowo). Na każdym monitorze może być wyświetlany niezależny zestaw wirtualnych pulpitów. Aby przełączać się między pulpitami i oknami, można używać gestów sterujących na touchpadzie. Po odłączeniu monitora układ wirtualnych pulpitu jest zapamiętywany i przenoszony na pozostający monitor, a po ponownym podłączeniu monitora przywracany w pierwotnym stanie. Konfiguracja odbywa się poprzez plik konfiguracyjny, który umożliwia zmianę takich parametrów jak szerokość ramek, odstępy, tryby wyjścia i rozmiary okien. Wprowadzone w pliku konfiguracyjnym zmiany są stosowane automatycznie bez ponownego uruchamiania serwera kompozytowego.

W nowej wersji:
- Dodano tryb przeglądowy do nawigacji po wirtualnych pulpitach i otwartych na nich oknach. Tryb aktywowany jest przez przesunięcie kursora w lewy górny róg lub przez przesunięcie czterema palcami na touchpadzie, po czym następuje zmniejszenie skali i wyświetlenie taśmy dostępnych wirtualnych pulpitów oraz otwartych na nich okien. Okna można przearanżować lub przenieść między pulpitami za pomocą myszy lub gestów ekranowych.

- Rozszerzono możliwości tworzenia skrin-kastów i współdzielenia ekranu. Dodano możliwość dynamicznego wyboru obiektu do nagrywania skrin-kastu – początkowo tworzony jest pusty strumień wideo, który można przełączyć na przechwycenie aktywnego okna lub całego ekranu na bieżącym monitorze. Zrealizowano wsparcie dla nagrywania wyjścia aplikacji w trybie pełnoekranowym w postaci wirtualnego okna.
- W interfejsie do tworzenia zrzutów ekranu dodano możliwość wyboru obszaru zrzutu za pomocą tabletu graficznego lub ekranu dotykowego. Na dolnym pasku dodano osobny przycisk do tworzenia zrzutu ekranu.
- Dodano możliwość wyróżniania okien, które wymagają szczególnej uwagi. Takie okna są wyróżniane kolorową ramką (kolor ustalany jest przez ustawienie urgent-color) i wyposażone w osobny wskaźnik na pasku.
- Rozszerzono możliwości interfejsu IPC, stosowanego do interakcji zewnętrznych systemów z kompozytem serwerem. Dodano polecenia: „niri msg pick-window” (zwraca identyfikator okna, na które kliknął użytkownik) i „niri msg pick-color” (zwraca kolor wybranego piksela).
- Dodano działania z oknami: focus-monitor, move-window-to-monitor, move-column-to-monitor, focus-column, move-column-to-index.
- Dodano ustawienia dla urządzeń wejściowych: wyłączenie tap-and-drag, wyłączenie ekranów dotykowych, zmiana klawisza modyfikatora, wybór orientacji touchpada, włączenie Num Lock przy uruchamianiu.
- Zwiększona efektywność renderowania okien do tekstur pośrednich (offscreening), które będą poddawane dodatkowej obróbce (np. nakładanie warstw) przed wyświetleniem na monitorze.
Źródło: opennet.ru

