Opublikowano wydanie serwera kompozytowego Niri 25.08, realizującego metodę mozaikowej (tiling) kompozycji w stylu rozszerzenia GNOME PaperWM, w którym okna grupowane są w nieskończoną przewijalną taśmę na ekranie. Otwieranie nowego okna powoduje rozszerzenie taśmy, a wcześniej dodane okna nie zmieniają swojego rozmiaru. Projekt bazuje na wykorzystaniu protokołu Wayland, ale umożliwia uruchamianie aplikacji X11 za pomocą serwera DDX Xwayland. Kod projektu napisany jest w języku Rust i jest rozpowszechniany na licencji GPLv3. Pakiety są tworzone dla Fedora, NixOS, Arch Linux i 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:
- Aby uruchomić aplikacje X11 przy użyciu Xwayland, zintegrowano komponent xwayland-satellite, który umożliwia korzystanie z natywnych okien X11 w sesji Wayland bez potrzeby dodawania specyficznych dla X11 funkcji zarządzania oknami, takich jak globalny system współrzędnych. Dzięki xwayland-satellite bez przeszkód działają gry, Steam, Proton, IDE JetBrains, Ghidra, aplikacje oparte na Electron oraz większość innych klientów X11.
- Dodano wsparcie dla czytników ekranu. Dla projektu Orca zrealizowano interfejs D-Bus org.freedesktop.a11y.KeyboardMonitor, który pozwala na przechwytywanie naciśnięć klawiszy. Za pomocą AccessKit możliwe jest wykonywanie poleceń głosowych do przełączania między pulpitami, potwierdzania wyjścia, robienia zrzutów ekranu oraz aktywacji skrótów klawiszowych. Dodano skrót klawiszowy Super+Alt+S do włączania i wyłączania Orca.
- Dodano modalny dialog potwierdzenia zakończenia sesji, podczas aktywacji którego zastosowane jest przyciemnienie tła, a przy otwieraniu/zamykaniu zastosowano animowany efekt.

- Podczas robienia zrzutów ekranu rozszerzono interfejs do zaznaczania interesującego obszaru oraz okna do zrzutu, w tym wsparcie dla konfiguracji z wieloma monitorami oraz obsługę ekranów dotykowych. Rozwiązano problemy z migotaniem podczas nagrywania screencastów na systemach z kartami graficznymi NVIDIA.

- Zrealizowano możliwość uzyskiwania informacji o układzie klawiatury przez systemd-localed, korzystając z interfejsu D-Bus org.freedesktop.locale1, co pozwala na wykorzystanie wybranych podczas instalacji ustawień bez potrzeby dodatkowej konfiguracji układu XKB.
- Dodano wsparcie dla protokołu Wayland ext-workspace, realizującego zdarzenia z informacjami o stanie wirtualnych pulpitów oraz możliwość aktywacji i dezaktywacji pulpitów. Wsparcie dla ext-workspace umożliwiło osiągnięcie zgodności wskaźnika pulpitów z innymi serwerami kompozytowymi oraz użycie modułu ext/workspaces w Waybar 0.14, jak również w przyszłych wersjach sfwbar i xfce4-panel.
- Dodano wsparcie dla drugiej wersji protokołu Wayland cursor-shape, który zapewnia alternatywny sposób dostosowania wyglądu kursora, oparty na przesyłaniu serii obrazów kursora zamiast powiązania z powierzchnią (wl_surface).
- Do interfejsu IPC dodano możliwości zarządzania pozycją i rozmiarem okien.
- Wdrożono usługę D-Bus do blokowania automatycznej aktywacji wygaszacza ekranu podczas oglądania wideo w takich programach jak VLC.
- Stworzono logo projektu i uruchomiono witrynę wiki z dokumentacją.

Źródło: opennet.ru



