commit 39ee0ec552c05c7ab5031982a1104a0bae1910d3
parent d3e55f88ecaacf7c7017357e83f30f91ffc02bb0
Author: D.B <thejan.2009@gmail.com>
Date: Wed, 2 Nov 2016 17:09:34 +0100
use urgent_ws color in swaybar if binding_mode is undefined
Diffstat:
4 files changed, 30 insertions(+), 6 deletions(-)
diff --git a/include/sway/config.h b/include/sway/config.h
@@ -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;
};
diff --git a/sway/commands/bar/colors.c b/sway/commands/bar/colors.c
@@ -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);
diff --git a/sway/config.c b/sway/config.c
@@ -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);
diff --git a/sway/ipc-json.c b/sway/ipc-json.c
@@ -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);