From d76729af22c9c87e7827d681b733e17fc9abfbb3 Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Mon, 28 May 2018 22:55:06 -0400 Subject: [PATCH] Implement config parser for workspace_layout --- sway/commands.c | 1 + sway/commands/workspace_layout.c | 21 +++++++++++++++++++++ sway/meson.build | 1 + 3 files changed, 23 insertions(+) create mode 100644 sway/commands/workspace_layout.c diff --git a/sway/commands.c b/sway/commands.c index b55ea58c..6f5113f8 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -169,6 +169,7 @@ static struct cmd_handler config_handlers[] = { { "default_orientation", cmd_default_orientation }, { "set", cmd_set }, { "swaybg_command", cmd_swaybg_command }, + { "workspace_layout", cmd_workspace_layout }, }; /* Runtime-only commands. Keep alphabetized */ diff --git a/sway/commands/workspace_layout.c b/sway/commands/workspace_layout.c new file mode 100644 index 00000000..ed4c0ee0 --- /dev/null +++ b/sway/commands/workspace_layout.c @@ -0,0 +1,21 @@ +#include +#include +#include "sway/commands.h" + +struct cmd_results *cmd_workspace_layout(int argc, char **argv) { + struct cmd_results *error = NULL; + if ((error = checkarg(argc, "workspace_layout", EXPECTED_EQUAL_TO, 1))) { + return error; + } + if (strcasecmp(argv[0], "default") == 0) { + config->default_layout = L_NONE; + } else if (strcasecmp(argv[0], "stacking") == 0) { + config->default_layout = L_STACKED; + } else if (strcasecmp(argv[0], "tabbed") == 0) { + config->default_layout = L_TABBED; + } else { + return cmd_results_new(CMD_INVALID, "workspace_layout", + "Expected 'workspace_layout '"); + } + return cmd_results_new(CMD_SUCCESS, NULL, NULL); +} diff --git a/sway/meson.build b/sway/meson.build index e5878b9e..68675f67 100644 --- a/sway/meson.build +++ b/sway/meson.build @@ -69,6 +69,7 @@ sway_sources = files( 'commands/title_format.c', 'commands/unmark.c', 'commands/workspace.c', + 'commands/workspace_layout.c', 'commands/ws_auto_back_and_forth.c', 'commands/bar/activate_button.c',