aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Fan <ianfan0@gmail.com>2018-12-11 16:27:39 +0000
committerIan Fan <ianfan0@gmail.com>2018-12-31 20:40:18 +0000
commitf33b5c5223a3eb8b63ff4361f43b82ad2104e84b (patch)
tree191bb88354f56ac4f3ccc4740ebad05c5d42bff5
parent2fd41fe9c85a866173fc2770ed7669871258bced (diff)
swaybar: do not create tray if hidden
-rw-r--r--include/swaybar/config.h1
-rw-r--r--sway/commands/bar/tray_output.c2
-rw-r--r--swaybar/bar.c4
-rw-r--r--swaybar/ipc.c1
4 files changed, 6 insertions, 2 deletions
diff --git a/include/swaybar/config.h b/include/swaybar/config.h
index def70d5b..1f6577bd 100644
--- a/include/swaybar/config.h
+++ b/include/swaybar/config.h
@@ -69,6 +69,7 @@ struct swaybar_config {
#if HAVE_TRAY
char *icon_theme;
char *tray_bindings[10]; // mouse buttons 0-9
+ bool tray_hidden;
list_t *tray_outputs; // char *
int tray_padding;
#endif
diff --git a/sway/commands/bar/tray_output.c b/sway/commands/bar/tray_output.c
index 19ecc5c1..a1169c20 100644
--- a/sway/commands/bar/tray_output.c
+++ b/sway/commands/bar/tray_output.c
@@ -31,8 +31,8 @@ struct cmd_results *bar_cmd_tray_output(int argc, char **argv) {
} else {
wlr_log(WLR_DEBUG, "Showing tray on output '%s' for bar: %s", argv[0],
config->current_bar->id);
- list_add(outputs, strdup(argv[0]));
}
+ list_add(outputs, strdup(argv[0]));
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
#else
diff --git a/swaybar/bar.c b/swaybar/bar.c
index 4fd9c488..7aed4dca 100644
--- a/swaybar/bar.c
+++ b/swaybar/bar.c
@@ -371,7 +371,9 @@ bool bar_setup(struct swaybar *bar, const char *socket_path) {
assert(pointer->cursor_surface);
#if HAVE_TRAY
- bar->tray = create_tray(bar);
+ if (!bar->config->tray_hidden) {
+ bar->tray = create_tray(bar);
+ }
#endif
if (bar->config->workspace_buttons) {
diff --git a/swaybar/ipc.c b/swaybar/ipc.c
index df0586bf..8e7a542e 100644
--- a/swaybar/ipc.c
+++ b/swaybar/ipc.c
@@ -293,6 +293,7 @@ static bool ipc_parse_config(
json_object *o = json_object_array_get_idx(tray_outputs, i);
list_add(config->tray_outputs, strdup(json_object_get_string(o)));
}
+ config->tray_hidden = strcmp(config->tray_outputs->items[0], "none") == 0;
}
if ((json_object_object_get_ex(bar_config, "tray_padding", &tray_padding))) {