Introduce a config directive 'binding_mode' in the 'bar' config, pass it through the IPC and parse it in i3bar.

This commit is contained in:
Ingo Bürk
2015-05-31 16:07:23 +02:00
parent 8029ff09d7
commit 9b691bcca2
9 changed files with 40 additions and 1 deletions

View File

@ -191,6 +191,9 @@ static int config_string_cb(void *params_, const unsigned char *val, size_t _len
COLOR(urgent_workspace_border, urgent_ws_border);
COLOR(urgent_workspace_bg, urgent_ws_bg);
COLOR(urgent_workspace_text, urgent_ws_fg);
COLOR(binding_mode_border, binding_mode_border);
COLOR(binding_mode_bg, binding_mode_bg);
COLOR(binding_mode_text, binding_mode_fg);
printf("got unexpected string %.*s for cur_key = %s\n", len, val, cur_key);
@ -286,5 +289,8 @@ void free_colors(struct xcb_color_strings_t *colors) {
FREE_COLOR(focus_ws_fg);
FREE_COLOR(focus_ws_bg);
FREE_COLOR(focus_ws_border);
FREE_COLOR(binding_mode_fg);
FREE_COLOR(binding_mode_bg);
FREE_COLOR(binding_mode_border);
#undef FREE_COLOR
}

View File

@ -106,6 +106,9 @@ struct xcb_colors_t {
uint32_t focus_ws_bg;
uint32_t focus_ws_fg;
uint32_t focus_ws_border;
uint32_t binding_mode_bg;
uint32_t binding_mode_fg;
uint32_t binding_mode_border;
};
struct xcb_colors_t colors;
@ -374,6 +377,18 @@ void init_colors(const struct xcb_color_strings_t *new_colors) {
PARSE_COLOR(focus_ws_border, "#4c7899");
#undef PARSE_COLOR
#define PARSE_COLOR_FALLBACK(name, fallback) \
do { \
colors.name = new_colors->name ? get_colorpixel(new_colors->name) : colors.fallback; \
} while (0)
/* For the binding mode indicator colors, we don't hardcode a default.
* Instead, we fall back to urgent_ws_* colors. */
PARSE_COLOR_FALLBACK(binding_mode_fg, urgent_ws_fg);
PARSE_COLOR_FALLBACK(binding_mode_bg, urgent_ws_bg);
PARSE_COLOR_FALLBACK(binding_mode_border, urgent_ws_border);
#undef PARSE_COLOR_FALLBACK
init_tray_colors();
xcb_flush(xcb_connection);
}