Опубликован выпуск композитного сервера Niri 0.1.10, реализующего метод мозаичной (tiling) компоновки в стиле GNOME-расширения PaperWM, в котором окна группируются в бесконечно прокручиваемую на экране ленту. Открытие нового окна приводит к расширению ленты, а ранее добавленные окна не меняют свой размер. Проект базируется на использовании протокола Wayland, но позволяет запускать приложения X11 при помощи DDX-сервера Xwayland. Код проекта распространяется под лицензией GPLv3. Пакеты формируются для Fedora, NixOS , Arch Linux и FreeBSD.
Принципиальным отличием Niri от PaperWM является привязка к каждому монитору собственной ленты окон, не пересекающейся с лентами на других мониторах (в PaperWM раздельная работа с мониторами не может быть реализована из-за привязки к глобальным оконным координатам в GNOME Shell). Niri поддерживает HiDPI и может работать на системах с несколькими GPU (например, гибридных системах с дискретной видеокартой и встроенным GPU). Имеется встроенный интерфейс для создания скриншотов и записи скринкастов, особенностью которого является возможность исключения из записи отдельных окон с конфиденциальной информацией.
Виртуальные рабочие столы в Niri создаются динамически и по аналогии с GNOME размещаются вертикально (лента окон вращается горизонтально, а лента рабочих столов – вертикально). На каждом мониторе может отображаться независимый набор виртуальных рабочих столов. Для переключения между рабочими столами и окнами можно использовать управляющие жесты на тачпаде. При отключении монитора раскладка виртуальных рабочих столов запоминается и переносится на оставшийся монитор, а при возвращении монитора восстанавливается в исходное состояние. Настройка осуществляется через файл конфигурации, позволяющий изменять такие параметры, как ширина рамок, отступы, режимы вывода и размеры окон. Внесённые в файл конфигурации изменения применяется автоматически без перезапуска композитного сервера.
В новой версии:
- Добавлен режим интерактивного перемещения окон, позволяющий перетащить окно на новое место удерживая заголовок окна мышью или касанием на сенсорном экране. Для предотвращения непреднамеренного изменения раскладки при начале перетаскивания требуется преодолеть определённый порог сопротивления откреплению от текущей позиции.
- Добавлена возможность привязки команд к событиям открытия или закрытия крышки ноутбука или перевода ноутбука в планшетный режим. Например, после перевода в планшетный режим можно автоматически активировать использование экранной клавиатуры. Также добавлена возможность автоматического перемещения виртуальных рабочих столов на внешний монитор (если он подключён), после закрытия крышки ноутбука.
- Добавлена поддержка запроса set_cursor_position_hint. Если позиция курсора закреплена в режиме lock_pointer, добавленный запрос даёт возможность приложению передать композитному менеджеру сведения о конечной позиции курсора после его перемещения.
- Добавлены опции для скрытия курсора во время набора текста или после определённого времени неактивности.
- Добавлены новые настройки устройств ввода, например, секция с параметрами трекбола и опции прокрутки колесом мыши или тачпадом.
- Обеспечено сохранение информации об активном виртуальном рабочем столе после переподключения монитора.
- Добавлено действие “power-on-monitors” для управление выводом монитора из ждущего режима (по умолчанию монитор автоматически активируется после любого собятия ввода).
- Добавлен файл для запуска niri под управлением сервисного менеджера dinit.