Override options from command line

Allow any configuration option to be overridden with -o/--override
'section.key=value' arguments, as suggested in #554

update completitions for override

slight refactoring to ease footclient support
This commit is contained in:
Ryan Farley 2021-06-11 04:40:08 -05:00
parent 7ada4c0ab4
commit f379ffb8ed
8 changed files with 184 additions and 89 deletions

View file

@ -54,6 +54,8 @@ struct config_mouse_binding {
};
typedef tll(struct config_mouse_binding) config_mouse_binding_list_t;
typedef tll(char *) config_override_t;
struct config_spawn_template {
char *raw_cmd;
char **argv;
@ -243,9 +245,12 @@ struct config {
user_notifications_t notifications;
};
bool config_override_apply(struct config *conf, config_override_t *overrides,
bool errors_are_fatal);
bool config_load(
struct config *conf, const char *path,
user_notifications_t *initial_user_notifications, bool errors_are_fatal);
user_notifications_t *initial_user_notifications,
config_override_t *overrides, bool errors_are_fatal);
void config_free(struct config conf);
bool config_font_parse(const char *pattern, struct config_font *font);