После трёх месяцев разработки опубликован выпуск композитного сервера Niri 25.11, реализующего метод мозаичной (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 размещаются вертикально (лента окон вращается горизонтально, а лента рабочих столов - вертикально). На каждом мониторе может отображаться независимый набор виртуальных рабочих столов. Для переключения между рабочими столами и окнами можно использовать управляющие жесты на тачпаде. При отключении монитора раскладка виртуальных рабочих столов запоминается и переносится на оставшийся монитор, а при возвращении монитора восстанавливается в исходное состояние. Настройка осуществляется через файл конфигурации, позволяющий изменять такие параметры, как ширина рамок, отступы, режимы вывода и размеры окон. Внесённые в файл конфигурации изменения применяется автоматически без перезапуска композитного сервера.
В новой версии:
Добавлен интерфейс для переключения между окнами по Alt+Tab с показом эскизов во время прокрутки окон. Возможно отображение окон в привязке к текущему виртуальному рабочему столу (клавиша "w") или устройству вывода (клавиша "o"). Также доступна комбинация клавиш Alt+"`" для переключения между окнами текущего приложения.
Добавлены анимационные эффекты перехода окна в полноэкранный режим и выхода из него.
Реализована полноценная поддержка раскрытия окон на весь экран (ранее поддерживалось раскрытие окна на полную ширину с сохранением отступов и рамок, а теперь поддерживается раскрытие с занятием всей доступной области без показа рамок). Раскрытие производится при нажатии соответствующей кнопки в верхней части окна или при двойном клике мышью по заголовку.
Добавлена возможность генерации событий прокрутки содержимого при осуществлении горизонтального перетаскивания мышью заголовка окна в мозаичной раскладке (вертикальное перетаскивание приводит к перемещению окна, а горизонтальное - к прокрутке информации в окне).
Предоставлена возможность определения отдельных конфигураций раскладки окон, привязанных к определённому устройству вывода (монитору) или виртуальному рабочему столу.
В файлах конфигурации реализована директива "include" для подстановки содержимого других файлов.
Добавлена поддержка внешних мониторов, подключённых через порт DisplayLink.
Внесены изменения, снижающие мерцание экрана.
Добавлена поддержка задания собственных видеорежимов для устройств вывода, не ограниченных режимами, переданными через EDID. Например, 'mode custom=true "1920x1080@100"'.
Добавлена поддержка запуска оконного сеанса niri в WSL (Windows Subsystem for Linux).
Источник: https://www.opennet.ru/opennews/art.shtml?num=64344









