diff options
-rw-r--r-- | changelog.md | 7 | ||||
-rw-r--r-- | compiler/nimconf.nim | 2 | ||||
-rw-r--r-- | lib/pure/ospaths.nim | 4 |
3 files changed, 10 insertions, 3 deletions
diff --git a/changelog.md b/changelog.md index 73d526136..90d74608b 100644 --- a/changelog.md +++ b/changelog.md @@ -230,4 +230,11 @@ - On Posix systems the global system wide configuration is now put under ``/etc/nim/nim.cfg``, it used to be ``/etc/nim.cfg``. Usually it does not exist, however. +- On Posix systems the user configuration is now looked under ``$XDG_CONFIG_HOME/nim/nim.cfg`` + (if ``XDG_CONFIG_HOME`` is not defined, then under ``~/.config/nim/nim.cfg``). It used to be + ``$XDG_CONFIG_DIR/nim.cfg`` (and ``~/.config/nim.cfg``). + + Similarly, on Windows, the user configuration is now looked under ``%APPDATA%/nim/nim.cfg``. + This used to be ``%APPDATA%/nim.cfg``. + ### Bugfixes diff --git a/compiler/nimconf.nim b/compiler/nimconf.nim index cb7e52cf7..1a8a0acb5 100644 --- a/compiler/nimconf.nim +++ b/compiler/nimconf.nim @@ -220,7 +220,7 @@ proc readConfigFile( return true proc getUserConfigPath(filename: string): string = - result = joinPath(getConfigDir(), filename) + result = joinPath([getConfigDir(), "nim", filename]) proc getSystemConfigPath(conf: ConfigRef; filename: string): string = # try standard configuration file (installation did not distribute files diff --git a/lib/pure/ospaths.nim b/lib/pure/ospaths.nim index cfa5e53c1..0414eae5d 100644 --- a/lib/pure/ospaths.nim +++ b/lib/pure/ospaths.nim @@ -525,14 +525,14 @@ proc getConfigDir*(): string {.rtl, extern: "nos$1", ## Returns the config directory of the current user for applications. ## ## On non-Windows OSs, this proc conforms to the XDG Base Directory - ## spec. Thus, this proc returns the value of the XDG_CONFIG_DIR environment + ## spec. Thus, this proc returns the value of the XDG_CONFIG_HOME environment ## variable if it is set, and returns the default configuration directory, ## "~/.config/", otherwise. ## ## An OS-dependent trailing slash is always present at the end of the ## returned string; `\\` on Windows and `/` on all other OSs. when defined(windows): return string(getEnv("APPDATA")) & "\\" - elif getEnv("XDG_CONFIG_DIR"): return string(getEnv("XDG_CONFIG_DIR")) & "/" + elif getEnv("XDG_CONFIG_HOME"): return string(getEnv("XDG_CONFIG_HOME")) & "/" else: return string(getEnv("HOME")) & "/.config/" proc getTempDir*(): string {.rtl, extern: "nos$1", |