diff --git a/apps/desktop/src-tauri/icons/tray-default-icon-instant.png b/apps/desktop/src-tauri/icons/tray-default-icon-instant.png index 4b68130aaf..d1a11328f4 100644 Binary files a/apps/desktop/src-tauri/icons/tray-default-icon-instant.png and b/apps/desktop/src-tauri/icons/tray-default-icon-instant.png differ diff --git a/apps/desktop/src-tauri/icons/tray-default-icon-screenshot.png b/apps/desktop/src-tauri/icons/tray-default-icon-screenshot.png index 233ecda6ce..f32469cf1c 100644 Binary files a/apps/desktop/src-tauri/icons/tray-default-icon-screenshot.png and b/apps/desktop/src-tauri/icons/tray-default-icon-screenshot.png differ diff --git a/apps/desktop/src-tauri/icons/tray-default-icon-studio.png b/apps/desktop/src-tauri/icons/tray-default-icon-studio.png index 0d4d75df10..f4c8c603f1 100644 Binary files a/apps/desktop/src-tauri/icons/tray-default-icon-studio.png and b/apps/desktop/src-tauri/icons/tray-default-icon-studio.png differ diff --git a/apps/desktop/src-tauri/icons/tray-stop-icon.png b/apps/desktop/src-tauri/icons/tray-stop-icon.png index 614fd315a1..841b3dad54 100644 Binary files a/apps/desktop/src-tauri/icons/tray-stop-icon.png and b/apps/desktop/src-tauri/icons/tray-stop-icon.png differ diff --git a/apps/desktop/src-tauri/src/tray.rs b/apps/desktop/src-tauri/src/tray.rs index c0a3c3f6e6..125d5b1000 100644 --- a/apps/desktop/src-tauri/src/tray.rs +++ b/apps/desktop/src-tauri/src/tray.rs @@ -616,6 +616,18 @@ pub fn get_mode_icon(mode: RecordingMode) -> &'static [u8] { } } +#[cfg(target_os = "macos")] +fn set_tray_template_icon(tray: &tauri::tray::TrayIcon, icon: Image<'_>) { + if tray.set_icon(Some(icon)).is_ok() { + let _ = tray.set_icon_as_template(true); + } +} + +#[cfg(not(target_os = "macos"))] +fn set_tray_template_icon(tray: &tauri::tray::TrayIcon, icon: Image<'_>) { + let _ = tray.set_icon(Some(icon)); +} + pub fn update_tray_icon_for_mode(app: &AppHandle, mode: RecordingMode) { if cfg!(target_os = "windows") { return; @@ -626,7 +638,7 @@ pub fn update_tray_icon_for_mode(app: &AppHandle, mode: RecordingMode) { }; if let Ok(icon) = Image::from_bytes(get_mode_icon(mode)) { - let _ = tray.set_icon(Some(icon)); + set_tray_template_icon(&tray, icon); } } @@ -660,6 +672,7 @@ pub fn create_tray(app: &AppHandle) -> tauri::Result<()> { let _ = TrayIconBuilder::with_id("tray") .icon(initial_icon) + .icon_as_template(cfg!(target_os = "macos")) .menu(&menu) .show_menu_on_left_click(true) .on_menu_event({ @@ -886,7 +899,7 @@ pub fn create_tray(app: &AppHandle) -> tauri::Result<()> { }; if let Ok(icon) = Image::from_bytes(include_bytes!("../icons/tray-stop-icon.png")) { - let _ = tray.set_icon(Some(icon)); + set_tray_template_icon(&tray, icon); } } }); @@ -907,7 +920,7 @@ pub fn create_tray(app: &AppHandle) -> tauri::Result<()> { let current_mode = get_current_mode(&app_handle); if let Ok(icon) = Image::from_bytes(get_mode_icon(current_mode)) { - let _ = tray.set_icon(Some(icon)); + set_tray_template_icon(&tray, icon); } } });