aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
Diffstat (limited to 'sway')
-rw-r--r--sway/commands.c1
-rw-r--r--sway/commands/reload.c21
-rw-r--r--sway/config.c4
-rw-r--r--sway/meson.build1
4 files changed, 27 insertions, 0 deletions
diff --git a/sway/commands.c b/sway/commands.c
index a77ff791..d4262c08 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -136,6 +136,7 @@ static struct cmd_handler handlers[] = {
{ "input", cmd_input },
{ "kill", cmd_kill },
{ "output", cmd_output },
+ { "reload", cmd_reload },
{ "seat", cmd_seat },
{ "set", cmd_set },
};
diff --git a/sway/commands/reload.c b/sway/commands/reload.c
new file mode 100644
index 00000000..2b553845
--- /dev/null
+++ b/sway/commands/reload.c
@@ -0,0 +1,21 @@
+#include "sway/commands.h"
+#include "sway/config.h"
+#include "sway/layout.h"
+
+struct cmd_results *cmd_reload(int argc, char **argv) {
+ struct cmd_results *error = NULL;
+ if (config->reading) {
+ return cmd_results_new(CMD_FAILURE, "reload", "Can't be used in config file.");
+ }
+ if ((error = checkarg(argc, "reload", EXPECTED_EQUAL_TO, 0))) {
+ return error;
+ }
+ if (!load_main_config(config->current_config, true)) {
+ return cmd_results_new(CMD_FAILURE, "reload", "Error(s) reloading config.");
+ }
+
+ load_swaybars();
+
+ arrange_windows(&root_container, -1, -1);
+ return cmd_results_new(CMD_SUCCESS, NULL, NULL);
+}
diff --git a/sway/config.c b/sway/config.c
index 1fd123b7..cb22f664 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -698,3 +698,7 @@ char *do_var_replacement(char *str) {
}
return str;
}
+
+void load_swaybars() {
+ /* stub function for reload commnd, to fill when we restore swaybars */
+}
diff --git a/sway/meson.build b/sway/meson.build
index 80ccc01d..51e9e4db 100644
--- a/sway/meson.build
+++ b/sway/meson.build
@@ -34,6 +34,7 @@ sway_sources = files(
'commands/input/xkb_rules.c',
'commands/input/xkb_variant.c',
'commands/output.c',
+ 'commands/reload.c',
'config.c',
'config/output.c',
'config/seat.c',