From 63ab46858f31efb1cc69e422f1a44a5bfbb4cbd1 Mon Sep 17 00:00:00 2001 From: Jean Galea <1651502+jgalea@users.noreply.github.com> Date: Wed, 8 Jul 2026 08:57:57 +0200 Subject: [PATCH] feat(tray): reflect backup status in the tray icon (#1255) --- cmd/backrest/backrest.go | 12 +++ cmd/backrest/icon_error.ico | Bin 0 -> 34494 bytes cmd/backrest/icon_error.png | Bin 0 -> 4299 bytes cmd/backrest/icon_ok.ico | Bin 0 -> 34494 bytes cmd/backrest/icon_ok.png | Bin 0 -> 4413 bytes cmd/backrest/icon_syncing.ico | Bin 0 -> 34494 bytes cmd/backrest/icon_syncing.png | Bin 0 -> 4353 bytes cmd/backrest/icon_unix.go | 28 ++++++ cmd/backrest/icon_warning.ico | Bin 0 -> 34494 bytes cmd/backrest/icon_warning.png | Bin 0 -> 4279 bytes cmd/backrest/icon_windows.go | 28 ++++++ cmd/backrest/tray.go | 10 +- cmd/backrest/tray_status.go | 167 +++++++++++++++++++++++++++++++ cmd/backrest/tray_status_test.go | 102 +++++++++++++++++++ 14 files changed, 345 insertions(+), 2 deletions(-) create mode 100644 cmd/backrest/icon_error.ico create mode 100644 cmd/backrest/icon_error.png create mode 100644 cmd/backrest/icon_ok.ico create mode 100644 cmd/backrest/icon_ok.png create mode 100644 cmd/backrest/icon_syncing.ico create mode 100644 cmd/backrest/icon_syncing.png create mode 100644 cmd/backrest/icon_warning.ico create mode 100644 cmd/backrest/icon_warning.png create mode 100644 cmd/backrest/tray_status.go create mode 100644 cmd/backrest/tray_status_test.go diff --git a/cmd/backrest/backrest.go b/cmd/backrest/backrest.go index dd78c07f..dd595129 100644 --- a/cmd/backrest/backrest.go +++ b/cmd/backrest/backrest.go @@ -49,6 +49,11 @@ var ( commit = "unknown" ) +// onOpLogReady, when set, is invoked with the OpLog once it is constructed. +// The tray build (-tags tray) uses it to drive a status-reflecting menu bar +// icon. It stays nil in non-tray builds, so this adds no behavior there. +var onOpLogReady func(*oplog.OpLog) + func runApp() { flag.Parse() if *printVersion { @@ -86,6 +91,13 @@ func runApp() { } defer opLogStore.Close() + // onOpLogReady lets the system tray (when built with -tags tray) observe + // operation status in-process to reflect backup state in its icon. It is + // nil in non-tray builds. + if onOpLogReady != nil { + onOpLogReady(opLog) + } + logStore, unsubscribeLogStore, err := newLogStore(opLog) if err != nil { zap.L().Fatal("error creating log store", zap.Error(err)) diff --git a/cmd/backrest/icon_error.ico b/cmd/backrest/icon_error.ico new file mode 100644 index 0000000000000000000000000000000000000000..4685929d23eb9dc71c51fb766ecc08ea654c37ec GIT binary patch literal 34494 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 literal 0 HcmV?d00001 diff --git a/cmd/backrest/icon_ok.ico b/cmd/backrest/icon_ok.ico new file mode 100644 index 0000000000000000000000000000000000000000..c74a7f57047f5b5ac357452bdce83b487dba4429 GIT binary patch literal 34494 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 literal 0 HcmV?d00001 diff --git a/cmd/backrest/icon_ok.png b/cmd/backrest/icon_ok.png new file mode 100644 index 0000000000000000000000000000000000000000..8c046aaa0b74c6e98ed191b6c88f37c5f34b940b GIT binary patch literal 4413 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 D`d5(W literal 0 HcmV?d00001 diff --git a/cmd/backrest/icon_syncing.ico b/cmd/backrest/icon_syncing.ico new file mode 100644 index 0000000000000000000000000000000000000000..558269e8ab5c26ac8027f88172b309ff68a5fb43 GIT binary patch literal 34494 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 literal 0 HcmV?d00001 diff --git a/cmd/backrest/icon_unix.go b/cmd/backrest/icon_unix.go index 112fc315..01d77484 100644 --- a/cmd/backrest/icon_unix.go +++ b/cmd/backrest/icon_unix.go @@ -6,3 +6,31 @@ import _ "embed" //go:embed icon.png var icon []byte + +//go:embed icon_ok.png +var iconOK []byte + +//go:embed icon_syncing.png +var iconSyncing []byte + +//go:embed icon_warning.png +var iconWarning []byte + +//go:embed icon_error.png +var iconError []byte + +// statusIcon returns the tray icon for the given backup state. +func statusIcon(s trayState) []byte { + switch s { + case stateRunning: + return iconSyncing + case stateOK: + return iconOK + case stateWarning: + return iconWarning + case stateError: + return iconError + default: + return icon + } +} diff --git a/cmd/backrest/icon_warning.ico b/cmd/backrest/icon_warning.ico new file mode 100644 index 0000000000000000000000000000000000000000..bca69242e0e0925cb1ba01bb29c4ce98657e2277 GIT binary patch literal 34494 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 literal 0 HcmV?d00001 diff --git a/cmd/backrest/icon_warning.png b/cmd/backrest/icon_warning.png new file mode 100644 index 0000000000000000000000000000000000000000..40ccdcaef1e573d655b550b4492f4114cdc224e3 GIT binary patch literal 4279 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