Allow status_command to be disabled via IPC

This commit is contained in:
Ryan Dwyer 2018-10-08 22:23:35 +10:00
parent 26bebb9266
commit 5e1983660d
3 changed files with 23 additions and 10 deletions

View File

@ -46,14 +46,14 @@ struct cmd_results *cmd_bar(int argc, char **argv) {
return error; return error;
} }
if (!config->reading) { if (find_handler(argv[0], bar_config_handlers,
if (!find_handler(argv[0], bar_config_handlers, sizeof(bar_config_handlers))) {
sizeof(bar_config_handlers))) { if (config->reading) {
return cmd_results_new(CMD_FAILURE, "bar", return config_subcommand(argv, argc, bar_config_handlers,
"Can only be used in config file."); sizeof(bar_config_handlers));
} }
return config_subcommand(argv, argc, bar_config_handlers, return cmd_results_new(CMD_FAILURE, "bar",
sizeof(bar_config_handlers)); "Can only be used in config file.");
} }
if (argc > 1) { if (argc > 1) {

View File

@ -13,8 +13,18 @@ struct cmd_results *bar_cmd_status_command(int argc, char **argv) {
"status_command", "No bar defined."); "status_command", "No bar defined.");
} }
free(config->current_bar->status_command); free(config->current_bar->status_command);
config->current_bar->status_command = join_args(argv, argc); config->current_bar->status_command = NULL;
wlr_log(WLR_DEBUG, "Feeding bar with status command: %s",
config->current_bar->status_command); 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); return cmd_results_new(CMD_SUCCESS, NULL, NULL);
} }

View File

@ -17,6 +17,9 @@ Sway allows configuring swaybar in the sway configuration file.
https://i3wm.org/docs/i3bar-protocol.html 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 *pango\_markup* enabled|disabled
Enables or disables pango markup for status lines. This has no effect on Enables or disables pango markup for status lines. This has no effect on
status lines using the i3bar JSON protocol. status lines using the i3bar JSON protocol.