From d6a5591782c8eb696b86fb39471a0b847e66f8a4 Mon Sep 17 00:00:00 2001 From: FTCHD <144691102+FTCHD@users.noreply.github.com> Date: Fri, 24 Oct 2025 11:51:22 +0200 Subject: [PATCH] light/dark tray icons, #18 Signed-off-by: FTCHD <144691102+FTCHD@users.noreply.github.com> --- lib/tray.ts | 23 +++++- src-tauri/icons/favicon/icon-light.png | Bin 0 -> 15382 bytes src-tauri/icons/favicon/icon.png | Bin 27370 -> 14405 bytes src-tauri/src/lib.rs | 94 ++++++++++++++++++++++++- 4 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 src-tauri/icons/favicon/icon-light.png diff --git a/lib/tray.ts b/lib/tray.ts index b755a1d..969d8b4 100644 --- a/lib/tray.ts +++ b/lib/tray.ts @@ -1,4 +1,5 @@ import * as Sentry from '@sentry/browser' +import { invoke } from '@tauri-apps/api/core' import { Menu } from '@tauri-apps/api/menu' import { MenuItem } from '@tauri-apps/api/menu' import { resolveResource } from '@tauri-apps/api/path' @@ -22,6 +23,21 @@ async function getTray() { return await TrayIcon.getById('main-tray') } +async function resolveTrayIconForTheme() { + let theme: 'light' | 'dark' = 'dark' + try { + const t = (await invoke('get_system_theme')) || 'dark' + theme = t === 'dark' ? 'dark' : 'light' + } catch {} + + console.log('[resolveTrayIconForTheme] theme', theme) + + const pickedPath = theme === 'dark' ? 'icons/favicon/icon.png' : 'icons/favicon/icon-light.png' + console.log('[resolveTrayIconForTheme] pickedPath', pickedPath) + + return await resolveResource(pickedPath) +} + export async function showLoadingTray() { console.log('[showLoadingTray]') @@ -88,7 +104,9 @@ export async function showDefaultTray() { const newMenu = await buildMenu() await tray.setMenu(newMenu) - await tray.setIcon(await resolveResource('icons/favicon/icon.png')) + + const iconPath = await resolveTrayIconForTheme() + await tray.setIcon(iconPath) await tray.setTooltip('Rclone') console.log('[showDefaultTray] tray menu rebuilt') @@ -98,9 +116,10 @@ export async function initTray() { try { console.log('[initTray]') + const initialIcon = await resolveTrayIconForTheme() await TrayIcon.new({ id: 'main-tray', - icon: (await resolveResource('icons/favicon/icon.png'))!, + icon: initialIcon!, tooltip: 'Rclone', menuOnLeftClick: true, action: async (event: TrayIconEvent) => { diff --git a/src-tauri/icons/favicon/icon-light.png b/src-tauri/icons/favicon/icon-light.png new file mode 100644 index 0000000000000000000000000000000000000000..ad319778282a7d2a41299c193f07aaab95277854 GIT binary patch literal 15382 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 VrF6W|k9z^QqGPCCaM>>C{{r`q%Qyf4 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/favicon/icon.png b/src-tauri/icons/favicon/icon.png index d93c321d1ee8514dd049be3c5e8939eb6ebd5df8..5bed5380efe7a7a362c1b2170615ac320b8ae42e 100644 GIT binary patch literal 14405 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 literal 27370 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 M{gzsVie1?M04D}w!2kdN diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index a344e30..0c8c703 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -248,6 +248,98 @@ fn get_uid() -> String { return machine_uid::get().unwrap(); } +#[tauri::command] +fn get_system_theme() -> String { + #[cfg(target_os = "macos")] + { + use std::process::Command; + if let Ok(output) = Command::new("defaults") + .args(&["read", "-g", "AppleInterfaceStyle"]) + .output() + { + if output.status.success() { + let out = String::from_utf8_lossy(&output.stdout).to_ascii_lowercase(); + if out.contains("dark") { + return "dark".to_string(); + } + } + } + return "light".to_string(); + } + + #[cfg(target_os = "windows")] + { + use std::process::Command; + if let Ok(output) = Command::new("reg").args(&[ + "query", + r"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", + "/v", + "AppsUseLightTheme", + ]).output() { + if output.status.success() { + let out = String::from_utf8_lossy(&output.stdout).to_ascii_lowercase(); + if out.contains("0x0") || out.contains("0x00000000") { + return "dark".to_string(); + } + if out.contains("0x1") || out.contains("0x00000001") { + return "light".to_string(); + } + } + } + return "light".to_string(); + } + + #[cfg(target_os = "linux")] + { + use std::process::Command; + + // GNOME color-scheme (prefer-dark) + if let Ok(output) = Command::new("gsettings") + .args(&["get", "org.gnome.desktop.interface", "color-scheme"]) + .output() + { + if output.status.success() { + let out = String::from_utf8_lossy(&output.stdout).to_ascii_lowercase(); + if out.contains("dark") { + return "dark".to_string(); + } + } + } + + // GNOME gtk-theme name contains "dark" + if let Ok(output) = Command::new("gsettings") + .args(&["get", "org.gnome.desktop.interface", "gtk-theme"]) + .output() + { + if output.status.success() { + let out = String::from_utf8_lossy(&output.stdout).to_ascii_lowercase(); + if out.contains("dark") { + return "dark".to_string(); + } + } + } + + // KDE color scheme via kreadconfig5 + if let Ok(output) = Command::new("kreadconfig5") + .args(&["--group", "General", "--key", "ColorScheme"]) + .output() + { + if output.status.success() { + let out = String::from_utf8_lossy(&output.stdout).to_ascii_lowercase(); + if out.contains("dark") { + return "dark".to_string(); + } + } + } + + return "light".to_string(); + } + + #[cfg(not(any(target_os = "macos", target_os = "windows", target_os = "linux")))] + { + "dark".to_string() + } +} #[tauri::command] fn is_rclone_running(port: Option) -> bool { @@ -710,7 +802,7 @@ pub fn run() { .plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_opener::init()) .plugin(tauri_plugin_prevent_default::debug()) - .invoke_handler(tauri::generate_handler![unzip_file, get_arch, get_uid, is_rclone_running, stop_rclone_processes, prompt_password, prompt_text, stop_pid, update_system_rclone, test_proxy_connection, is_tray_supported]) + .invoke_handler(tauri::generate_handler![unzip_file, get_arch, get_uid, is_rclone_running, stop_rclone_processes, prompt_password, prompt_text, stop_pid, update_system_rclone, test_proxy_connection, is_tray_supported, get_system_theme]) .setup(|_app| Ok(())) // .setup(|app| { // if cfg!(debug_assertions) {