Выпуск композитного сервера Niri 25.05, использующего Wayland

Опубликован выпуск композитного сервера Niri 25.05, реализующего метод мозаичной (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 размещаются вертикально (лента окон вращается горизонтально, а лента рабочих столов – вертикально). На каждом мониторе может отображаться независимый набор виртуальных рабочих столов. Для переключения между рабочими столами и окнами можно использовать управляющие жесты на тачпаде. При отключении монитора раскладка виртуальных рабочих столов запоминается и переносится на оставшийся монитор, а при возвращении монитора восстанавливается в исходное состояние. Настройка осуществляется через файл конфигурации, позволяющий изменять такие параметры, как ширина рамок, отступы, режимы вывода и размеры окон. Внесённые в файл конфигурации изменения применяется автоматически без перезапуска композитного сервера.


В новой версии:

  • Добавлен обзорный режим для навигации по виртуальным рабочим столам и открытым в них окнам. Режим активируется переводом курсора в левый верхний угол или через сдвиг четырьмя пальцами на тачпаде, после чего уменьшается масштаб и показывается лента из имеющихся виртуальных рабочих столов и открытых в них окон. Окна можно перегруппировывать или перемещать между рабочими столами при помощи мыши или экранных жестов.
  • Расширены возможности для создания скринкастов и совместного доступа к экрану.
    Добавлена возможность динамического выбора объекта для записи скринкаста – изначально создаётся пустой видеопоток, который можно переключить на захват активного окна или всего экрана на текущем мониторе. Реализована поддержка записи вывода полноэкранных приложений в форме виртуального окна.
  • В интерфейс для создания скриншотов добавлена возможность выбора области снимка при помощи графического планшета или сенсорного экрана. В нижнюю панель добавлена отдельная кнопка для создания скриншота.
  • Добавлена возможность выделения окон, требующих особого внимания. Подобные окна выделяются цветной рамкой (цвет задаётся через настройку urgent-color) и снабжаются отдельным индикатором в панели.
  • Расширены возможности IPC-интерфейса, применяемого для взаимодействия внешних систем с композитным сервером. Добавлены команды: “niri msg pick-window” (возвращает идентификатор окна на которое кликнул пользователь) и “niri msg pick-color” (возвращает цвет выбранного пикселя).
  • Добавлены действия с окнами: focus-monitor, move-window-to-monitor, move-column-to-monitor, focus-column, move-column-to-index.
  • Добавлены настройки для устройств ввода: отключение tap-and-drag, отключение сенсорных экранов, изменение клавиши-модификатора, выбор ориентации трекпада, включение Num Lock при запуске.
  • Повышена эффективность отрисовки окон в промежуточные текстуры
    (offscreening), подлежащие дополнительной обработке (например, наложение слоёв) перед выводом на монитор.

Release. Ссылка here.