Merge pull request #3083 from c-edw/feature/StripWorkspaceName

Implement strip_workspace_name.
This commit is contained in:
emersion 2018-11-19 17:56:18 +01:00 committed by GitHub
commit bf7af9c690
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 88 additions and 32 deletions

View file

@ -25,6 +25,7 @@ static struct cmd_handler bar_handlers[] = {
{ "secondary_button", bar_cmd_secondary_button },
{ "separator_symbol", bar_cmd_separator_symbol },
{ "status_command", bar_cmd_status_command },
{ "strip_workspace_name", bar_cmd_strip_workspace_name },
{ "strip_workspace_numbers", bar_cmd_strip_workspace_numbers },
{ "tray_output", bar_cmd_tray_output },
{ "tray_padding", bar_cmd_tray_padding },

View file

@ -0,0 +1,32 @@
#include <string.h>
#include <strings.h>
#include "sway/commands.h"
#include "log.h"
#include "util.h"
struct cmd_results *bar_cmd_strip_workspace_name(int argc, char **argv) {
struct cmd_results *error = NULL;
if ((error = checkarg(argc,
"strip_workspace_name", EXPECTED_EQUAL_TO, 1))) {
return error;
}
if (!config->current_bar) {
return cmd_results_new(CMD_FAILURE,
"strip_workspace_name", "No bar defined.");
}
config->current_bar->strip_workspace_name =
parse_boolean(argv[0], config->current_bar->strip_workspace_name);
if (config->current_bar->strip_workspace_name) {
config->current_bar->strip_workspace_numbers = false;
wlr_log(WLR_DEBUG, "Stripping workspace name on bar: %s",
config->current_bar->id);
} else {
wlr_log(WLR_DEBUG, "Enabling workspace name on bar: %s",
config->current_bar->id);
}
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
}

View file

@ -2,6 +2,7 @@
#include <strings.h>
#include "sway/commands.h"
#include "log.h"
#include "util.h"
struct cmd_results *bar_cmd_strip_workspace_numbers(int argc, char **argv) {
struct cmd_results *error = NULL;
@ -13,17 +14,19 @@ struct cmd_results *bar_cmd_strip_workspace_numbers(int argc, char **argv) {
return cmd_results_new(CMD_FAILURE,
"strip_workspace_numbers", "No bar defined.");
}
if (strcasecmp("yes", argv[0]) == 0) {
config->current_bar->strip_workspace_numbers = true;
config->current_bar->strip_workspace_numbers =
parse_boolean(argv[0], config->current_bar->strip_workspace_numbers);
if (config->current_bar->strip_workspace_numbers) {
config->current_bar->strip_workspace_name = false;
wlr_log(WLR_DEBUG, "Stripping workspace numbers on bar: %s",
config->current_bar->id);
} else if (strcasecmp("no", argv[0]) == 0) {
config->current_bar->strip_workspace_numbers = false;
} else {
wlr_log(WLR_DEBUG, "Enabling workspace numbers on bar: %s",
config->current_bar->id);
} else {
return cmd_results_new(CMD_INVALID,
"strip_workspace_numbers", "Invalid value %s", argv[0]);
}
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
}