diff --git a/Cargo.toml b/Cargo.toml index 418a274..844d03f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,7 +36,7 @@ hound = "3.5" reqwest = { version = "0.12", features = ["json", "multipart", "stream"] } # Desktop (Tauri) -tauri = { version = "2", features = ["tray-icon", "macos-private-api"] } +tauri = { version = "2", features = ["tray-icon", "macos-private-api", "image-png"] } tauri-build = "2" tauri-plugin-global-shortcut = "2" log = "0.4" diff --git a/apps/desktop/icons/icon.ico b/apps/desktop/icons/icon.ico index c5e2606..107b65c 100644 Binary files a/apps/desktop/icons/icon.ico and b/apps/desktop/icons/icon.ico differ diff --git a/apps/desktop/icons/icon.png b/apps/desktop/icons/icon.png index e6b55c4..19704d2 100644 Binary files a/apps/desktop/icons/icon.png and b/apps/desktop/icons/icon.png differ diff --git a/apps/desktop/icons/tray-template.png b/apps/desktop/icons/tray-template.png new file mode 100644 index 0000000..71e4847 Binary files /dev/null and b/apps/desktop/icons/tray-template.png differ diff --git a/apps/desktop/src/lib.rs b/apps/desktop/src/lib.rs index dc05847..4e1a5bd 100644 --- a/apps/desktop/src/lib.rs +++ b/apps/desktop/src/lib.rs @@ -10,6 +10,8 @@ use std::{ use futures::{StreamExt, stream}; use rusqlite::Connection; use serde::{Deserialize, Serialize}; +#[cfg(target_os = "macos")] +use tauri::image::Image; use tauri::{ Emitter, Manager, WindowEvent, menu::{Menu, MenuItem, PredefinedMenuItem}, @@ -1203,8 +1205,17 @@ pub fn run() { let separator = PredefinedMenuItem::separator(app)?; let menu = Menu::with_items(app, &[&show_item, &separator, &quit_item])?; + #[cfg(target_os = "macos")] + let tray_icon = Image::from_bytes(include_bytes!("../icons/tray-template.png"))?; + #[cfg(not(target_os = "macos"))] + let tray_icon = app + .default_window_icon() + .cloned() + .ok_or("default window icon is missing")?; + TrayIconBuilder::new() - .icon(app.default_window_icon().unwrap().clone()) + .icon(tray_icon) + .icon_as_template(cfg!(target_os = "macos")) .menu(&menu) .show_menu_on_left_click(false) .tooltip("TypeX") diff --git a/apps/desktop/tauri.conf.json b/apps/desktop/tauri.conf.json index 5cf1c2f..cb5ea44 100644 --- a/apps/desktop/tauri.conf.json +++ b/apps/desktop/tauri.conf.json @@ -17,6 +17,6 @@ "bundle": { "active": true, "targets": "all", - "icon": ["icons/icon.ico"] + "icon": ["icons/icon.png", "icons/icon.ico"] } }