Skip to content

OrbitFM v0.20.0-rc.2

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Nov 18:21
· 40 commits to main since this release

Noctalia и правила окон становятся целями установщика (ADR-0051): плагин и
оконные правила ставятся кнопкой на странице «Интеграции» той же командой, что
и остальные интеграции, — вместо двух команд noctalia msg и cp из README.
Целей 17. Схема status --json и events не меняется — остаётся 1; схема
квитанции тоже 1, поля аддитивные.

Добавлено

  • ADR-0051 и три новые цели orbitfm integration: noctalia (группа
    «Окружения»), niri и hyprland (новая группа «Правила окон»,
    TargetGroup::Windows); алиасы разбора hypr и hyprctl
  • src/integration/noctalia.rs — регистрация git-источника orbitfm
    (https://github.com/ModernByte/orbitfm) и включение виджета
    modernbyte/orbitfm фиксированным argv через CLI оболочки: файлов у цели нет,
    ничего не скачивается и не копируется. Перед установкой читаются
    plugins list и source list, чтобы не выдать за нашу работу то, что
    включал пользователь; снятие делает disable, убирает только наш источник и
    возвращает прежнюю включённость виджета
  • Цель niri — ~/.config/niri/cfg/orbitfm.kdl из wm-configs/ плюс ровно
    одна строка include "./cfg/orbitfm.kdl" в config.kdl: копия
    config.kdl.orbitfm.bak перед первой правкой, идемпотентность при
    переустановке, снятие убирает ровно свою целую строку. Это единственный
    чужой конфиг, который установщик правит (ADR-0042 §2, ADR-0051 §5)
  • Цель hyprland — ~/.config/hypr/orbitfm.conf и 14 фиксированных правил на
    текущий сеанс через hyprctl keyword windowrulev2 …; hyprland.conf не
    правится, готовую строку source = … показывает установщик и страница
    «Интеграции»
  • Квитанция схемы 1 дополнена аддитивными полями под #[serde(default)]:
    dirs[] (каталоги, созданные установщиком), lines[] (пары «файл + точная
    строка»), source_added и was_enabled; старые квитанции читаются без
    миграции
  • Строка «Правила окон» в группе заголовков страницы и заметка о ручных шагах
    цели в её строке; подпись группы — во всех 16 языках каталога i18n

Исправлено

  • Обнаружение цели больше не кормится собственным следом: снятие цели срезает
    только опустевшие каталоги, которые создал установщик, поэтому
    ~/.config/omarchy, ~/.local/share/gnome-shell и другие каталоги-обманки
    после integration uninstall не держат цель в состоянии «обнаружено»
    (следствие закрыто кодом, пустые каталоги на машине приёмки были убраны
    вручную в rc.1)
  • Отказ внешней оболочки не превращается в тихий успех: install noctalia
    валится на причине, а uninstall кладёт её в заметку расписки
  • Снятие niri не оставляет висячий include без слова: если строку добавили
    не мы (ручное подключение до установки), она остаётся в config.kdl, файл
    правил убирается, а uninstall и строка «Интеграции» сообщают, что строку
    нужно убрать или подключить к своему файлу — иначе niri не разберёт конфиг

Тесты

  • cargo test --locked — 670 зелёных (5 игнорируемых): разбор и алиасы новых
    целей, обнаружение по бинарнику и по каталогу оболочки, срез созданных
    каталогов, одна строка include с копией и полный возврат конфига niri,
    заметка об оставшейся чужой строке, цикл noctalia без файлов,
    фиксированный argv без shell-символов
  • cargo fmt --check, cargo clippy --all-targets -- -D warnings — чисто

Руководство пользователя — в вики проекта.