diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index e85e87a..db065ab 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -19,18 +19,12 @@ use tauri::{ }; fn main() -> std::io::Result<()> { - let mut context = tauri::generate_context!(); + { + let verge = Verge::new(); - let verge = Verge::new(); - - if server::check_singleton(verge.app_singleton_port).is_err() { - println!("app exists"); - return Ok(()); - } - - for win in context.config_mut().tauri.windows.iter_mut() { - if verge.enable_silent_start.unwrap_or(false) { - win.visible = false; + if server::check_singleton(verge.app_singleton_port).is_err() { + println!("app exists"); + return Ok(()); } } @@ -147,7 +141,7 @@ fn main() -> std::io::Result<()> { #[allow(unused_mut)] let mut app = builder - .build(context) + .build(tauri::generate_context!()) .expect("error while running tauri application"); #[cfg(target_os = "macos")] diff --git a/src-tauri/src/utils/resolve.rs b/src-tauri/src/utils/resolve.rs index fd947c9..b7bd0e3 100644 --- a/src-tauri/src/utils/resolve.rs +++ b/src-tauri/src/utils/resolve.rs @@ -6,20 +6,24 @@ pub fn resolve_setup(app: &App) { // init app config init::init_app(app.package_info()); - { + let silent_start = { let global = Data::global(); let verge = global.verge.lock(); let singleton = verge.app_singleton_port.clone(); // setup a simple http server for singleton server::embed_server(&app.handle(), singleton); - } + + verge.enable_silent_start.clone().unwrap_or(false) + }; // core should be initialized after init_app fix #122 let core = Core::global(); core.init(app.app_handle()); - resolve_window(app); + if !silent_start || cfg!(target_os = "macos") { + create_window(&app.app_handle()); + } } /// reset system proxy @@ -33,39 +37,6 @@ pub fn resolve_reset() { crate::log_if_err!(service.stop()); } -/// customize the window theme -fn resolve_window(app: &App) { - let window = app.get_window("main").unwrap(); - - #[cfg(target_os = "windows")] - { - use crate::utils::winhelp; - use window_shadows::set_shadow; - use window_vibrancy::apply_blur; - - let _ = window.set_decorations(false); - let _ = set_shadow(&window, true); - - // todo - // win11 disable this feature temporarily due to lag - if !winhelp::is_win11() { - let _ = apply_blur(&window, None); - } - } - - #[cfg(target_os = "macos")] - { - use tauri::LogicalSize; - use tauri::Size::Logical; - - let _ = window.set_decorations(true); - let _ = window.set_size(Logical(LogicalSize { - width: 800.0, - height: 620.0, - })); - } -} - /// create main window pub fn create_window(app_handle: &AppHandle) { if let Some(window) = app_handle.get_window("main") { @@ -120,7 +91,7 @@ pub fn create_window(app_handle: &AppHandle) { } #[cfg(target_os = "macos")] - crate::log_if_err!(builder.decorations(true).inner_size(800.0, 620.0).build()); + crate::log_if_err!(builder.decorations(true).inner_size(800.0, 642.0).build()); #[cfg(target_os = "linux")] crate::log_if_err!(builder diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 3873473..f3b220b 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -25,13 +25,8 @@ "icons/icon-new.icns", "icons/icon.ico" ], - "resources": [ - "resources" - ], - "externalBin": [ - "sidecar/clash", - "sidecar/clash-meta" - ], + "resources": ["resources"], + "externalBin": ["sidecar/clash", "sidecar/clash-meta"], "copyright": "© 2022 zzzgydi All Rights Reserved", "category": "DeveloperTool", "shortDescription": "A Clash GUI based on tauri.", @@ -51,10 +46,7 @@ "digestAlgorithm": "sha256", "timestampUrl": "", "wix": { - "language": [ - "zh-CN", - "en-US" - ] + "language": ["zh-CN", "en-US"] } } }, @@ -81,22 +73,9 @@ "all": true } }, - "windows": [ - { - "title": "Clash Verge", - "width": 800, - "height": 636, - "center": true, - "resizable": true, - "fullscreen": false, - "decorations": false, - "transparent": true, - "minWidth": 600, - "minHeight": 520 - } - ], + "windows": [], "security": { "csp": "script-src 'unsafe-eval' 'self'; default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self'; img-src data: 'self';" } } -} \ No newline at end of file +}