Как собрать идеальный рабочий стол в Wayland и не сойти с ума
Знакомая история: вы решили пересесть на Wayland, выбрали симпатичный тайлинговый композитор вроде Hyprland или Sway, а дальше начался квест по сборке пазла. Нужно найти панель (Waybar?), лаунчер приложений (Rofi? Wofi?), какой-нибудь демон уведомлений (mako или dunst?), блокировщик экрана и софт для обоев. В итоге конфиг превращается в мешанину из пяти разных форматов, а визуально элементы все равно «пляшут» и выглядят как части разных систем.
Я наткнулся на проект noctalia, который предлагает другой путь. Разработчики решили, что хватит склеивать систему синей изолентой, и написали цельную оболочку (shell), где всё — от дока до центра управления — работает как единый организм.
Что это вообще такое
Noctalia — это нативная оболочка для Wayland, написанная на C++23. Это не самостоятельная графическая среда вроде GNOME или KDE, но и не просто «панелька». Она берет на себя весь визуальный слой поверх вашего композитора.
Главная фишка здесь в монолитности под капотом при гибкости снаружи. Вместо того чтобы запускать пять разных бинарников, вы запускаете один. Проект не тянет за собой тяжелые зависимости вроде GTK или Qt, а отрисовывает интерфейс напрямую через OpenGL ES. Для пользователя это означает мгновенный отклик и очень скромное потребление ресурсов.
Из чего состоит оболочка
Если обычно мы привыкли настраивать каждый компонент отдельно, то здесь всё включено в «коробку».
Во-первых, это бары. Они поддерживают несколько мониторов, умеют в системный трей, показывают погоду, заряд батареи и управляют медиа плеерами. Если стандартных виджетов мало, можно прикрутить свои через скрипты.
Во-вторых, полноценный центр управления. Помните, как удобно в macOS или Android менять яркость и громкость в одном месте? Noctalia дает такой же опыт на Linux. Там же живут уведомления с историей, так что важное сообщение не потеряется, если вы отошли от компьютера.
В-третьих, это лаунчер и системные оверлеи (OSD). Когда вы меняете громкость кнопками на клавиатуре, на экране появляется симпатичный индикатор. Вроде мелочь, но именно такие детали делают систему «причесанной».
Еще из интересного:
- Встроенный блокировщик экрана.
- Менеджер обоев.
- История буфера обмена.
- Виджеты прямо на рабочем столе.
Техническая начинка и конфиги
Проект написан с прицелом на производительность. Использование C++23 и OpenGL ES делает интерфейс плавным. Интересно, что разработчики выбрали TOML для конфигурации. Это гораздо приятнее, чем городить Bash-скрипты или копаться в XML.
Кстати, конфиг поддерживает hot reload. Изменили цвет панели или размер шрифта в файле — изменения прилетели мгновенно, перезапускать ничего не нужно. Для тех, кто любит «вылизывать» внешний вид своего рабочего стола (тот самый rice), это просто спасение.
Noctalia дружит с большинством популярных композиторов: Hyprland, Sway, Niri, Labwc. Если композитор поддерживает протоколы layer-shell, оболочка встанет как родная. Для специфичных вещей вроде рабочих столов (workspaces) у проекта есть отдельные бэкенды под каждый популярный оконный менеджер.
Как попробовать
Сразу оговорюсь: проект сейчас находится в стадии активной альфы (v5). Это значит, что конфиги иногда могут «ломаться» при обновлениях, а какие-то фичи могут работать нестабильно. Но если вы сидите на Arch или Fedora и любите эксперименты, ставится всё довольно прозрачно.
Для сборки понадобится свежий компилятор (GCC 13+ или Clang 16+), утилита just и meson.
Пример сборки выглядит примерно так:
just configure release
just build release
sudo just install release
После установки достаточно прописать запуск noctalia в автозагрузку вашего композитора. Все настройки по умолчанию лежат в example.toml в репозитории — это отличная точка старта, чтобы не писать всё с нуля.
Кому это нужно
Если вам нравится идея минимализма, но вы устали от «лоскутного одеяла» из мелких утилит, Noctalia точно стоит внимания. Она дает консистентность, которую сложно получить, пытаясь подружить Waybar с Rofi.
Проект подойдет тем, кто:
- Использует тайлинговые менеджеры окон в Wayland.
- Ценит визуальную эстетику и хочет, чтобы все элементы интерфейса выглядели в едином стиле.
- Предпочитает настраивать систему через один понятный файл конфигурации.
- Борется за каждый мегабайт оперативной памяти и не хочет запускать тяжелые фреймворки ради одной панели задач.
Пока Noctalia — это скорее инструмент для энтузиастов и тех, кто строит свой идеальный десктоп по кирпичикам. Но уровень проработки даже на стадии альфы заставляет следить за этим репозиторием. Возможно, именно этого компонента не хватало вашему «рису», чтобы стать по-настоящему завершенным.