diff --git a/src/main.c b/src/main.c index 3904811..49039ac 100644 --- a/src/main.c +++ b/src/main.c @@ -225,16 +225,48 @@ void free_wallpaper_config(wallpaper_config_t *wallpaper_config) { void init_color_set(void) { color_set = ecalloc(1, sizeof(color_set_t)); + char *bar_background = NULL; + char *tag = NULL; + char *active_tag = NULL; + char *layout = NULL; + char *client_name = NULL; + char *active_client_name = NULL; + char *status = NULL; + char *border = NULL; + char *active_border = NULL; - parse_color(bar_bg, &color_set->bar_bg); - parse_color(tag_color, &color_set->tag_color); - parse_color(active_tag_color, &color_set->active_tag_color); - parse_color(layout_color, &color_set->layout_color); - parse_color(client_name_color, &color_set->client_name_color); - parse_color(active_client_name_color, &color_set->active_client_name_color); - parse_color(status_color, &color_set->status_color); - parse_color(border_color, &color_set->border_color); - parse_color(active_border_color, &color_set->active_border_color); + get_xresource_string("zswm.color.bar_bg", &bar_background, bar_bg); + get_xresource_string("zswm.color.tag", &tag, tag_color); + get_xresource_string("zswm.color.active_tag", &active_tag, active_tag_color); + get_xresource_string("zswm.color.layout", &layout, layout_color); + get_xresource_string("zswm.color.client_name", &client_name, + client_name_color); + get_xresource_string("zswm.color.active_client_name", &active_client_name, + active_client_name_color); + get_xresource_string("zswm.color.status", &status, status_color); + get_xresource_string("zswm.color.border", &border, border_color); + get_xresource_string("zswm.color.active_border", &active_border, + active_border_color); + + parse_color(bar_background, &color_set->bar_bg); + parse_color(tag, &color_set->tag_color); + parse_color(active_tag, &color_set->active_tag_color); + parse_color(layout, &color_set->layout_color); + parse_color(client_name, &color_set->client_name_color); + parse_color(active_client_name, &color_set->active_client_name_color); + parse_color(status, &color_set->status_color); + parse_color(border, &color_set->border_color); + parse_color(active_border, &color_set->active_border_color); + + free(bar_background); + free(tag); + free(active_tag); + free(layout); + free(client_name); + free(active_client_name); + free(status); + free(border); + free(active_border); } void parse_color(const char *hex, color_t *color) {