diff --git a/.goreleaser_ui.yaml b/.goreleaser_ui.yaml index 66a22ee34..b13085e86 100644 --- a/.goreleaser_ui.yaml +++ b/.goreleaser_ui.yaml @@ -54,7 +54,7 @@ nfpms: contents: - src: client/ui/netbird.desktop dst: /usr/share/applications/netbird.desktop - - src: client/ui/netbird-systemtray-default.png + - src: client/ui/netbird-systemtray-connected.png dst: /usr/share/pixmaps/netbird.png dependencies: - netbird @@ -71,7 +71,7 @@ nfpms: contents: - src: client/ui/netbird.desktop dst: /usr/share/applications/netbird.desktop - - src: client/ui/netbird-systemtray-default.png + - src: client/ui/netbird-systemtray-connected.png dst: /usr/share/pixmaps/netbird.png dependencies: - netbird diff --git a/client/ui/client_ui.go b/client/ui/client_ui.go index d90156f56..a1682bd4c 100644 --- a/client/ui/client_ui.go +++ b/client/ui/client_ui.go @@ -82,17 +82,23 @@ var iconConnectedICO []byte //go:embed netbird-systemtray-connected.png var iconConnectedPNG []byte -//go:embed netbird-systemtray-default.ico +//go:embed netbird-systemtray-disconnected.ico var iconDisconnectedICO []byte -//go:embed netbird-systemtray-default.png +//go:embed netbird-systemtray-disconnected.png var iconDisconnectedPNG []byte -//go:embed netbird-systemtray-update.ico -var iconUpdateICO []byte +//go:embed netbird-systemtray-update-disconnected.ico +var iconUpdateDisconnectedICO []byte -//go:embed netbird-systemtray-update.png -var iconUpdatePNG []byte +//go:embed netbird-systemtray-update-disconnected.png +var iconUpdateDisconnectedPNG []byte + +//go:embed netbird-systemtray-update-connected.ico +var iconUpdateConnectedICO []byte + +//go:embed netbird-systemtray-update-connected.png +var iconUpdateConnectedPNG []byte //go:embed netbird-systemtray-update-cloud.ico var iconUpdateCloudICO []byte @@ -105,10 +111,11 @@ type serviceClient struct { addr string conn proto.DaemonServiceClient - icConnected []byte - icDisconnected []byte - icUpdate []byte - icUpdateCloud []byte + icConnected []byte + icDisconnected []byte + icUpdateConnected []byte + icUpdateDisconnected []byte + icUpdateCloud []byte // systray menu items mStatus *systray.MenuItem @@ -139,6 +146,7 @@ type serviceClient struct { preSharedKey string adminURL string + connected bool update *version.Update daemonVersion string updateIndicationLock sync.Mutex @@ -161,13 +169,15 @@ func newServiceClient(addr string, a fyne.App, showSettings bool) *serviceClient if runtime.GOOS == "windows" { s.icConnected = iconConnectedICO s.icDisconnected = iconDisconnectedICO - s.icUpdate = iconUpdateICO + s.icUpdateConnected = iconUpdateConnectedICO + s.icUpdateDisconnected = iconUpdateDisconnectedICO s.icUpdateCloud = iconUpdateCloudICO } else { s.icConnected = iconConnectedPNG s.icDisconnected = iconDisconnectedPNG - s.icUpdate = iconUpdatePNG + s.icUpdateConnected = iconUpdateConnectedPNG + s.icUpdateDisconnected = iconUpdateDisconnectedPNG s.icUpdateCloud = iconUpdateCloudPNG } @@ -369,7 +379,10 @@ func (s *serviceClient) updateStatus() error { var systrayIconState bool if status.Status == string(internal.StatusConnected) && !s.mUp.Disabled() { - if !s.isUpdateIconActive { + s.connected = true + if s.isUpdateIconActive { + systray.SetIcon(s.icUpdateConnected) + } else { systray.SetIcon(s.icConnected) } systray.SetTooltip("NetBird (Connected)") @@ -378,7 +391,10 @@ func (s *serviceClient) updateStatus() error { s.mDown.Enable() systrayIconState = true } else if status.Status != string(internal.StatusConnected) && s.mUp.Disabled() { - if !s.isUpdateIconActive { + s.connected = false + if s.isUpdateIconActive { + systray.SetIcon(s.icUpdateDisconnected) + } else { systray.SetIcon(s.icDisconnected) } systray.SetTooltip("NetBird (Disconnected)") @@ -605,10 +621,13 @@ func (s *serviceClient) onUpdateAvailable() { defer s.updateIndicationLock.Unlock() s.mUpdate.Show() - s.mAbout.SetIcon(s.icUpdateCloud) - s.isUpdateIconActive = true - systray.SetIcon(s.icUpdate) + + if s.connected { + systray.SetIcon(s.icUpdateConnected) + } else { + systray.SetIcon(s.icUpdateDisconnected) + } } func openURL(url string) error { diff --git a/client/ui/netbird-systemtray-connected.ico b/client/ui/netbird-systemtray-connected.ico index 621afce9f..80550aa37 100644 Binary files a/client/ui/netbird-systemtray-connected.ico and b/client/ui/netbird-systemtray-connected.ico differ diff --git a/client/ui/netbird-systemtray-connected.png b/client/ui/netbird-systemtray-connected.png index c5878d018..f4d156da8 100644 Binary files a/client/ui/netbird-systemtray-connected.png and b/client/ui/netbird-systemtray-connected.png differ diff --git a/client/ui/netbird-systemtray-default.ico b/client/ui/netbird-systemtray-default.ico deleted file mode 100644 index 5a0252675..000000000 Binary files a/client/ui/netbird-systemtray-default.ico and /dev/null differ diff --git a/client/ui/netbird-systemtray-default.png b/client/ui/netbird-systemtray-default.png deleted file mode 100644 index 12e7a2dc1..000000000 Binary files a/client/ui/netbird-systemtray-default.png and /dev/null differ diff --git a/client/ui/netbird-systemtray-disconnected.ico b/client/ui/netbird-systemtray-disconnected.ico new file mode 100644 index 000000000..aa75268b0 Binary files /dev/null and b/client/ui/netbird-systemtray-disconnected.ico differ diff --git a/client/ui/netbird-systemtray-disconnected.png b/client/ui/netbird-systemtray-disconnected.png new file mode 100644 index 000000000..0e1b7275f Binary files /dev/null and b/client/ui/netbird-systemtray-disconnected.png differ diff --git a/client/ui/netbird-systemtray-update-connected.ico b/client/ui/netbird-systemtray-update-connected.ico new file mode 100644 index 000000000..cc056e68e Binary files /dev/null and b/client/ui/netbird-systemtray-update-connected.ico differ diff --git a/client/ui/netbird-systemtray-update-connected.png b/client/ui/netbird-systemtray-update-connected.png new file mode 100644 index 000000000..a0c453340 Binary files /dev/null and b/client/ui/netbird-systemtray-update-connected.png differ diff --git a/client/ui/netbird-systemtray-update-disconnected.ico b/client/ui/netbird-systemtray-update-disconnected.ico new file mode 100644 index 000000000..04c35b058 Binary files /dev/null and b/client/ui/netbird-systemtray-update-disconnected.ico differ diff --git a/client/ui/netbird-systemtray-update-disconnected.png b/client/ui/netbird-systemtray-update-disconnected.png new file mode 100644 index 000000000..44a30dc9a Binary files /dev/null and b/client/ui/netbird-systemtray-update-disconnected.png differ diff --git a/client/ui/netbird-systemtray-update.ico b/client/ui/netbird-systemtray-update.ico deleted file mode 100644 index 1a1c4086d..000000000 Binary files a/client/ui/netbird-systemtray-update.ico and /dev/null differ diff --git a/client/ui/netbird-systemtray-update.png b/client/ui/netbird-systemtray-update.png deleted file mode 100644 index 1f4651df9..000000000 Binary files a/client/ui/netbird-systemtray-update.png and /dev/null differ