diff options
| -rw-r--r-- | src/keyevents.c | 15 | 
1 files changed, 12 insertions, 3 deletions
| diff --git a/src/keyevents.c b/src/keyevents.c index 91fa8a4..8e7251d 100644 --- a/src/keyevents.c +++ b/src/keyevents.c @@ -84,7 +84,9 @@ static void feh_set_parse_kb_partial(fehkey *key, int index, char *ks) {  }  void init_keyevents(void) { -	char *home, *confpath; +	char *home = NULL; +	char *confhome = NULL; +	char *confpath = NULL;  	char line[128];  	char action[32], k1[32], k2[32], k3[32];  	struct __fehkey *cur_kb = NULL; @@ -149,9 +151,17 @@ void init_keyevents(void) {  	if (!home)  		eprintf("No HOME in environment\n"); -	confpath = estrjoin("/", home, ".config/feh/keys", NULL); +	confhome = getenv("XDG_CONFIG_HOME"); + +	if (confhome) +		confpath = estrjoin("/", confhome, "feh/keys", NULL); +	else +		confpath = estrjoin("/", home, ".config/feh/keys", NULL); +  	conf = fopen(confpath, "r"); +	free(confpath); +  	if (!conf)  		return; @@ -279,7 +289,6 @@ void init_keyevents(void) {  		}  	}  	fclose(conf); -	free(confpath);  }  static short feh_is_kp(fehkey *key, int sym, int state) { | 
