aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sway/commands.h4
-rw-r--r--sway/commands.c2
-rw-r--r--sway/commands/default_border.c44
-rw-r--r--sway/commands/default_floating_border.c45
-rw-r--r--sway/commands/new_float.c44
-rw-r--r--sway/commands/new_window.c44
-rw-r--r--sway/sway.5.txt20
7 files changed, 114 insertions, 89 deletions
diff --git a/include/sway/commands.h b/include/sway/commands.h
index 3ab8d5af..511bee4d 100644
--- a/include/sway/commands.h
+++ b/include/sway/commands.h
@@ -12,7 +12,7 @@ enum cmd_status {
12 CMD_SUCCESS, /**< The command was successful */ 12 CMD_SUCCESS, /**< The command was successful */
13 CMD_FAILURE, /**< The command resulted in an error */ 13 CMD_FAILURE, /**< The command resulted in an error */
14 CMD_INVALID, /**< Unknown command or parser error */ 14 CMD_INVALID, /**< Unknown command or parser error */
15 CMD_DEFER, /**< Command execution deferred */ 15 CMD_DEFER, /**< Command execution deferred */
16 // Config Blocks 16 // Config Blocks
17 CMD_BLOCK_END, 17 CMD_BLOCK_END,
18 CMD_BLOCK_MODE, 18 CMD_BLOCK_MODE,
@@ -102,6 +102,8 @@ sway_cmd cmd_client_placeholder;
102sway_cmd cmd_client_background; 102sway_cmd cmd_client_background;
103sway_cmd cmd_commands; 103sway_cmd cmd_commands;
104sway_cmd cmd_debuglog; 104sway_cmd cmd_debuglog;
105sway_cmd cmd_default_border;
106sway_cmd cmd_default_floating_border;
105sway_cmd cmd_exec; 107sway_cmd cmd_exec;
106sway_cmd cmd_exec_always; 108sway_cmd cmd_exec_always;
107sway_cmd cmd_exit; 109sway_cmd cmd_exit;
diff --git a/sway/commands.c b/sway/commands.c
index dbb34705..c330ebee 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -165,6 +165,8 @@ static struct cmd_handler handlers[] = {
165 { "client.urgent", cmd_client_urgent }, 165 { "client.urgent", cmd_client_urgent },
166 { "commands", cmd_commands }, 166 { "commands", cmd_commands },
167 { "debuglog", cmd_debuglog }, 167 { "debuglog", cmd_debuglog },
168 { "default_border", cmd_default_border },
169 { "default_floating_border", cmd_default_floating_border },
168 { "default_orientation", cmd_orientation }, 170 { "default_orientation", cmd_orientation },
169 { "exec", cmd_exec }, 171 { "exec", cmd_exec },
170 { "exec_always", cmd_exec_always }, 172 { "exec_always", cmd_exec_always },
diff --git a/sway/commands/default_border.c b/sway/commands/default_border.c
new file mode 100644
index 00000000..8fbe8d19
--- /dev/null
+++ b/sway/commands/default_border.c
@@ -0,0 +1,44 @@
1#include <errno.h>
2#include <string.h>
3#include <strings.h>
4#include "sway/commands.h"
5#include "sway/container.h"
6
7struct cmd_results *cmd_default_border(int argc, char **argv) {
8 struct cmd_results *error = NULL;
9 if ((error = checkarg(argc, "default_border", EXPECTED_AT_LEAST, 1))) {
10 return error;
11 }
12
13 if (argc > 2) {
14 return cmd_results_new(CMD_INVALID, "default_border",
15 "Expected 'default_border <normal|none|pixel> [<n>]");
16 }
17
18 enum swayc_border_types border = config->border;
19 int thickness = config->border_thickness;
20
21 if (strcasecmp(argv[0], "none") == 0) {
22 border = B_NONE;
23 } else if (strcasecmp(argv[0], "normal") == 0) {
24 border = B_NORMAL;
25 } else if (strcasecmp(argv[0], "pixel") == 0) {
26 border = B_PIXEL;
27 } else {
28 return cmd_results_new(CMD_INVALID, "default_border",
29 "Expected 'default_border <normal|none|pixel> [<n>]");
30 }
31
32 if (argc == 2 && (border == B_NORMAL || border == B_PIXEL)) {
33 thickness = (int)strtol(argv[1], NULL, 10);
34 if (errno == ERANGE || thickness < 0) {
35 errno = 0;
36 return cmd_results_new(CMD_INVALID, "default_border", "Number is out out of range.");
37 }
38 }
39
40 config->border = border;
41 config->border_thickness = thickness;
42
43 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
44}
diff --git a/sway/commands/default_floating_border.c b/sway/commands/default_floating_border.c
new file mode 100644
index 00000000..fb48c1c0
--- /dev/null
+++ b/sway/commands/default_floating_border.c
@@ -0,0 +1,45 @@
1#include <errno.h>
2#include <string.h>
3#include <strings.h>
4#include "sway/commands.h"
5#include "sway/container.h"
6
7struct cmd_results *cmd_default_floating_border(int argc, char **argv) {
8 struct cmd_results *error = NULL;
9 if ((error = checkarg(argc, "default_floating_border", EXPECTED_AT_LEAST, 1))) {
10 return error;
11 }
12
13 if (argc > 2) {
14 return cmd_results_new(CMD_INVALID, "default_floating_border",
15 "Expected 'default_floating_border <normal|none|pixel> [<n>]");
16 }
17
18 enum swayc_border_types border = config->floating_border;
19 int thickness = config->floating_border_thickness;
20
21 if (strcasecmp(argv[0], "none") == 0) {
22 border = B_NONE;
23 } else if (strcasecmp(argv[0], "normal") == 0) {
24 border = B_NORMAL;
25 } else if (strcasecmp(argv[0], "pixel") == 0) {
26 border = B_PIXEL;
27 } else {
28 return cmd_results_new(CMD_INVALID, "default_floating_border",
29 "Expected 'default_floating_border <normal|none|pixel> [<n>]");
30 }
31
32 if (argc == 2 && (border == B_NORMAL || border == B_PIXEL)) {
33 thickness = (int)strtol(argv[1], NULL, 10);
34 if (errno == ERANGE || thickness < 0) {
35 errno = 0;
36 return cmd_results_new(CMD_INVALID, "default_floating_border",
37 "Number is out out of range.");
38 }
39 }
40
41 config->floating_border = border;
42 config->floating_border_thickness = thickness;
43
44 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
45}
diff --git a/sway/commands/new_float.c b/sway/commands/new_float.c
index 432af436..d0f96093 100644
--- a/sway/commands/new_float.c
+++ b/sway/commands/new_float.c
@@ -1,44 +1,8 @@
1#include <errno.h> 1#include "log.h"
2#include <string.h>
3#include <strings.h>
4#include "sway/commands.h" 2#include "sway/commands.h"
5#include "sway/container.h"
6 3
7struct cmd_results *cmd_new_float(int argc, char **argv) { 4struct cmd_results *cmd_new_float(int argc, char **argv) {
8 struct cmd_results *error = NULL; 5 sway_log(L_INFO, "`new_float` is deprecated and will be removed in the future. "
9 if ((error = checkarg(argc, "new_float", EXPECTED_AT_LEAST, 1))) { 6 "Please use `default_floating_border` instead.");
10 return error; 7 return cmd_default_floating_border(argc, argv);
11 }
12
13 if (argc > 2) {
14 return cmd_results_new(CMD_INVALID, "new_float",
15 "Expected 'new_float <normal|none|pixel> [<n>]");
16 }
17
18 enum swayc_border_types border = config->floating_border;
19 int thickness = config->floating_border_thickness;
20
21 if (strcasecmp(argv[0], "none") == 0) {
22 border = B_NONE;
23 } else if (strcasecmp(argv[0], "normal") == 0) {
24 border = B_NORMAL;
25 } else if (strcasecmp(argv[0], "pixel") == 0) {
26 border = B_PIXEL;
27 } else {
28 return cmd_results_new(CMD_INVALID, "new_float",
29 "Expected 'border <normal|none|pixel>");
30 }
31
32 if (argc == 2 && (border == B_NORMAL || border == B_PIXEL)) {
33 thickness = (int)strtol(argv[1], NULL, 10);
34 if (errno == ERANGE || thickness < 0) {
35 errno = 0;
36 return cmd_results_new(CMD_INVALID, "new_float", "Number is out out of range.");
37 }
38 }
39
40 config->floating_border = border;
41 config->floating_border_thickness = thickness;
42
43 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
44} 8}
diff --git a/sway/commands/new_window.c b/sway/commands/new_window.c
index 722d7d75..574a4527 100644
--- a/sway/commands/new_window.c
+++ b/sway/commands/new_window.c
@@ -1,44 +1,8 @@
1#include <errno.h> 1#include "log.h"
2#include <string.h>
3#include <strings.h>
4#include "sway/commands.h" 2#include "sway/commands.h"
5#include "sway/container.h"
6 3
7struct cmd_results *cmd_new_window(int argc, char **argv) { 4struct cmd_results *cmd_new_window(int argc, char **argv) {
8 struct cmd_results *error = NULL; 5 sway_log(L_INFO, "`new_window` is deprecated and will be removed in the future. "
9 if ((error = checkarg(argc, "new_window", EXPECTED_AT_LEAST, 1))) { 6 "Please use `default_border` instead.");
10 return error; 7 return cmd_default_border(argc, argv);
11 }
12
13 if (argc > 2) {
14 return cmd_results_new(CMD_INVALID, "new_window",
15 "Expected 'new_window <normal|none|pixel> [<n>]");
16 }
17
18 enum swayc_border_types border = config->border;
19 int thickness = config->border_thickness;
20
21 if (strcasecmp(argv[0], "none") == 0) {
22 border = B_NONE;
23 } else if (strcasecmp(argv[0], "normal") == 0) {
24 border = B_NORMAL;
25 } else if (strcasecmp(argv[0], "pixel") == 0) {
26 border = B_PIXEL;
27 } else {
28 return cmd_results_new(CMD_INVALID, "new_window",
29 "Expected 'border <normal|none|pixel>");
30 }
31
32 if (argc == 2 && (border == B_NORMAL || border == B_PIXEL)) {
33 thickness = (int)strtol(argv[1], NULL, 10);
34 if (errno == ERANGE || thickness < 0) {
35 errno = 0;
36 return cmd_results_new(CMD_INVALID, "new_window", "Number is out out of range.");
37 }
38 }
39
40 config->border = border;
41 config->border_thickness = thickness;
42
43 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
44} 8}
diff --git a/sway/sway.5.txt b/sway/sway.5.txt
index 9c60af71..5d143d97 100644
--- a/sway/sway.5.txt
+++ b/sway/sway.5.txt
@@ -227,6 +227,18 @@ The default colors are:
227 Enables, disables or toggles debug logging. The toggle argument cannot be used 227 Enables, disables or toggles debug logging. The toggle argument cannot be used
228 in the configuration file. 228 in the configuration file.
229 229
230**default_border** <normal|none|pixel> [<n>]::
231 Set default border style for new windows. This command was previously called
232 **new_window**. While **new_window** still works, it is considered deprecated
233 and support for it will be removed in the future.
234
235**default_floating_border** <normal|none|pixel> [<n>]::
236 Set default border style for new floating windows. This only applies to
237 windows that are spawned in floating mode, not windows that become floating
238 after the fact. This command was previously called **new_float**. While
239 **new_float** still works, it is considered deprecated and support for it will
240 be removed in the future.
241
230**exec** <shell command>:: 242**exec** <shell command>::
231 Executes _shell command_ with sh. 243 Executes _shell command_ with sh.
232 244
@@ -313,14 +325,6 @@ The default colors are:
313 When _output_: place mouse at center of newly focused window when changing 325 When _output_: place mouse at center of newly focused window when changing
314 output. When _none_: don't move mouse. 326 output. When _none_: don't move mouse.
315 327
316**new_window** <normal|none|pixel> [<n>]::
317 Set default border style for new windows.
318
319**new_float** <normal|none|pixel> [<n>]::
320 Set default border style for new floating windows. This only applies to
321 windows that are spawned in floating mode, not windows that become floating
322 after the fact.
323
324**output** <name> <resolution|res> <WIDTHxHEIGHT>:: 328**output** <name> <resolution|res> <WIDTHxHEIGHT>::
325 Configures the specified output to use the given resolution. 329 Configures the specified output to use the given resolution.
326 + 330 +