From 250ac766d2b819e6eefc5ff6f253e42fbe167946 Mon Sep 17 00:00:00 2001 From: intergrav Date: Thu, 2 Jul 2026 04:08:42 -0400 Subject: [PATCH] feat: --system flag for running with the same configuration/state as the systemd service --- cmd/restray/config.go | 4 ++++ cmd/restray/main.go | 12 ++++++++++++ 2 files changed, 16 insertions(+) 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]) } -- 2.51.2