diff --git a/sway/commands/bar.c b/sway/commands/bar.c index f760888e..03f4c557 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 6f6f81a3..5ea22525 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 00b9386e..8c7be8e7 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.