diff options
| -rw-r--r-- | i3status.c | 30 | ||||
| -rw-r--r-- | man/i3status.man | 8 | 
2 files changed, 20 insertions, 18 deletions
@@ -117,9 +117,14 @@ static char *resolve_tilde(const char *path) {  }  static char *get_config_path() { -        /* 1: check for $XDG_CONFIG_HOME/i3/config */          char *xdg_config_home, *xdg_config_dirs, *config_path; +        /* 1: check the traditional path under the home directory */ +        config_path = resolve_tilde("~/.i3status.conf"); +        if (path_exists(config_path)) +                return config_path; + +        /* 2: check for $XDG_CONFIG_HOME/i3status/config */          if ((xdg_config_home = getenv("XDG_CONFIG_HOME")) == NULL)                  xdg_config_home = "~/.config"; @@ -132,7 +137,12 @@ static char *get_config_path() {                  return config_path;          free(config_path); -        /* 2: check for $XDG_CONFIG_DIRS/i3/config */ +        /* 3: check the traditional path under /etc */ +        config_path = SYSCONFDIR "/i3status.conf"; +        if (path_exists(config_path)) +            return sstrdup(config_path); + +        /* 4: check for $XDG_CONFIG_DIRS/i3status/config */          if ((xdg_config_dirs = getenv("XDG_CONFIG_DIRS")) == NULL)                  xdg_config_dirs = "/etc/xdg"; @@ -152,18 +162,10 @@ static char *get_config_path() {          }          free(buf); -        /* 3: check traditional paths */ -        config_path = resolve_tilde("~/.i3status.conf"); -        if (path_exists(config_path)) -                return config_path; - -        config_path = strdup(SYSCONFDIR "/i3status.conf"); -        if (!path_exists(config_path)) -                die("Neither $XDG_CONFIG_HOME/i3status/config, nor " -                    "$XDG_CONFIG_DIRS/i3status/config, nor ~/.i3status.conf nor " -                    SYSCONFDIR "/i3status.conf exist."); - -        return config_path; +        die("Unable to find the configuration file (looked at " +                "~/.i3status/config, $XDG_CONFIG_HOME/i3status/config, " +                "/etc/i3status/config and $XDG_CONFIG_DIRS/i3status/config)"); +        return NULL;  }  int main(int argc, char *argv[]) { diff --git a/man/i3status.man b/man/i3status.man index a8f461f..57a991c 100644 --- a/man/i3status.man +++ b/man/i3status.man @@ -17,10 +17,10 @@ i3status [-c configfile] [-h] [-v]  Specifies an alternate configuration file path. By default, i3status looks for  configuration files in the following order: -1. ~/.config/i3status/config (or $XDG_CONFIG_HOME/i3status/config if set) -2. /etc/xdg/i3status/config (or $XDG_CONFIG_DIRS/i3status/config if set) -3. ~/.i3status.conf -4. /etc/i3status.conf (or SYSCONFDIR/i3status.conf if set at compile-time) +1. ~/.i3status/config +2. ~/.config/i3status/config (or $XDG_CONFIG_HOME/i3status/config if set) +3. /etc/i3status/config +4. /etc/xdg/i3status/config (or $XDG_CONFIG_DIRS/i3status/config if set)  == DESCRIPTION  | 
