From 927c0db3a9191864c841929fa949c1245664f4d9 Mon Sep 17 00:00:00 2001 From: septs Date: Mon, 28 Aug 2023 22:47:56 +0800 Subject: [PATCH] Feature: add xdg base support (#2913) --- constant/path.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/constant/path.go b/constant/path.go index add7820..829b680 100644 --- a/constant/path.go +++ b/constant/path.go @@ -10,6 +10,9 @@ import ( const Name = "clash" // Path is used to get the configuration path +// +// on Unix systems, `$HOME/.config/clash`. +// on Windows, `%USERPROFILE%/.config/clash`. var Path = func() *path { homeDir, err := os.UserHomeDir() if err != nil { @@ -17,6 +20,12 @@ var Path = func() *path { } homeDir = P.Join(homeDir, ".config", Name) + + if _, err = os.Stat(homeDir); err != nil { + if configHome, ok := os.LookupEnv("XDG_CONFIG_HOME"); ok { + homeDir = P.Join(configHome, Name) + } + } return &path{homeDir: homeDir, configFile: "config.yaml"} }()