Repository navigation
OrbitFM v0.20.0-rc.2
Pre-release
Pre-release
·
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) - Отказ внешней оболочки не превращается в тихий успех:
installnoctalia
валится на причине, а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— чисто
Руководство пользователя — в вики проекта.