Git

Рабочий стол Niti

Сам по себе niri это только композитор. Панель, лаунчер, быстрое меню, уведомления и экранные индикаторы делает Niti: полноценный shell для niri (по роли это то же, что GNOME Shell для GNOME). Niti написан на Vala и GTK4 с libadwaita, создан только для ALT Atomic и тесно связан с её экосистемой. Исходный код: NitiVala.

Рабочий стол ALT Atomic Niri целиком

Как это выглядит#

Меню приложений:

Меню приложений

Док с избранными приложениями:

Док

Быстрое меню с уведомлениями:

Быстрое меню

Уведомление на рабочем столе:

Уведомление

Виджет обновления системы:

Виджет обновления

Системный монитор:

Системный монитор

Из чего состоит#

  • Панель с виджетами по трём зонам: слева, по центру, справа.
  • Лаунчер (Mod+D) и сетка всех приложений (Mod+G).
  • Быстрое меню: сеть, Bluetooth, звук, яркость, «Не беспокоить» и другие плитки.
  • Уведомления и экранные индикаторы громкости и яркости.
  • Календарь с синхронизацией онлайн-аккаунтов.
  • Док с избранными приложениями.
  • Меню выключения (Mod+Shift+BackSpace).

Niti запускается пользовательской службой niti.service. Состояние службы смотрится так:

systemctl --user status niti.service

Окна Niti из командной строки#

Часть окон Niti можно открыть командой. Так же устроены сочетания клавиш в binds.kdl:

niti --toggle-window Launcher niti --toggle-window AppGrid niti --toggle-window Hotkeys niti --open-window QuickCenterPower

Глобальный поиск#

Лаунчер (Mod+D) это глобальный поиск. В поле видна раскладка клавиатуры (например RU), Enter запускает выбранный результат. Результаты появляются по мере набора, совпадающая часть выделена жирным.

Глобальный поиск на рабочем столе

Каждый источник показывается отдельным блоком:

ИсточникЧто находит
ПриложенияУстановленные приложения рядом значков, подходящее выделено
ТюнерСтраницы настроек Tuner с описанием: набрали слово, получили нужную страницу
Atomic BoosterРазделы и действия системы
КалькуляторВычисления прямо в поле поиска (поставщик GNOME Calculator)
СправкаПодсказки по системе
Системные действияВыключение, перезагрузка и подобные команды
Внешние поставщикиПоставщики поиска в стиле GNOME

Результаты глобального поиска

Пустое поле поиска с подсказкой «Поиск приложений, файлов и настроек»:

Поле поиска

Настройка поиска#

Порядок и состав источников хранятся в ~/.config/niti-vala/search.json:

{ "app_search": true, "external_providers": true, "providers": [], "locations": { "recursive": [], "single": [], "bookmarks": [] } }
  • app_search включает поиск приложений;
  • external_providers включает внешние поставщики поиска;
  • providers задаёт включённые источники и порядок;
  • locations описывает, где искать файлы: папки с обходом вложенных (recursive), отдельные папки (single) и закладки (bookmarks).

Удобнее настраивать это в Tuner на странице «Поиск». Если расположения не заданы, поиск файлов ничего не показывает.

Режим ИИ#

Отдельное окно «Спросить Google AI» открывается по Mod+Shift+Space. Для него нужен интернет.

Режим ИИ: Спросить Google AI

Виджеты панели#

Каждый виджет это отдельный модуль libpeas. Набор виджетов в образе:

ВиджетЧто показывает
workspacesРабочие столы
tasksЗапущенные окна и закреплённые приложения
clockЧасы, дата, календарь
mediaТекущий трек (бегущая строка)
systeminfoСводка по системе
vitalsСистемный монитор: процессор, память, температуры
disksПодключённые диски
powerКнопка питания
batteryЗаряд батареи
caffeineЗапрет засыпания экрана
keyboardТекущая раскладка
trayЗначки приложений в трее
quickbuttonКнопка быстрого меню
recordingЗапись экрана
layoutsМакеты окон
hotkeysСписок горячих клавиш

Какие виджеты показаны и в каком порядке, настраивается в мастере ReadySet и в Tuner (страницы «Настройки панели» и «Быстрое меню»). Написать свой виджет можно по этому руководству.

Где лежат настройки#

Настройки Niti хранятся в ~/.config/niti-vala/:

ФайлЧто в нём
panel.jsonРежим, высота и цвет панели, виджеты по зонам left, center, right
profile.jsonПрофиль набора модулей (extensions-profile)
widgets/<модуль>/config.jsonНастройки конкретного виджета
dock.json, appgrid.json, calendar.json, notifications.json, search.jsonНастройки соответствующих окон

Вручную править эти файлы можно, но удобнее делать это в Tuner. Многие виджеты следят за своим файлом и подхватывают изменения сразу.

Пример зон из panel.json:

{ "panel": { "mode": "solid", "height": 34, "color": "standard", "layer": "top" }, "zones": { "left": ["niti-workspaces", "niti-tasks"], "center": ["niti-clock", "niti-media"], "right": ["niti-tray", "niti-quickbutton"] } }

Профиль набора модулей#

В profile.json хранится ключ extensions-profile с одним из значений minimal, balanced или full. По умолчанию стоит balanced:

{"extensions-profile": "balanced"}

Профиль влияет на набор загружаемых модулей. Точный состав каждого профиля в документации пока не описан. Это не профили питания системы (performance, balanced, power-saver): они переключаются в быстром меню.

Любой модуль можно отключить флагом {"enabled": false} в его настройках.

Важно. Niti рассчитан только на ALT Atomic. Поддержка других дистрибутивов не планируется.