summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2016-03-18 20:00:17 -0400
committerLibravatar Drew DeVault <sir@cmpwn.com>2016-03-18 20:00:17 -0400
commit91192e3c6535bcc1898657d553417f6c7ad4ad14 (patch)
treed429425faf15c08263e16c691aede6db74227b20
parentNew default wallpaper! (diff)
parentAdd config option workspace_layout (diff)
downloadsway-91192e3c6535bcc1898657d553417f6c7ad4ad14.tar.gz
sway-91192e3c6535bcc1898657d553417f6c7ad4ad14.tar.zst
sway-91192e3c6535bcc1898657d553417f6c7ad4ad14.zip
Merge pull request #522 from mikkeloscar/workspace-layout
Add config option workspace_layout
-rw-r--r--sway/commands.c20
-rw-r--r--sway/sway.5.txt5
2 files changed, 24 insertions, 1 deletions
diff --git a/sway/commands.c b/sway/commands.c
index ebb63691..38bfd68a 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -75,6 +75,7 @@ static sway_cmd cmd_splitv;
75static sway_cmd cmd_sticky; 75static sway_cmd cmd_sticky;
76static sway_cmd cmd_workspace; 76static sway_cmd cmd_workspace;
77static sway_cmd cmd_ws_auto_back_and_forth; 77static sway_cmd cmd_ws_auto_back_and_forth;
78static sway_cmd cmd_workspace_layout;
78 79
79static sway_cmd bar_cmd_binding_mode_indicator; 80static sway_cmd bar_cmd_binding_mode_indicator;
80static sway_cmd bar_cmd_bindsym; 81static sway_cmd bar_cmd_bindsym;
@@ -1982,6 +1983,24 @@ static struct cmd_results *cmd_workspace(int argc, char **argv) {
1982 return cmd_results_new(CMD_SUCCESS, NULL, NULL); 1983 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
1983} 1984}
1984 1985
1986static struct cmd_results *cmd_workspace_layout(int argc, char **argv) {
1987 struct cmd_results *error = NULL;
1988 if ((error = checkarg(argc, "workspace_layout", EXPECTED_EQUAL_TO, 1))) {
1989 return error;
1990 }
1991
1992 if (strcasecmp(argv[0], "default") == 0) {
1993 config->default_layout = L_NONE;
1994 } else if (strcasecmp(argv[0], "stacking") == 0) {
1995 config->default_layout = L_STACKED;
1996 } else if (strcasecmp(argv[0], "tabbed") == 0) {
1997 config->default_layout = L_TABBED;
1998 } else {
1999 return cmd_results_new(CMD_INVALID, "workspace_layout", "Expected 'workspace_layout <default|stacking|tabbed>'");
2000 }
2001 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
2002}
2003
1985static struct cmd_results *cmd_ws_auto_back_and_forth(int argc, char **argv) { 2004static struct cmd_results *cmd_ws_auto_back_and_forth(int argc, char **argv) {
1986 struct cmd_results *error = NULL; 2005 struct cmd_results *error = NULL;
1987 if ((error = checkarg(argc, "workspace_auto_back_and_forth", EXPECTED_EQUAL_TO, 1))) { 2006 if ((error = checkarg(argc, "workspace_auto_back_and_forth", EXPECTED_EQUAL_TO, 1))) {
@@ -2036,6 +2055,7 @@ static struct cmd_handler handlers[] = {
2036 { "sticky", cmd_sticky }, 2055 { "sticky", cmd_sticky },
2037 { "workspace", cmd_workspace }, 2056 { "workspace", cmd_workspace },
2038 { "workspace_auto_back_and_forth", cmd_ws_auto_back_and_forth }, 2057 { "workspace_auto_back_and_forth", cmd_ws_auto_back_and_forth },
2058 { "workspace_layout", cmd_workspace_layout },
2039}; 2059};
2040 2060
2041static struct cmd_results *bar_cmd_binding_mode_indicator(int argc, char **argv) { 2061static struct cmd_results *bar_cmd_binding_mode_indicator(int argc, char **argv) {
diff --git a/sway/sway.5.txt b/sway/sway.5.txt
index 4e73cd45..7a87bb44 100644
--- a/sway/sway.5.txt
+++ b/sway/sway.5.txt
@@ -15,7 +15,7 @@ A sway configuration file is a list of sway commands that are executed by sway
15on startup. These commands usually consist of setting your preferences and 15on startup. These commands usually consist of setting your preferences and
16setting key bindings. An example config is likely present in /etc/sway/config 16setting key bindings. An example config is likely present in /etc/sway/config
17for you to check out. 17for you to check out.
18 18
19Some of the commands can also or only be sent at runtime with **sway-msg**(1). 19Some of the commands can also or only be sent at runtime with **sway-msg**(1).
20 20
21Commands 21Commands
@@ -208,6 +208,9 @@ or triggered at runtime.
208 Specifies that the workspace named _name_ should appear on the specified 208 Specifies that the workspace named _name_ should appear on the specified
209 _output_. 209 _output_.
210 210
211**workspace_layout** <default|stacking|tabbed>::
212 Specifies the start layout for new workspaces.
213
211Criteria 214Criteria
212-------- 215--------
213 216