RFC: Modernizing configuration management
These are some hand-wavy ideas for improving Weston's configurability.
Current situation:
- configuration is read only once at Weston start-up, and cannot be changed at runtime
-
weston.ini
uses a home-grown parser,weston_config
, that is not worthwhile extending
I would not limit us to be backward-compatible with current weston.ini
nor even use an INI format at all if better alternatives exist. I'd suggest a new Weston frontend with the new configuration tools. The current frontend can be left with the current weston.ini
to not break existing users.
Wishlist:
- ability to change configuration dynamically; read, modify, and write configuration files, so that dynamic changes can persist on next start-up
- use a library, so we do not need to develop or maintain the fundamentals
- complex data types, e.g. vectors/lists as values
Additionally, we would need an IPC for actually changing the configuration. If there is a library offering also that, e.g. via D-Bus, that would be cool. Then we could expose volatile debug settings too.
Not all settings would fit a generic configuration library, though, e.g. #341, unless the library offers testable transactions. This gets easily complicated, so perhaps we should keep the IPC separate from the config library. Some topics have prior art, like wlr-output-management for #341.
This is also orthogonal to alternative configuration sources like requested for in #865 which would replace parts of configuration rather than be an API to change and save it.