aboutsummaryrefslogtreecommitdiff
path: root/swaybar/ipc.c
diff options
context:
space:
mode:
Diffstat (limited to 'swaybar/ipc.c')
-rw-r--r--swaybar/ipc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/swaybar/ipc.c b/swaybar/ipc.c
index 84046ab5..26b7eca6 100644
--- a/swaybar/ipc.c
+++ b/swaybar/ipc.c
@@ -356,8 +356,12 @@ bool ipc_initialize(struct swaybar *bar) {
free(res);
ipc_get_outputs(bar);
- const char *subscribe = "[ \"workspace\", \"mode\" ]";
- len = strlen(subscribe);
+ struct swaybar_config *config = bar->config;
+ char subscribe[128]; // suitably large buffer
+ len = snprintf(subscribe, 128,
+ "[ \"barconfig_update\" %s %s ]",
+ config->binding_mode_indicator ? ", \"mode\"" : "",
+ config->workspace_buttons ? ", \"workspace\"" : "");
free(ipc_single_command(bar->ipc_event_socketfd,
IPC_SUBSCRIBE, subscribe, &len));
return true;