powerful but friendly backup program that runs in your tray, powered by restic devins.page/restray
go restic system-tray
2

Configure Feed

Select the types of activity you want to include in your feed.

feat: --system flag

for running with the same configuration/state as the systemd service

intergrav (Jul 2, 2026, 4:08 AM EDT) 250ac766 ec9a2e3d

+16
+4
cmd/restray/config.go
··· 160 160 } 161 161 162 162 var configDirOverride string 163 + var dataDirOverride string 163 164 164 165 func configDir() string { 165 166 if configDirOverride != "" { ··· 181 182 } 182 183 183 184 func dataDir() string { 185 + if dataDirOverride != "" { 186 + return dataDirOverride 187 + } 184 188 if env := os.Getenv("RESTRAY_STATE"); env != "" { 185 189 return env 186 190 }
+12
cmd/restray/main.go
··· 4 4 "io" 5 5 "log" 6 6 "os" 7 + "runtime" 7 8 8 9 "fyne.io/systray" 9 10 "github.com/gen2brain/beeep" 10 11 ) 11 12 12 13 const version = "0.18.6" 14 + 15 + const ( 16 + systemConfigDir = "/etc/restray" 17 + systemStateDir = "/var/lib/restray" 18 + ) 13 19 14 20 func preParseGlobalFlags() (verbose bool, remaining []string) { 15 21 args := os.Args[1:] ··· 22 28 configDirOverride = args[i+1] 23 29 i++ 24 30 } 31 + case "--system": 32 + if runtime.GOOS != "linux" { 33 + log.Fatalf("restray: --system is not supported on %s", runtime.GOOS) 34 + } 35 + configDirOverride = systemConfigDir 36 + dataDirOverride = systemStateDir 25 37 default: 26 38 remaining = append(remaining, args[i]) 27 39 }