diff options
| -rw-r--r-- | include/sway/commands.h | 4 | ||||
| -rw-r--r-- | sway/commands.c | 2 | ||||
| -rw-r--r-- | sway/commands/default_border.c | 43 | ||||
| -rw-r--r-- | sway/commands/default_floating_border.c | 44 | ||||
| -rw-r--r-- | sway/commands/new_float.c | 43 | ||||
| -rw-r--r-- | sway/commands/new_window.c | 43 | ||||
| -rw-r--r-- | sway/sway.5.txt | 20 | 
7 files changed, 112 insertions, 87 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 {  	CMD_SUCCESS, 		/**< The command was successful */  	CMD_FAILURE,		/**< The command resulted in an error */  	CMD_INVALID, 		/**< Unknown command or parser error */ -	CMD_DEFER,			/**< Command execution deferred */ +	CMD_DEFER,		/**< Command execution deferred */  	// Config Blocks  	CMD_BLOCK_END,  	CMD_BLOCK_MODE, @@ -102,6 +102,8 @@ sway_cmd cmd_client_placeholder;  sway_cmd cmd_client_background;  sway_cmd cmd_commands;  sway_cmd cmd_debuglog; +sway_cmd cmd_default_border; +sway_cmd cmd_default_floating_border;  sway_cmd cmd_exec;  sway_cmd cmd_exec_always;  sway_cmd cmd_exit; diff --git a/sway/commands.c b/sway/commands.c index 068e8866..58e7f655 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -164,6 +164,8 @@ static struct cmd_handler handlers[] = {  	{ "client.urgent", cmd_client_urgent },  	{ "commands", cmd_commands },  	{ "debuglog", cmd_debuglog }, +	{ "default_border", cmd_default_border }, +	{ "default_floating_border", cmd_default_floating_border },  	{ "default_orientation", cmd_orientation },  	{ "exec", cmd_exec },  	{ "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..f7710b03 --- /dev/null +++ b/sway/commands/default_border.c @@ -0,0 +1,43 @@ +#include <errno.h> +#include <string.h> +#include "sway/commands.h" +#include "sway/container.h" + +struct cmd_results *cmd_default_border(int argc, char **argv) { +	struct cmd_results *error = NULL; +	if ((error = checkarg(argc, "default_border", EXPECTED_AT_LEAST, 1))) { +		return error; +	} + +	if (argc > 2) { +		return cmd_results_new(CMD_INVALID, "default_border", +			"Expected 'default_border <normal|none|pixel> [<n>]"); +	} + +	enum swayc_border_types border = config->border; +	int thickness = config->border_thickness; + +	if (strcasecmp(argv[0], "none") == 0) { +		border = B_NONE; +	} else if (strcasecmp(argv[0], "normal") == 0) { +		border = B_NORMAL; +	} else if (strcasecmp(argv[0], "pixel") == 0) { +		border = B_PIXEL; +	} else { +		return cmd_results_new(CMD_INVALID, "default_border", +			"Expected 'default_border <normal|none|pixel> [<n>]"); +	} + +	if (argc == 2 && (border == B_NORMAL || border == B_PIXEL)) { +		thickness = (int)strtol(argv[1], NULL, 10); +		if (errno == ERANGE || thickness < 0) { +			errno = 0; +			return cmd_results_new(CMD_INVALID, "default_border", "Number is out out of range."); +		} +	} + +	config->border = border; +	config->border_thickness = thickness; + +	return cmd_results_new(CMD_SUCCESS, NULL, NULL); +} diff --git a/sway/commands/default_floating_border.c b/sway/commands/default_floating_border.c new file mode 100644 index 00000000..bbd9b0e0 --- /dev/null +++ b/sway/commands/default_floating_border.c @@ -0,0 +1,44 @@ +#include <errno.h> +#include <string.h> +#include "sway/commands.h" +#include "sway/container.h" + +struct cmd_results *cmd_default_floating_border(int argc, char **argv) { +	struct cmd_results *error = NULL; +	if ((error = checkarg(argc, "default_floating_border", EXPECTED_AT_LEAST, 1))) { +		return error; +	} + +	if (argc > 2) { +		return cmd_results_new(CMD_INVALID, "default_floating_border", +			"Expected 'default_floating_border <normal|none|pixel> [<n>]"); +	} + +	enum swayc_border_types border = config->floating_border; +	int thickness = config->floating_border_thickness; + +	if (strcasecmp(argv[0], "none") == 0) { +		border = B_NONE; +	} else if (strcasecmp(argv[0], "normal") == 0) { +		border = B_NORMAL; +	} else if (strcasecmp(argv[0], "pixel") == 0) { +		border = B_PIXEL; +	} else { +		return cmd_results_new(CMD_INVALID, "default_floating_border", +			"Expected 'default_floating_border <normal|none|pixel> [<n>]"); +	} + +	if (argc == 2 && (border == B_NORMAL || border == B_PIXEL)) { +		thickness = (int)strtol(argv[1], NULL, 10); +		if (errno == ERANGE || thickness < 0) { +			errno = 0; +			return cmd_results_new(CMD_INVALID, "default_floating_border", +				"Number is out out of range."); +		} +	} + +	config->floating_border = border; +	config->floating_border_thickness = thickness; + +	return cmd_results_new(CMD_SUCCESS, NULL, NULL); +} diff --git a/sway/commands/new_float.c b/sway/commands/new_float.c index 8e4e354f..d0f96093 100644 --- a/sway/commands/new_float.c +++ b/sway/commands/new_float.c @@ -1,43 +1,8 @@ -#include <errno.h> -#include <string.h> +#include "log.h"  #include "sway/commands.h" -#include "sway/container.h"  struct cmd_results *cmd_new_float(int argc, char **argv) { -	struct cmd_results *error = NULL; -	if ((error = checkarg(argc, "new_float", EXPECTED_AT_LEAST, 1))) { -		return error; -	} - -	if (argc > 2) { -		return cmd_results_new(CMD_INVALID, "new_float", -			"Expected 'new_float <normal|none|pixel> [<n>]"); -	} - -	enum swayc_border_types border = config->floating_border; -	int thickness = config->floating_border_thickness; - -	if (strcasecmp(argv[0], "none") == 0) { -		border = B_NONE; -	} else if (strcasecmp(argv[0], "normal") == 0) { -		border = B_NORMAL; -	} else if (strcasecmp(argv[0], "pixel") == 0) { -		border = B_PIXEL; -	} else { -		return cmd_results_new(CMD_INVALID, "new_float", -			"Expected 'border <normal|none|pixel>"); -	} - -	if (argc == 2 && (border == B_NORMAL || border == B_PIXEL)) { -		thickness = (int)strtol(argv[1], NULL, 10); -		if (errno == ERANGE || thickness < 0) { -			errno = 0; -			return cmd_results_new(CMD_INVALID, "new_float", "Number is out out of range."); -		} -	} - -	config->floating_border = border; -	config->floating_border_thickness = thickness; - -	return cmd_results_new(CMD_SUCCESS, NULL, NULL); +	sway_log(L_INFO, "`new_float` is deprecated and will be removed in the future. " +		"Please use `default_floating_border` instead."); +	return cmd_default_floating_border(argc, argv);  } diff --git a/sway/commands/new_window.c b/sway/commands/new_window.c index 423b5af0..574a4527 100644 --- a/sway/commands/new_window.c +++ b/sway/commands/new_window.c @@ -1,43 +1,8 @@ -#include <errno.h> -#include <string.h> +#include "log.h"  #include "sway/commands.h" -#include "sway/container.h"  struct cmd_results *cmd_new_window(int argc, char **argv) { -	struct cmd_results *error = NULL; -	if ((error = checkarg(argc, "new_window", EXPECTED_AT_LEAST, 1))) { -		return error; -	} - -	if (argc > 2) { -		return cmd_results_new(CMD_INVALID, "new_window", -			"Expected 'new_window <normal|none|pixel> [<n>]"); -	} - -	enum swayc_border_types border = config->border; -	int thickness = config->border_thickness; - -	if (strcasecmp(argv[0], "none") == 0) { -		border = B_NONE; -	} else if (strcasecmp(argv[0], "normal") == 0) { -		border = B_NORMAL; -	} else if (strcasecmp(argv[0], "pixel") == 0) { -		border = B_PIXEL; -	} else { -		return cmd_results_new(CMD_INVALID, "new_window", -			"Expected 'border <normal|none|pixel>"); -	} - -	if (argc == 2 && (border == B_NORMAL || border == B_PIXEL)) { -		thickness = (int)strtol(argv[1], NULL, 10); -		if (errno == ERANGE || thickness < 0) { -			errno = 0; -			return cmd_results_new(CMD_INVALID, "new_window", "Number is out out of range."); -		} -	} - -	config->border = border; -	config->border_thickness = thickness; - -	return cmd_results_new(CMD_SUCCESS, NULL, NULL); +	sway_log(L_INFO, "`new_window` is deprecated and will be removed in the future. " +		"Please use `default_border` instead."); +	return cmd_default_border(argc, argv);  } diff --git a/sway/sway.5.txt b/sway/sway.5.txt index 8e3f64ab..474f6790 100644 --- a/sway/sway.5.txt +++ b/sway/sway.5.txt @@ -227,6 +227,18 @@ The default colors are:  	Enables, disables or toggles debug logging. The toggle argument cannot be used  	in the configuration file. +**default_border** <normal|none|pixel> [<n>]:: +	Set default border style for new windows. This command was previously called +	**new_window**. While **new_window** still works, it is considered deprecated +	and support for it will be removed in the future. + +**default_floating_border** <normal|none|pixel> [<n>]:: +	Set default border style for new floating windows. This only applies to +	windows that are spawned in floating mode, not windows that become floating +	after the fact. This command was previously called **new_float**. While +	**new_float** still works, it is considered deprecated and support for it will +	be removed in the future. +  **exec** <shell command>::  	Executes _shell command_ with sh. @@ -313,14 +325,6 @@ The default colors are:  	When _output_: place mouse at center of newly focused window when changing  	output. When _none_: don't move mouse. -**new_window** <normal|none|pixel> [<n>]:: -	Set default border style for new windows. - -**new_float** <normal|none|pixel> [<n>]:: -	Set default border style for new floating windows. This only applies to -	windows that are spawned in floating mode, not windows that become floating -	after the fact. -  **output** <name> <resolution|res> <WIDTHxHEIGHT>::  	Configures the specified output to use the given resolution.  	+  | 
