aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sway/commands.c3
-rw-r--r--sway/config.c19
-rw-r--r--sway/config.h1
-rw-r--r--sway/main.c22
4 files changed, 26 insertions, 19 deletions
diff --git a/sway/commands.c b/sway/commands.c
index af24cc95..98786885 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -195,6 +195,9 @@ int cmd_reload(struct sway_config *config, int argc, char **argv) {
free(temp);
config = read_config(f, true);
fclose(f);
+ if (load_config()) {
+
+ }
return 0;
}
diff --git a/sway/config.c b/sway/config.c
index 280900ca..3c7badec 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -8,6 +8,25 @@
#include "commands.h"
#include "config.h"
+bool load_config() {
+ // TODO: Allow use of more config file locations
+ const char *name = "/.sway/config";
+ const char *home = getenv("HOME");
+ char *temp = malloc(strlen(home) + strlen(name) + 1);
+ strcpy(temp, home);
+ strcat(temp, name);
+ FILE *f = fopen(temp, "r");
+ if (!f) {
+ fprintf(stderr, "Unable to open %s for reading", temp);
+ free(temp);
+ return false;
+ }
+ free(temp);
+ config = read_config(f, false);
+ fclose(f);
+ return true;
+}
+
void config_defaults(struct sway_config *config) {
config->symbols = create_list();
config->modes = create_list();
diff --git a/sway/config.h b/sway/config.h
index 733aaaae..62b65723 100644
--- a/sway/config.h
+++ b/sway/config.h
@@ -33,6 +33,7 @@ struct sway_config {
bool reloading;
};
+bool load_config();
struct sway_config *read_config(FILE *file, bool is_active);
char *do_var_replacement(struct sway_config *config, char *str);
diff --git a/sway/main.c b/sway/main.c
index 298e530d..900e6e5d 100644
--- a/sway/main.c
+++ b/sway/main.c
@@ -9,24 +9,6 @@
struct sway_config *config;
-void load_config() {
- // TODO: Allow use of more config file locations
- const char *name = "/.sway/config";
- const char *home = getenv("HOME");
- char *temp = malloc(strlen(home) + strlen(name) + 1);
- strcpy(temp, home);
- strcat(temp, name);
- FILE *f = fopen(temp, "r");
- if (!f) {
- fprintf(stderr, "Unable to open %s for reading", temp);
- free(temp);
- exit(1);
- }
- free(temp);
- config = read_config(f, false);
- fclose(f);
-}
-
int main(int argc, char **argv) {
init_log(L_DEBUG); // TODO: Control this with command line arg
init_layout();
@@ -61,7 +43,9 @@ int main(int argc, char **argv) {
}
setenv("DISPLAY", ":1", 1);
- load_config();
+ if (load_config()) {
+ exit(1);
+ }
wlc_run();
return 0;