diff --git a/include/sway/commands.h b/include/sway/commands.h index 3ab8d5af7..511bee4dd 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 dbb34705e..c330ebeef 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -165,6 +165,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 000000000..8fbe8d194 --- /dev/null +++ b/sway/commands/default_border.c @@ -0,0 +1,44 @@ +#include +#include +#include +#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 []"); + } + + 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 []"); + } + + 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 000000000..fb48c1c07 --- /dev/null +++ b/sway/commands/default_floating_border.c @@ -0,0 +1,45 @@ +#include +#include +#include +#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 []"); + } + + 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 []"); + } + + 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 432af436c..d0f960930 100644 --- a/sway/commands/new_float.c +++ b/sway/commands/new_float.c @@ -1,44 +1,8 @@ -#include -#include -#include +#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 []"); - } - - 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 "); - } - - 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 722d7d751..574a45272 100644 --- a/sway/commands/new_window.c +++ b/sway/commands/new_window.c @@ -1,44 +1,8 @@ -#include -#include -#include +#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 []"); - } - - 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 "); - } - - 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 9c60af714..5d143d972 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** []:: + 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** []:: + 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** :: 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** []:: - Set default border style for new windows. - -**new_float** []:: - 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** :: Configures the specified output to use the given resolution. +