aboutsummaryrefslogtreecommitdiff
path: root/sway/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/config.c')
-rw-r--r--sway/config.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/sway/config.c b/sway/config.c
index b56c4f71..a50e9144 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -136,6 +136,8 @@ void free_config(struct sway_config *config) {
free(config->floating_scroll_left_cmd);
free(config->floating_scroll_right_cmd);
free(config->font);
+ free(config->swaybg_command);
+ free(config->swaynag_command);
free((char *)config->current_config_path);
free((char *)config->current_config);
free(config);
@@ -166,7 +168,7 @@ static void set_color(float dest[static 4], uint32_t color) {
}
static void config_defaults(struct sway_config *config) {
- config->swaynag_command = strdup("swaynag");
+ if (!(config->swaynag_command = strdup("swaynag"))) goto cleanup;
config->swaynag_config_errors = (struct swaynag_instance){
.args = "--type error "
"--message 'There are errors in your config file' "
@@ -212,6 +214,7 @@ static void config_defaults(struct sway_config *config) {
if (!(config->font = strdup("monospace 10"))) goto cleanup;
config->font_height = 17; // height of monospace 10
config->urgent_timeout = 500;
+ config->popup_during_fullscreen = POPUP_SMART;
// floating view
config->floating_maximum_width = 0;
@@ -240,6 +243,8 @@ static void config_defaults(struct sway_config *config) {
if (!(config->active_bar_modifiers = create_list())) goto cleanup;
+ if (!(config->swaybg_command = strdup("swaybg"))) goto cleanup;
+
if (!(config->config_chain = create_list())) goto cleanup;
config->current_config_path = NULL;
config->current_config = NULL;
@@ -457,6 +462,12 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
success = success && load_config(path, config,
&config->swaynag_config_errors);
+ if (validating) {
+ free_config(config);
+ config = old_config;
+ return success;
+ }
+
if (is_active) {
for (int i = 0; i < config->output_configs->length; i++) {
apply_output_config_to_outputs(config->output_configs->items[i]);