diff --git a/cmd/restray/config.go b/cmd/restray/config.go index 4d476f7..6f65684 100644 --- a/cmd/restray/config.go +++ b/cmd/restray/config.go @@ -160,6 +160,7 @@ func fixEnvFilePermissions(profiles []Profile) { } var configDirOverride string +var dataDirOverride string func configDir() string { if configDirOverride != "" { @@ -181,6 +182,9 @@ func defaultEnvPath(name string) string { } func dataDir() string { + if dataDirOverride != "" { + return dataDirOverride + } if env := os.Getenv("RESTRAY_STATE"); env != "" { return env } diff --git a/cmd/restray/main.go b/cmd/restray/main.go index 63f6723..678b8b4 100644 --- a/cmd/restray/main.go +++ b/cmd/restray/main.go @@ -4,6 +4,7 @@ import ( "io" "log" "os" + "runtime" "fyne.io/systray" "github.com/gen2brain/beeep" @@ -11,6 +12,11 @@ import ( const version = "0.18.6" +const ( + systemConfigDir = "/etc/restray" + systemStateDir = "/var/lib/restray" +) + func preParseGlobalFlags() (verbose bool, remaining []string) { args := os.Args[1:] for i := 0; i < len(args); i++ { @@ -22,6 +28,12 @@ func preParseGlobalFlags() (verbose bool, remaining []string) { configDirOverride = args[i+1] i++ } + case "--system": + if runtime.GOOS != "linux" { + log.Fatalf("restray: --system is not supported on %s", runtime.GOOS) + } + configDirOverride = systemConfigDir + dataDirOverride = systemStateDir default: remaining = append(remaining, args[i]) }