diff --git a/web/backend/tray_stub_darwin_nocgo.go b/web/backend/tray_stub_darwin_nocgo.go new file mode 100644 index 000000000..c54aaac1b --- /dev/null +++ b/web/backend/tray_stub_darwin_nocgo.go @@ -0,0 +1,32 @@ +//go:build darwin && !cgo + +package main + +import ( + "context" + "os" + "os/signal" + "syscall" + "time" + + "github.com/sipeed/picoclaw/pkg/logger" +) + +func runTray() { + logger.Infof("System tray is unavailable in darwin builds without cgo; running without tray") + + if !*noBrowser { + go func() { + time.Sleep(browserDelay) + if err := openBrowser(); err != nil { + logger.Errorf("Warning: Failed to auto-open browser: %v", err) + } + }() + } + + ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) + defer stop() + + <-ctx.Done() + shutdownApp() +}