diff --git a/src/common.rs b/src/common.rs index c6894bdef..86af0f899 100644 --- a/src/common.rs +++ b/src/common.rs @@ -1482,12 +1482,13 @@ pub fn load_custom_client() { read_custom_client(data.trim()); return; } - let Ok(cmd) = std::env::current_exe() else { - return; - }; - let Some(path) = cmd.parent().map(|x| x.join("custom.txt")) else { + let Some(path) = std::env::current_exe().map_or(None, |x| x.parent().map(|x| x.to_path_buf())) + else { return; }; + #[cfg(target_os = "macos")] + let path = path.join("../Resources"); + let path = path.join("custom.txt"); if path.is_file() { let Ok(data) = std::fs::read_to_string(&path) else { log::error!("Failed to read custom client config"); diff --git a/src/tray.rs b/src/tray.rs index 3f94ca04b..6d82fcc6d 100644 --- a/src/tray.rs +++ b/src/tray.rs @@ -205,15 +205,17 @@ async fn start_query_session_count(sender: std::sync::mpsc::Sender) { } fn load_icon_from_asset() -> Option { + let Some(path) = std::env::current_exe().map_or(None, |x| x.parent().map(|x| x.to_path_buf())) + else { + return None; + }; + #[cfg(target_os = "macos")] + let path = path.join("../Resources/AppIcon.icns"); #[cfg(windows)] - if let Ok(cmd) = std::env::current_exe() { - let path = r".\data\flutter_assets\assets\icon.png"; - if let Some(path) = cmd.parent().map(|x| x.join(path)) { - if path.exists() { - if let Ok(image) = image::open(path) { - return Some(image); - } - } + let path = path.join(r"data\flutter_assets\assets\icon.png"); + if path.exists() { + if let Ok(image) = image::open(path) { + return Some(image); } } None