diff --git a/sway/commands.c b/sway/commands.c index be9984e32..870a23777 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -34,7 +34,6 @@ bool cmd_bindsym(struct sway_config *config, int argc, char **argv) { sway_log(L_ERROR, "Invalid set command (expected 2 arguments, got %d)", argc); return false; } - argv[0] = do_var_replacement(config, argv[0]); struct sway_binding *binding = malloc(sizeof(struct sway_binding)); binding->keys = create_list(); @@ -381,6 +380,12 @@ bool handle_command(struct sway_config *config, char *exec) { int argc; char **argv = split_directive(exec + strlen(handler->command), &argc); int i; + + //Perform var subs on all parts of the command + for (i = 0; i < argc; ++i) { + argv[i] = do_var_replacement(config, argv[i]); + } + exec_success = handler->handle(config, argc, argv); for (i = 0; i < argc; ++i) { free(argv[i]); diff --git a/sway/config.c b/sway/config.c index a1689f36b..6fe681f60 100644 --- a/sway/config.c +++ b/sway/config.c @@ -8,6 +8,8 @@ #include "commands.h" #include "config.h" +struct sway_config *config; + bool load_config() { sway_log(L_INFO, "Loading config"); // TODO: Allow use of more config file locations @@ -82,7 +84,7 @@ _continue: } if (is_active) { - config->reloading = true; + config->reloading = false; } return config; diff --git a/sway/main.c b/sway/main.c index f84451de0..a7814364d 100644 --- a/sway/main.c +++ b/sway/main.c @@ -7,7 +7,6 @@ #include "log.h" #include "handlers.h" -struct sway_config *config; int main(int argc, char **argv) { init_log(L_DEBUG); // TODO: Control this with command line arg @@ -42,8 +41,8 @@ int main(int argc, char **argv) { if (!wlc_init(&interface, argc, argv)) { return 1; } - setenv("DISPLAY", ":1", 1); + if (!load_config()) { sway_abort("Unable to load config"); }