Some checks failed
Release / build (push) Failing after 19s
Full Syncthing tray wrapper with: - System tray with 5 icon states (idle/syncing/paused/error/disconnected) - Syncthing REST API client with auto-discovered API key - Long-polling event listener for real-time status - Transfer rate monitoring, folder tracking, recent files, conflict counting - Full context menu with folders, recent files, settings toggles - Embedded admin panel binary (webview, requires CGO) - OS notifications via beeep (per-event configurable) - Syncthing process management with auto-restart - Cross-platform installer with autostart - CI pipeline for Linux (.deb + .tar.gz) and Windows (.zip) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
21 lines
425 B
Go
21 lines
425 B
Go
package tray
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/energye/systray"
|
|
|
|
"git.davoryn.de/calic/syncwarden/internal/icons"
|
|
"git.davoryn.de/calic/syncwarden/internal/monitor"
|
|
)
|
|
|
|
// updateIcon renders and sets the tray icon based on status.
|
|
func updateIcon(status monitor.AggregateStatus) {
|
|
iconData, err := icons.Render(status.State)
|
|
if err != nil {
|
|
log.Printf("icon render error: %v", err)
|
|
return
|
|
}
|
|
systray.SetIcon(iconData)
|
|
}
|