Reload command now matches i3's implementation

master
Geoffrey Casper 4 years ago committed by Brian Ashworth
parent e5954f321f
commit ea3ba203cc

@ -500,6 +500,7 @@ struct sway_config {
struct side_gaps gaps_outer; struct side_gaps gaps_outer;
list_t *config_chain; list_t *config_chain;
bool user_config_path;
const char *current_config_path; const char *current_config_path;
const char *current_config; const char *current_config;
int current_config_line_number; int current_config_line_number;

@ -22,7 +22,12 @@ static void do_reload(void *data) {
list_add(bar_ids, strdup(bar->id)); list_add(bar_ids, strdup(bar->id));
} }
if (!load_main_config(config->current_config_path, true, false)) { const char *path = NULL;
if (config->user_config_path) {
path = config->current_config_path;
}
if (!load_main_config(path, true, false)) {
sway_log(SWAY_ERROR, "Error(s) reloading config"); sway_log(SWAY_ERROR, "Error(s) reloading config");
list_free_items_and_destroy(bar_ids); list_free_items_and_destroy(bar_ids);
return; return;
@ -55,7 +60,12 @@ struct cmd_results *cmd_reload(int argc, char **argv) {
return error; return error;
} }
if (!load_main_config(config->current_config_path, true, true)) { const char *path = NULL;
if (config->user_config_path) {
path = config->current_config_path;
}
if (!load_main_config(path, true, true)) {
return cmd_results_new(CMD_FAILURE, "Error(s) reloading config."); return cmd_results_new(CMD_FAILURE, "Error(s) reloading config.");
} }

@ -447,6 +447,7 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
} }
} }
config->user_config_path = file ? true : false;
config->current_config_path = path; config->current_config_path = path;
list_add(config->config_chain, real_path); list_add(config->config_chain, real_path);

@ -272,7 +272,9 @@ set|plus|minus <amount>
optional comment argument is ignored, but logged for debugging purposes. optional comment argument is ignored, but logged for debugging purposes.
*reload* *reload*
Reloads the sway config file and applies any changes. Reloads the sway config file and applies any changes. The config file is
located at path specified by the command line arguments when started,
otherwise according to the priority stated in *sway*(1).
*rename workspace* [<old_name>] to <new_name> *rename workspace* [<old_name>] to <new_name>
Rename either <old_name> or the focused workspace to the <new_name> Rename either <old_name> or the focused workspace to the <new_name>

Loading…
Cancel
Save