From be94f90c94acd80c37a3895c8df70c89cd5c6672 Mon Sep 17 00:00:00 2001 From: Zedhugh Chen Date: Fri, 15 Aug 2025 11:00:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A2=9C=E8=89=B2=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.c | 50 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 9 deletions(-) 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) {