Tuner и плагины: настройки из отдельных кусочков
Wi-Fi, звук, внешний вид, клавиатура, панель: каждая вкладка настроек это самостоятельный плагин.
Что такое Tuner
Tuner это расширяемый центр настроек на GTK4 и libadwaita, который загружает плагины через libpeas. Сам Tuner умеет немного: показывает окно, боковое меню и подгружает плагины. Всё остальное, то есть сами настройки, лежит в плагинах.
В Atomic Niri Tuner это основное место настройки системы после установки.
Одна вкладка это один плагин и один репозиторий
В Atomic Niri каждая страница Tuner (Wi-Fi, Звук, Bluetooth, Внешний вид, Обои, Клавиатура, Питание…) вынесена в отдельный плагин со своим репозиторием. Это сознательное решение, и вот что оно даёт:
Проще управлять
У каждой настройки свой код, свои тесты и свой релиз. Менять звук, не трогая сеть, и выпускать обновления по одному.
Проще находить ошибки
Сломалась вкладка: понятно, чей это репозиторий. Баг не размазан по монолиту, а проверяется отдельными тестами.
Можно написать свой плагин
Нужна вкладка для своего железа или сервиса? Достаточно отдельного репозитория по образцу. Ничего не нужно «вливать» в чужой код.
Расширяется без правки ядра
Новый плагин ставится отдельно и подхватывается Tuner: код самого центра настроек менять не нужно.
Плагины Atomic Niri
Страницы по порядку в боковом меню. Исходники каждого плагина лежат в plafonlinux.
| Страница | Что настраивает | Плагин |
|---|---|---|
| Wi-Fi, Сеть | сети, скрытые сети, точка доступа, проводные соединения, VPN, прокси | TunerNiriNet |
| Bluetooth | устройства и сопряжение | TunerNitiBluetooth |
| Уведомления, Поиск | «Не беспокоить», приложения, расположение и таймаут уведомлений, поставщики поиска | TunerNitiNotifications |
| Внешний вид | тема, иконки, курсор, акцентный цвет из обоев, шрифты | TunerNiriAppearance |
| Обои | галерея, случайная смена, акцентный цвет из обоев | TunerNiriWallpapers |
| Ночной свет | цветовая температура, расписание (по солнцу или вручную) | TunerNiriNightLight |
| Звук | вывод и ввод, громкость, баланс, приложения | TunerNitiAudio |
| Питание | батареи и периферия, режим питания, экран блокировки | TunerNitiPower |
| Клавиатура | раскладки и сочетания клавиш niri | TunerNitiKeyboard |
| Принтеры | принтеры и очередь печати (CUPS) | TunerNitiPrinter |
| Настройки панели, Быстрое меню | режим и высота панели, состав и порядок виджетов, плитки быстрого меню | TunerNitiSettings |
| Меню питания | состав и порядок кнопок, свои команды | TunerNiriPowerMenu |
| Сетевые учётные записи, Общий доступ | GNOME Online Accounts, имя устройства, SSH, удалённый доступ | TunerNitiOnline |
| Приложения по умолчанию | браузер, почта, календарь, музыка, видео, фото | TunerNiriDefaultApps |
| Информация о системе | диагностика ALT Atomic и железа | TunerOSInfo |
Как выглядит
Напишите свой плагин
Плагин Tuner это обычный репозиторий с небольшим набором файлов. Плагины пишутся на Vala (нативный модуль) или на Python.
- Имя репозитория:
TunerИмя(PascalCase с префиксомTuner). Владелец любой: общего пространства имён не нужно. - Структура:
meson.build, описание плагина вdata/([Plugin] Name=… Module=…) и исходный код вsrc/. - Сборка: для Vala нужны
meson,vala, библиотеки Tuner и libpeas2; удобно собирать в контейнере. - Общая библиотека: TunerNitiPluginLib даёт безопасное чтение и запись JSON-конфигов, чтобы не писать это каждый раз.
- Образец: посмотрите готовые плагины из таблицы выше, например небольшой TunerNiriNightLight.
Если вы написали плагин, расскажите в чате ALT Atomic.







