Niti: shell рабочего стола
Не просто панель, а полноценная оболочка: всё, что окружает окна в niri. Написана на нативной Vala и GTK4, создана для ALT Atomic.
Что такое Niti
niri раскладывает окна, но ничего больше не рисует. Всё остальное делает Niti: по роли это то же, что GNOME Shell для GNOME. Панель, лаунчер, поиск, быстрое меню, уведомления, календарь, док и виджеты собраны в один согласованный shell. Он выглядит как остальные приложения GTK и подстраивает цвета под ваши обои.
Название по-русски означает «нити»: ниточки, за которые дёргают нужное в системе. Так пользователь через оболочку управляет системой.
Niti создан сугубо для ALT Atomic и тесно связан с её экосистемой: Atomic Booster, Tuner, ReadySet, Seni. Поддержка других дистрибутивов не планируется.
Как Niti появился
Niti родился как панель на Go в противовес ashell. Но очень быстро перерос панель и стал полноценным решением, а затем полноценным shell: с лаунчером, поиском, быстрым меню, уведомлениями, календарём, доком и макетами окон.
Сегодня Niti полностью реализован на Vala. Go-версия больше не развивается, а продолжает проект репозиторий NitiVala.
Что он умеет
Панель с виджетами
Три зоны: слева, по центру, справа. Состав и порядок виджетов меняются в мастере и в Tuner без правки файлов.
Лаунчер и глобальный поиск
Super+D: приложения, страницы настроек Tuner, пункты Atomic Booster, калькулятор, справка и системные действия в одном поле.
Меню приложений
Super+G: сетка всех установленных приложений со своим порядком значков, папками и живым поиском.
Док
Избранные приложения у края экрана. Край, размер значков, отступы, выравнивание и прозрачность настраиваются.
Быстрое меню
Громкость, микрофон и яркость, Wi-Fi, Bluetooth, «Не беспокоить», ночной свет, тёмный режим, заряд периферии, медиаплеер и список уведомлений.
Уведомления
Встроенный демон уведомлений с группировкой по приложениям, историей и режимом «Не беспокоить».
Календарь
Попап по клику на часы. Дружит с Evolution Data Server: события видны в календаре и точками у часов.
Индикаторы
Всплывающие индикаторы громкости и яркости, меню выключения, скруглённые углы экрана.
Макеты окон
Сохраните расположение окон по столам и применяйте при входе в систему: нужные приложения сами откроются на своих местах.
Тема из обоев
Цвета Material You подбираются из текущих обоев и переключаются вместе со светлым и тёмным режимом системы.
Виджеты панели
Каждый виджет это независимый плагин: его можно включить, отключить, переставить или заменить своим. Здесь все виджеты образа.
Слева
Рабочие столы workspaces
Индикатор столов niri: точки, а активный стол растягивается в «таблетку».
Таскбар tasks
Закреплённые и открытые приложения.
По центру
Часы clock
Время и дата по-русски («Пт 6 Ноя 16:22»). Настраиваются 24-часовой формат, секунды и дата. Точки событий календаря. Клик открывает календарь.
Медиа media
Бегущая строка с текущим треком из любого плеера с поддержкой MPRIS. Длина строки настраивается.
Справа
Горячие клавиши hotkeys
Оверлей со списком сочетаний из конфигурации niri. Тот же файл читает и сам niri, поэтому список всегда точный.
Обновления systeminfo
Версия образа и базы Sisyphus, сколько уязвимостей закрыто, сколько обновлений Flatpak, версии панели и Booster, возраст системы. Из окна открывается Atomic Booster.
Диски disks
Подключённые диски, занятое место и отслеживаемые папки. Данные идут от UDisks2.
Системный монитор vitals
Процессор, видеокарта, память, NVMe, питание, температуры и вентиляторы. Из окна запускаются btop и LACT. Показывает и расход памяти самой панели, а при аномальном росте предупреждает.
Питание power
Переключатель профиля питания (power-profiles-daemon): экономия, баланс, производительность.
Caffeine caffeine
Не гасить экран и не уходить в сон, пока включено. Работает через systemd-inhibit.
Раскладка keyboard
Индикатор текущей раскладки клавиатуры (RU, EN).
Трей tray
Системный трей по стандарту StatusNotifierItem: значки приложений с их меню.
Быстрое меню quickbutton
Группа значков состояния (Wi-Fi, Bluetooth, звук) и кнопка питания. Клик открывает быстрое меню.
Дополнительные
Батарея battery
Заряд отдельным виджетом. Клик открывает подробности. Нужен на ноутбуках.
Запись экрана recording
Запись экрана через wf-recorder. Выключен по умолчанию, включается в настройках панели.
Макеты layouts
Сохранение и применение раскладок окон niri. Макет можно применять автоматически при старте системы.
Заряд периферии peripheria
Заряд клавиатуры, мыши и геймпада. Выключен по умолчанию, также показывается в быстром меню.
Есть и служебный виджет планировщика LAVD (sched_ext), он отключён по умолчанию.
Окна и оверлеи
| Модуль | Что делает |
|---|---|
| Launcher | Запуск приложений и глобальный поиск, закреплённые и недавние приложения |
| Меню приложений | Сетка всех приложений со своим порядком, папками и поиском |
| Док | Избранные приложения у края экрана (низ, верх, лево, право) |
| QuickCenter | Быстрое меню: заряд периферии, ползунки громкости и яркости, Wi-Fi, Bluetooth, «Не беспокоить», ночной свет, тёмный режим, плеер, уведомления |
| Notifications | Демон уведомлений (org.freedesktop.Notifications), «Не беспокоить» |
| OSD | Индикаторы громкости и яркости на экране |
| Calendar | Календарь-попап с интеграцией Evolution Data Server |
| Corners | Скруглённые углы экрана |
| Hotkeys | Оверлей со списком горячих клавиш niri |
Тема и внешний вид
Цветовая схема Material You создаётся из текущих обоев (утилитой matugen) и переключается вместе с системным светлым и тёмным режимом. Те же цвета подхватывает экран входа Seni.
Стили написаны на SCSS и компилируются на лету: поменяли файл в ~/.config/niti-vala/styles/, и оформление обновилось без пересборки.
Как настроить
- В мастере первой настройки: какие виджеты показать, порядок по зонам, тип и цвет панели, док и сетка приложений.
- В Tuner: страницы «Настройки панели», «Быстрое меню», «Меню питания», «Уведомления», «Поиск», «Макеты».
- В файлах: настройки лежат в
~/.config/niti-vala/в формате JSON. Панель, виджеты и окна читают их сами. - Профиль набора модулей (
minimal,balancedилиfull) влияет на то, какие модули загружаются. Это не профили питания системы.
Подробности и примеры файлов в документации.
Для разработчиков
Виджеты это плагины libpeas с простым контрактом: наследуйте Niti.Widget и верните корневой виджет GTK. Свой виджет можно написать на Vala, подключить к панели без пересборки и даже опубликовать через каталог расширений.







