След три месеца разработка беше публикувано издания на композитния сървър Niri 26.04, реализиращ метода на мозайката (tiling) в стил GNOME разширението PaperWM, в което прозорците са групирани в безкрайна лента, която може да се превърта на екрана. Отварянето на нов прозорец води до разширяване на лентата, а вече добавените прозорци не променят размера си. Проектът е базиран на използването на протокола Wayland, но позволява стартирането на приложения X11 чрез DDX сървъра Xwayland. Кодът на проекта е написан на Rust и се разпространява под лиценз GPLv3. Пакетите са формулирани за Fedora, NixOS, Arch Linux и FreeBSD.
Основното отличие на Niri от PaperWM е, че всеки монитор има собствена лента с прозорци, която не се пресича с лентите на други монитори (в PaperWM отделната работа с монитори не е възможна поради привързаността към глобалните координати на прозорците в GNOME Shell). Niri поддържа HiDPI и може да работи на системи с множество GPU (например, хибридни системи с дискретна видеокарта и вграден GPU). Вграден е интерфейс за създаване на екранни снимки и запис на скрийнкасти, като особеност е възможността за изключване на определени прозорци с конфиденциална информация от записа.
Виртуалните работни маси в Niri се създават динамично и аналогично на GNOME се разполагат вертикално (лента от прозорци се върти хоризонтално, а лентата на работните маси – вертикално). На всеки монитор може да се показва независим набор виртуални работни площи. За превключване между работни площи и прозорци може да се използват управляващи жестове на тъчпада. При изключване на монитора конфигурацията на виртуалните работни площи се запомня и пренася на оставащия монитор, а при връщане на монитора тя се възстановява в първоначалното си състояние. Настройките се извършват чрез конфигурационен файл, който позволява промяна на параметри като ширина на рамките, отстъпи, режими на извеждане и размери на прозорците. Промените в конфигурационния файл се прилагат автоматично без необходимост от рестартиране на композитния. сървър.
В новата версия:
- Добавена е възможност за размазване на фона на полупрозрачни прозорци. Приложенията и компонентите на потребителската среда могат да управляват прозрачността с помощта на Wayland протокола ext-background-effect, а за програми, които не поддържат този протокол, прозрачността може да бъде настроена чрез свързване в конфигурационния файл. Вградена поддръжка за размазване на фона е реализирана в обвивките Dank Material Shell и Noctalia, в стартиращите приложения Vicinae, в емулатори на терминала foot, kitty и Ghostty, в тулкитите Quickshell и winit. Налични са два режима на размазване на фона: "xray" (размазването се изчислява веднъж и след това се предлага готовото статично изображение) и "normal" (размазването се извършва в реално време).

- В директивата на конфигурационния файл "include", използвана за инжектиране на съдържание от други файлове, е добавена опцията "optional=true", която позволява определянето на незадължителни компоненти на конфигурацията. Ако добавеният файл отсъства, при наличие на опцията "optional=true" вместо грешка ще бъде изведено предупреждение. Вътре в конфигурацията е добавена възможността да се използва пътят "~\/", асоцииран с домашния каталог.
- За улесняване на навигацията между няколко прозореца, подобно на Blender, при хоризонтално скролиране с мишката в работната област е реализирано автоматично прехвърляне на курсора от един край на екрана на друг.
- При запис на скринкасти е реализирана предаване в PipeWire на метаданни за курсора отделно от видеопотока, което например позволява в OBS да се рисува курсора самостоятелно. В IPC са добавени команди за проследяване на запис на скринкаст, спиране на скринкаста и получаване на събития за начало/завършване на записа (за извеждане на индикатор в панела).
- Подобрена е анимацията на скролиране и разширяване/свиване на прозорци.
- Добавена възможност за отмяна на операцията drag&drop чрез натискана клавиша Escape.
- Подобрена поддръжка на таблети и тракболове.
- Разширени възможностите за профилиране на GPU с пакета Tracy. Добавена е възможност за проследяване на производителността на рендериране и действия по размазване. Реализирана е поддръжка на системи с хибридна графика (вграден GPU + дискретна видеокарта).
- Проведена е оптимизация на рисуването. Създаването на списък с обектите, които се рисуват на екрана, е ускорено 2-3 пъти на съвременни системи и до 8 пъти на стари.
Източник: opennet.ru

