use tauri::image::Image; use tauri::menu::{MenuBuilder, MenuItemBuilder}; use tauri::tray::TrayIconBuilder; use tauri::Manager; pub fn setup(app: &tauri::App) -> Result<(), Box> { let show = MenuItemBuilder::with_id("show", "Show Kon").build(app)?; let status = MenuItemBuilder::with_id("status", "Ready") .enabled(false) .build(app)?; let quit = MenuItemBuilder::with_id("quit", "Quit").build(app)?; let menu = MenuBuilder::new(app) .item(&show) .separator() .item(&status) .separator() .item(&quit) .build()?; let icon = app .default_window_icon() .cloned() .unwrap_or_else(|| Image::new(&[0u8; 4], 1, 1)); let _tray = TrayIconBuilder::new() .icon(icon) .tooltip("Kon — Ready") .menu(&menu) .on_menu_event(move |app, event| match event.id().as_ref() { "show" => { if let Some(window) = app.get_webview_window("main") { let _ = window.show(); let _ = window.set_focus(); } } "quit" => { app.exit(0); } _ => {} }) .on_tray_icon_event(|tray, event| { if let tauri::tray::TrayIconEvent::Click { button: tauri::tray::MouseButton::Left, .. } = event { if let Some(window) = tray.app_handle().get_webview_window("main") { let _ = window.show(); let _ = window.set_focus(); } } }) .build(app)?; Ok(()) }