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>
This commit is contained in:
24
cmd/panel/main.go
Normal file
24
cmd/panel/main.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"log"
|
||||
|
||||
"github.com/webview/webview_go"
|
||||
)
|
||||
|
||||
func main() {
|
||||
addr := flag.String("addr", "http://localhost:8384", "Syncthing address")
|
||||
flag.Parse()
|
||||
|
||||
w := webview.New(false)
|
||||
if w == nil {
|
||||
log.Fatal("failed to create webview")
|
||||
}
|
||||
defer w.Destroy()
|
||||
|
||||
w.SetTitle("SyncWarden — Admin Panel")
|
||||
w.SetSize(1024, 768, webview.HintNone)
|
||||
w.Navigate(*addr)
|
||||
w.Run()
|
||||
}
|
||||
Reference in New Issue
Block a user