Po třech měsících vývoje byl publikován vydání kompozitního serveru Niri 26.04, který implementuje metodu mozaikového (tiling) uspořádání ve stylu GNOME rozšíření PaperWM, kde se okna skupinují do nekonečně posuvného pásu na obrazovce. Otevření nového okna vede k rozšíření pásu, zatímco dříve přidaná okna nemění svou velikost. Projekt je založen na použití protokolu Wayland, ale umožňuje spouštění aplikací X11 pomocí DDX serveru Xwayland. Kód projektu je napsán v jazyce Rust a je distribuován pod licencí GPLv3. Balíčky se vytvářejí pro Fedora, NixOS, Arch Linux a FreeBSD.
Zásadním rozdílem Niri od PaperWM je přiřazení vlastního pásu oken k každému monitoru, který se neprotíná s pásy na jiných monitorech (v PaperWM není možné realizovat oddělenou práci s monitory kvůli vazbě na globální souřadnice oken v GNOME Shell). Niri podporuje HiDPI a může fungovat na systémech s více GPU (například v hybridních systémech s diskrétní grafickou kartou a integrovaným GPU). Je zde integrované rozhraní pro vytváření snímků obrazovky a nahrávání screencastů, jehož zvláštností je možnost vyloučení jednotlivých oken s důvěrnými informacemi z nahrávání.
Virtuální pracovní plochy v Niri jsou vytvářeny dynamicky a analogicky k GNOME jsou umístěny vertikálně (pás oken se otáčí horizontálně, zatímco pás pracovních ploch – vertikálně). Na každém monitoru může být zobrazen nezávislý soubor. virtuálních pracovních ploch. Pro přepínání mezi pracovními plochami a okny lze použít ovládací gesta na touchpadu. Při odpojení monitoru se rozložení virtuálních pracovních ploch zapamatuje a přenese na zbývající monitor a po návratu monitoru se obnoví do původního stavu. Nastavení se provádí prostřednictvím konfiguračního souboru, který umožňuje měnit takové parametry, jako jsou šířka rámců, okraje, výstupní režimy a velikosti oken. Změny provedené v konfiguračním souboru se automaticky aplikují bez nutnosti restartu kompozitního serveru. serveru.
V nové verzi:
- Byla přidána možnost rozmazání pozadí poloprůhledných oken. Aplikace a komponenty uživatelského prostředí mohou řídit průhlednost pomocí protokolu Wayland ext-background-effect, a pro programy, které tento protokol nepodporují, lze průhlednost nastavit prostřednictvím připojení v konfiguračním souboru. Vestavěná podpora rozmazání pozadí byla implementována v shellu Dank Material Shell a Noctalia, spuštěči Vicinae, terminálových emulátorech foot, kitty a Ghostty, a toolkitách Quickshell a winit. K dispozici jsou dva režimy rozmazání pozadí: „xray“ (rozmazání se vypočítá jednou a poté se použije hotový statický obrázek) a „normal“ (rozmazání se provádí za běhu).

- Do direktivy konfiguračního souboru „include“, která se používá pro vložení obsahu jiných souborů, byla přidána možnost „optional=true“, která umožňuje definovat volitelné komponenty konfigurace. Pokud vložený soubor chybí, místo chyby se při nastavení „optional=true“ zobrazí varování. V rámci konfigurace byla přidána možnost použití cesty „~\/“, asociované s domovským adresářem.
- Pro usnadnění navigace mezi několika okny, podobně jako v Blenderu, bylo implementováno automatické přeskočení kurzoru z jednoho okraje obrazovky na druhý při horizontálním posouvání myší pracovního prostoru.
- Při nahrávání screencastů byla implementována přenos metadat o kurzoru do PipeWire odděleně od video streamu, což například umožňuje v OBS kreslit kurzor samostatně. Do IPC byly přidány příkazy pro sledování nahrávání screencastů, zastavení screencastů a získávání událostí o zahájení / dokončení nahrávání (pro zobrazení indikátoru v panelu).
- Byla vylepšena animace posouvání a rozbalování / sbalování oken.
- Byla přidána možnost zrušení operace drag&drop stisknutím klávesy Escape.
- Byla vylepšena podpora tabletů a trackballů.
- Byly rozšířeny možnosti profilování GPU pomocí balíčku Tracy. Byla přidána možnost sledování výkonu renderování a operací rozmazání. Byla implementována podpora systémů s hybridní grafikou (integrovaný GPU + diskrétní grafická karta).
- Byla optimalizována renderovací animace. Sestavení seznamu objektů vykreslovaných na obrazovce bylo zrychleno 2-3krát na moderních systémech a až 8krát na starších.
Zdroj: opennet.ru

