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;
}
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) {

View File

@ -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);
}

View File

@ -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.