Prevents from generating header files that are not used for a specific build as
well as excluding unnecessary object files. The `clean` target automatically
assumes all features being enabled to clean up all potential files.
Configuration and autostart script are checked for permissions during startup.
Also the order in which the configuration is loaded.
* explicit configuration overrides all others and stops if it can not be used
* otherwise fallback to `XDG_CONFIG_HOME`
* otherwise use default configuration
Options should also be parsed and handled before the backend starts up.
We can reduce the amount of code running with privileges to the few calls that
are needed to initialize the `wlroots` backend. These calls are now part of
`hikari_server_prepare_privileged`. After this everything is running with the
users privileges again.
This patch reworks how `hikari` gets configured and provides a default
configuration as well as means to incorporate this into the binary.
This deprecated the `ETC_PREFIX` configuration during make and makes it reuse
`PREFIX`.
A default terminal is now specified via the `TERMINAL` environment variable.