diff --git a/sway/commands.c b/sway/commands.c index b55ea58c8..6f5113f81 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 000000000..ed4c0ee09 --- /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 e5878b9ec..68675f67d 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',