package main import ( _ "embed" "log" "runtime" "github.com/wailsapp/wails/v3/pkg/application" "github.com/wailsapp/wails/v3/pkg/icons" ) func main() { app := application.New(application.Options{ Name: "Systray Demo", Description: "A demo of the Systray API", Assets: application.AlphaAssets, Mac: application.MacOptions{ ActivationPolicy: application.ActivationPolicyAccessory, }, }) systemTray := app.NewSystemTray() window := app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{ Width: 500, Height: 500, Name: "Systray Demo Window", Frameless: true, AlwaysOnTop: true, Hidden: true, DisableResize: true, ShouldClose: func(window *application.WebviewWindow) bool { window.Hide() return false }, Windows: application.WindowsWindow{ HiddenOnTaskbar: true, }, }) if runtime.GOOS == "darwin" { systemTray.SetTemplateIcon(icons.SystrayMacTemplate) } systemTray.OnClick(func() { println("System tray clicked!") if window.IsVisible() { window.Hide() } else { window.Show() } }) systemTray.OnDoubleClick(func() { println("System tray double clicked!") }) systemTray.OnRightClick(func() { println("System tray right clicked!") }) systemTray.AttachWindow(window).WindowOffset(5) err := app.Run() if err != nil { log.Fatal(err) } }