Современный мир Linux предлагает широкий спектр оконных менеджеров и композитных серверов, которые позволяют пользователям настраивать рабочий процесс согласно своим предпочтениям и потребностям. В последние годы все большую популярность набирают среда и инструменты, ориентированные на Wayland — современный протокол отображения, призванный заменить устаревший X11. Среди таких решений выделяется Niri — относительно молодой Rust-ориентированный композитный сервер для Wayland, обладающий уникальной концепцией прокручиваемого тайлинга окон. Niri представляет собой не полноценную настольную среду, а скорее минималистичный оконный менеджер, сочетающий преимущества тайлинга и гибкость в настройках. Особенностью Niri является размещение окон в «бесконечной» горизонтальной строке, которая выходит за границы видимой области рабочего пространства.
Это позволяет пользователям иметь большое количество окон в одном пространстве и прокручивать их влево и вправо по необходимости. Такой подход отличается от традиционного тайлинга, где окна располагаются в фиксированных сетках или колонках на экране. История появления и вдохновение для Niri коренится в проекте ScrollWM, запущенном более десяти лет назад, который заложил основы прокручиваемого виртуального рабочего пространства, позволяющего плавно перемещаться по большому пространству с окнами. Позже появились другие реализации на подобие расширения PaperWM для GNOME, которое предоставило прокручиваемый тайлинг как дополнительную функцию. Niri же был создан Иваном Молодецких в 2023 году, который стремился преодолеть ограничения PaperWM, особенно связанные с разделением рабочих пространств на разных мониторах.
В результате каждый монитор в Niri имеет собственное независимое рабочее пространство, что повышает удобство работы с несколькими дисплеями. Технической основой Niri служит Smithay — Rust-библиотека для разработки композитных серверов, предоставляющая универсальные инструменты и интерфейсы, упрощающие создание новых решений на базе Wayland. Smithay широко используется в различных проектах, включая популярную настольную среду COSMIC. При этом Niri лицензирован под GPLv3, что гарантирует открытость и возможность свободного распространения и модификации. Пользователям сегодня доступна установка Niri из репозиториев ряда дистрибутивов, таких как Arch, Fedora, Gentoo, Alpine и openSUSE Tumbleweed.
Однако официальной поддержки для Debian и Ubuntu пока нет, хотя сборка из исходных кодов полностью реализуема. Среди особенностей эксплуатации стоит упомянуть рекомендации по работе с драйверами NVIDIA и архитектурой Arm, например в Asahi Linux, что говорит о внимании разработчика к широкому спектру систем. По состоянию на середину 2025 года проект преимущественно представлен усилиями одного разработчика — Ивана Молодецких, который является основным автором значительного объема кода. Регулярные релизы публикуются с нумерацией по схеме «год.месяц», что позволяет пользователям ориентироваться в актуальности версии.
Последний крупный релиз 25.05 включил важные функции, такие как обзор открытых окон и рабочих пространств, а также опции для затемнения окон при записи экрана, что расширяет возможности пользования и контроля над сессией. Погружаясь в использование Niri, пользователь обнаружит дружелюбный интерфейс с ярлыками и подсказками, появляющимися при входе в систему. Управление в основном строится на сочетаниях клавиш с использованием модификатора Super (обычно клавиши Windows), что облегчает навигацию и манипуляции с окнами без необходимости обращаться к мыши. При этом Niri не ограничивает и не запрещает использование мыши или тачпада для настройки размеров и положения окон, что делает его гибким и удобным для разных сценариев.
В стартовой конфигурации вместе с Niri обычно устанавливаются дополнительные вспомогательные программы — Waybar для отображения панелей, fuzzel как лаунчер приложений и mako для системы уведомлений. Waybar отличается масштабируемостью и возможностями настройки; можно реализовать стильные панели, похожие на macOS, Windows или сделать минималистический интерфейс по своему вкусу. Например, добавление кнопки питания с опциями выключения, перезагрузки и перехода в спящий режим позволяет интегрировать привычные системные функции в панель. Управление окнами в Niri построено вокруг концепции колонн с возможностью регулировки ширины и высоты окон с использованием предустановленных величин. Каждый новый оконный элемент размещается справа от текущего активного окна, а при переполнении видимой области старые окна прокручиваются влево, оставаясь доступными.
Для эффективной работы с окнами предусмотрено множество сочетаний клавиш, позволяющих перемещать фокус, менять местоположение окон между рабочими пространствами и мониторами, а также быстро центрировать выбранное окно. Кроме того, Niri способен работать с «плавающими» окнами — их можно вывести поверх тайлового слоя с помощью сочетания клавиш. Это актуально для диалоговых окон или модальных элементов интерфейса. Есть возможность группировки окон в виде вкладок внутри одной колонки, что облегчает организацию и переключение между рабочими задачами. Параметры работы окон весьма гибки: настройки позволяют задавать размеры, прозрачность и даже декоративные элементы окон, а еще создавать «именованные» рабочие пространства для упорядочивания приложений по категориям.
Обзорный режим, вызов которого совершается через горячие клавиши, предоставляет удобную визуализацию всех открытых окон и рабочих пространств с поддержкой навигации с клавиатуры или мыши. Это решение позволяет быстро ориентироваться в большом количестве окон, что делает рабочий процесс более продуктивным. Стоит отметить, что Niri не интегрирован с автоматическими системами энергосбережения и блокировки экрана, нежели полнофункциональные десктопные среды вроде GNOME. Для блокировки экрана рекомендуется использовать сторонние утилиты, например swaylock. Выключение дисплея возможно с помощью горячих клавиш, что подходит для базового энергосбережения.
Конфигурация Niri производится через текстовые файлы в формате KDL. Пользователи могут копировать стандартный шаблон конфигурации для создания собственного файла и настраивать поведение, сочетания клавиш, параметры окон и системные переменные. Благодаря текстовой природе конфигурирования и открытости настроек, Niri становится привлекательным для пользователей, предпочитающих глубокую кастомизацию и самостоятельный контроль над окружением. Поддержка мультидисплейных систем реализована очень хорошо: Niri самостоятельно определяет количество и характеристики подключенных экранов, устанавливает корректное разрешение и расширяет рабочее пространство вертикально, позволяя использовать каждый монитор как отдельное рабочее пространство без пересечений. Тем не менее положение экранов относительно друг друга требует ручного уточнения в настройках, что дает гибкость, но требует некоторого опыта.
Интеграция с X11-приложениями по умолчанию отсутствует, поскольку разработчик целенаправленно не хочет поддерживать Xwayland из-за его сложности и недостатков. Однако доступно решение под названием xwayland-satellite, работающее в «rootless» режиме, интеграция которого планируется в будущем. Это позволяет запускать X-программы параллельно с Niri с минимальным вмешательством. Для Linux-пользователей, стремящихся к минимализму, высокой производительности и гладкой работе с большим числом окон, Niri становится привлекательным выбором. Его модель прокручиваемого тайлинга отличается от традиционных оконных менеджеров, предлагая свободное и удобное пространство для размещения множества окон подряд.
Простота базового использования сочетается с глубокой возможностью кастомизации, что позволяет создавать максимально удобную среду под конкретные потребности. Сообщество вокруг Niri хоть и невелико, но активно и дружелюбно. Создатель проекта открыт для обратной связи и регулярно уделяет внимание пожеланиям пользователей, что отражается в функциональных обновлениях и улучшениях. Существует даже витрина пользовательских конфигураций, что позволяет черпать вдохновение для собственных настроек. В заключение, Niri — это интересное, современное и мощное средство управления окнами в Linux на базе Wayland.
Он отличается уникальной моделью прокрутки, продуманным дизайном клавишных команд и сильным упором на кастомизацию и минимализм. Для тех, кто готов посвятить время изучению конфигураций и экспериментам, Niri предлагает практически неограниченные возможности для построения удобной и эффективной среды работы.