From 5e1983660dddc40d60026cbd0daf96d880f24fb9 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 8 Oct 2018 22:23:35 +1000 Subject: [PATCH] Allow status_command to be disabled via IPC --- sway/commands/bar.c | 14 +++++++------- sway/commands/bar/status_command.c | 16 +++++++++++++--- sway/sway-bar.5.scd | 3 +++ 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/sway/commands/bar.c b/sway/commands/bar.c index f760888e4..03f4c5574 100644 --- a/sway/commands/bar.c +++ b/sway/commands/bar.c @@ -46,14 +46,14 @@ struct cmd_results *cmd_bar(int argc, char **argv) { return error; } - if (!config->reading) { - if (!find_handler(argv[0], bar_config_handlers, - sizeof(bar_config_handlers))) { - return cmd_results_new(CMD_FAILURE, "bar", - "Can only be used in config file."); + if (find_handler(argv[0], bar_config_handlers, + sizeof(bar_config_handlers))) { + if (config->reading) { + return config_subcommand(argv, argc, bar_config_handlers, + sizeof(bar_config_handlers)); } - return config_subcommand(argv, argc, bar_config_handlers, - sizeof(bar_config_handlers)); + return cmd_results_new(CMD_FAILURE, "bar", + "Can only be used in config file."); } if (argc > 1) { diff --git a/sway/commands/bar/status_command.c b/sway/commands/bar/status_command.c index 6f6f81a32..5ea225256 100644 --- a/sway/commands/bar/status_command.c +++ b/sway/commands/bar/status_command.c @@ -13,8 +13,18 @@ struct cmd_results *bar_cmd_status_command(int argc, char **argv) { "status_command", "No bar defined."); } free(config->current_bar->status_command); - config->current_bar->status_command = join_args(argv, argc); - wlr_log(WLR_DEBUG, "Feeding bar with status command: %s", - config->current_bar->status_command); + config->current_bar->status_command = NULL; + + char *new_command = join_args(argv, argc); + if (strcmp(new_command, "-") != 0) { + config->current_bar->status_command = new_command; + wlr_log(WLR_DEBUG, "Feeding bar with status command: %s", + config->current_bar->status_command); + } + + if (config->active && !config->validating) { + load_swaybars(); + } + return cmd_results_new(CMD_SUCCESS, NULL, NULL); } diff --git a/sway/sway-bar.5.scd b/sway/sway-bar.5.scd index 00b9386e4..8c7be8e77 100644 --- a/sway/sway-bar.5.scd +++ b/sway/sway-bar.5.scd @@ -17,6 +17,9 @@ Sway allows configuring swaybar in the sway configuration file. https://i3wm.org/docs/i3bar-protocol.html + If running this command via IPC, you can disable a running status command by + setting the command to a single dash: _swaybar bar bar-0 status\_command -_ + *pango\_markup* enabled|disabled Enables or disables pango markup for status lines. This has no effect on status lines using the i3bar JSON protocol.