diff options
Diffstat (limited to 'sway')
-rw-r--r-- | sway/commands.c | 1 | ||||
-rw-r--r-- | sway/commands/workspace_layout.c | 21 | ||||
-rw-r--r-- | sway/meson.build | 1 |
3 files changed, 23 insertions, 0 deletions
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 <string.h> +#include <strings.h> +#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 <default|stacking|tabbed>'"); + } + 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', |