use urgent_ws color in swaybar if binding_mode is undefined

This commit is contained in:
D.B 2016-11-02 17:09:34 +01:00
parent d3e55f88ec
commit 39ee0ec552
4 changed files with 30 additions and 6 deletions

View file

@ -163,6 +163,10 @@ struct bar_config {
char binding_mode_border[10];
char binding_mode_bg[10];
char binding_mode_text[10];
bool has_binding_mode_border;
bool has_binding_mode_bg;
bool has_binding_mode_text;
} colors;
};

View file

@ -57,14 +57,20 @@ struct cmd_results *bar_colors_cmd_binding_mode(int argc, char **argv) {
if ((error = add_color("binding_mode_border", config->current_bar->colors.binding_mode_border, argv[0]))) {
return error;
} else {
config->current_bar->colors.has_binding_mode_border = true;
}
if ((error = add_color("binding_mode_bg", config->current_bar->colors.binding_mode_bg, argv[1]))) {
return error;
} else {
config->current_bar->colors.has_binding_mode_bg = true;
}
if ((error = add_color("binding_mode_text", config->current_bar->colors.binding_mode_text, argv[2]))) {
return error;
} else {
config->current_bar->colors.has_binding_mode_text = true;
}
return cmd_results_new(CMD_SUCCESS, NULL, NULL);

View file

@ -1147,9 +1147,9 @@ struct bar_config *default_bar_config(void) {
strcpy(bar->colors.urgent_workspace_border, "#2f343aff");
strcpy(bar->colors.urgent_workspace_bg,"#900000ff");
strcpy(bar->colors.urgent_workspace_text, "#ffffffff");
strcpy(bar->colors.binding_mode_border, "#2f343aff");
strcpy(bar->colors.binding_mode_bg,"#900000ff");
strcpy(bar->colors.binding_mode_text, "#ffffffff");
bar->colors.has_binding_mode_border = false;
bar->colors.has_binding_mode_bg = false;
bar->colors.has_binding_mode_text = false;
list_add(config->bars, bar);

View file

@ -328,9 +328,23 @@ json_object *ipc_json_describe_bar_config(struct bar_config *bar) {
json_object_object_add(colors, "urgent_workspace_bg", json_object_new_string(bar->colors.urgent_workspace_bg));
json_object_object_add(colors, "urgent_workspace_text", json_object_new_string(bar->colors.urgent_workspace_text));
json_object_object_add(colors, "binding_mode_border", json_object_new_string(bar->colors.binding_mode_border));
json_object_object_add(colors, "binding_mode_bg", json_object_new_string(bar->colors.binding_mode_bg));
json_object_object_add(colors, "binding_mode_text", json_object_new_string(bar->colors.binding_mode_text));
if (bar->colors.has_binding_mode_border) {
json_object_object_add(colors, "binding_mode_border", json_object_new_string(bar->colors.binding_mode_border));
} else {
json_object_object_add(colors, "binding_mode_border", json_object_new_string(bar->colors.urgent_workspace_border));
}
if (bar->colors.has_binding_mode_bg) {
json_object_object_add(colors, "binding_mode_bg", json_object_new_string(bar->colors.binding_mode_bg));
} else {
json_object_object_add(colors, "binding_mode_bg", json_object_new_string(bar->colors.urgent_workspace_bg));
}
if (bar->colors.has_binding_mode_text) {
json_object_object_add(colors, "binding_mode_text", json_object_new_string(bar->colors.binding_mode_text));
} else {
json_object_object_add(colors, "binding_mode_text", json_object_new_string(bar->colors.urgent_workspace_text));
}
json_object_object_add(json, "colors", colors);