Po trzech miesiącach prac rozwojowych opublikowano wydanie kompozytowego serwera Niri 25.11, wdrażającego metodę mozaikowego (tiling) układu w stylu rozszerzenia GNOME PaperWM, w którym okna są grupowane w nieskończoną, przewijalną listę na ekranie. Otwieranie nowego okna prowadzi do rozszerzenia listy, a wcześniej dodane okna nie zmieniają swojego rozmiaru. Projekt oparty jest na wykorzystaniu protokołu Wayland, ale pozwala na uruchamianie aplikacji X11 za pomocą serwera DDX Xwayland. Kod projektu jest napisany w języku Rust i jest udostępniany na licencji GPLv3. Pakiety są tworzone dla systemów Fedora, NixOS, Arch Linux oraz FreeBSD.
Zasadniczą różnicą między Niri a PaperWM jest przypisanie do każdego monitora własnej taśmy okien, która nie przecina się z taśmami na innych monitorach (w PaperWM oddzielna praca z monitorami nie może być realizowana z powodu przypisania do globalnych współrzędnych okien w GNOME Shell). Niri obsługuje HiDPI i może działać na systemach z wieloma GPU (na przykład w systemach hybrydowych z dedykowaną kartą graficzną i zintegrowanym GPU). Posiada wbudowany interfejs do tworzenia zrzutów ekranu i nagrywania screencastów, którego cechą jest możliwość wykluczania z nagrania poszczególnych okien z poufnych informacji.
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 interfejs do przełączania między oknami za pomocą Alt+Tab z wyświetlaniem podglądów podczas przewijania okien. Możliwe jest wyświetlanie okien w powiązaniu z aktualnym wirtualnym pulpitem (klawisz „w”) lub urządzeniem wyjściowym (klawisz „o”). Dostępne jest również połączenie klawiszy Alt+»`» do przełączania między oknami bieżącej aplikacji.

- Dodano animacje przejścia okien w tryb pełnoekranowy oraz wyjścia z niego.
- Wdrożono pełną obsługę maksymalizacji okien (wcześniej wspierano maksymalizację tylko na pełną szerokość z zachowaniem odstępów i ramek, a teraz wspierana jest maksymalizacja zajmująca całą dostępną przestrzeń bez pokazywania ramek). Maksymalizacja odbywa się poprzez naciśnięcie odpowiedniego przycisku na górze okna lub podwójne kliknięcie myszką w tytule.

- Dodano możliwość generowania zdarzeń przewijania zawartości podczas poziomego przeciągania myszką tytułu okna w mozaikowym układzie (przeciąganie pionowe prowadzi do przesunięcia okna, zaś poziome – do przewijania informacji w oknie).
- Umożliwiono definiowanie odrębnych konfiguracji układów okien, przypisanych do określonego urządzenia wyjściowego (monitora) lub wirtualnego pulpitu.
- W plikach konfiguracyjnych wdrożono dyrektywę „include” do wstawiania treści z innych plików.
- Dodano wsparcie dla zewnętrznych monitorów podłączonych przez port DisplayLink.
- Wprowadzono zmiany redukujące migotanie ekranu.
- Dodano wsparcie dla definiowania własnych rozdzielczości wideo dla urządzeń wyjściowych, które nie są ograniczone trybami przekazywanymi przez EDID. Na przykład, ‘mode custom=true «1920×1080@100″‘.
- Dodano wsparcie dla uruchamiania sesji okienkowej niri w WSL (Windows Subsystem for Linux).
Źródło: opennet.ru


