summaryrefslogtreecommitdiff
path: root/swaybar/config.c
diff options
context:
space:
mode:
authorIan Fan <[email protected]>2018-10-12 20:32:48 +0100
committerIan Fan <[email protected]>2018-10-14 13:33:12 +0100
commitbcc61e5147fb57a3b4bfb9a2a33065a0cf6da67b (patch)
tree873a09eca473242c15299ea1053966e9d163f6c6 /swaybar/config.c
parent55ca16f2d83f4d7e14635ac4de3eb67ee2a0787e (diff)
swaybar: handle mode/hidden_state changes
As well as adding the hidden_state property to the bar config struct, this commit handles barconfig_update events when the mode or hidden_state changes, and uses a new function determine_bar_visibility to hide or show the bar as required, using, respectively, destroy_layer_surface, which is also newly added, and add_layer_surface, which has been changed to allow dynamically adding the surface.
Diffstat (limited to 'swaybar/config.c')
-rw-r--r--swaybar/config.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/swaybar/config.c b/swaybar/config.c
index 09d40c24..eafb0b69 100644
--- a/swaybar/config.c
+++ b/swaybar/config.c
@@ -30,7 +30,8 @@ struct swaybar_config *init_config(void) {
config->pango_markup = false;
config->position = parse_position("bottom");
config->font = strdup("monospace 10");
- config->mode = NULL;
+ config->mode = strdup("dock");
+ config->hidden_state = strdup("hide");
config->sep_symbol = NULL;
config->strip_workspace_numbers = false;
config->binding_mode_indicator = true;
@@ -84,6 +85,7 @@ void free_config(struct swaybar_config *config) {
free(config->status_command);
free(config->font);
free(config->mode);
+ free(config->hidden_state);
free(config->sep_symbol);
for (int i = 0; i < config->bindings->length; i++) {
struct swaybar_binding *binding = config->bindings->items[i];