Start with defaults when configuration is invalid (#29)

Invalid configuration currently prevents login. Ferese now starts with built-in defaults and shows a notification when the shell is ready, leaving the file untouched. Loading and validation belong to the config module, while the theme module resolves appearance. Validation remains strict, and failed live reloads keep the active settings.

The native Morph regression checks the animated input region and idle frame scheduling while its backing surface stays allocated.

Validation: workspace and Python tests, formatting, Clippy, release build, and isolated Wayland startup/reload and panel-motion tests. Native CI includes the startup regression.

Related: #28.
This commit is contained in:
Samuel Onoja authored and GitHub committed 2026-10-12 13:18:50 +01:00
1 parent b31618b749
commit 7a7df0106c
14 files changed
+456 -87

No files matched your search

+4 -3
View File
@@ -68,9 +68,10 @@ appearance, wallpaper, motion, input, bindings, rules, layouts, displays,
and login items take effect live. If a reload is invalid, Ferese reports the error
and keeps the last working configuration.
When the shell starts, it loads your configuration or, if no file exists, uses
the defaults. An invalid file stops startup with an error message, leaving your
configuration untouched.
At login, Ferese loads your configuration or uses the built-in defaults if the
file is missing or invalid. For an invalid file, it shows a notification once
the desktop is ready and leaves the file untouched, so you can correct it to
match the current schema and reload your settings.
```sh
feresectl reload-config # reload with error feedback