resolve.rs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. use crate::log_if_err;
  2. use crate::{core::Core, utils::init, utils::server};
  3. use tauri::{App, AppHandle, Manager};
  4. /// handle something when start app
  5. pub fn resolve_setup(app: &App) {
  6. // setup a simple http server for singleton
  7. server::embed_server(&app.handle());
  8. // init app config
  9. init::init_app(app.package_info());
  10. // init states
  11. let core = app.state::<Core>();
  12. core.set_win(app.get_window("main"));
  13. core.init();
  14. // clash.set_window(app.get_window("main"));
  15. // log_if_err!(clash.run_sidecar(&profiles, true));
  16. resolve_window(app, None);
  17. }
  18. /// reset system proxy
  19. pub fn resolve_reset(app_handle: &AppHandle) {
  20. let core = app_handle.state::<Core>();
  21. let mut verge = core.verge.lock().unwrap();
  22. verge.reset_sysproxy();
  23. }
  24. /// customize the window theme
  25. fn resolve_window(app: &App, hide: Option<bool>) {
  26. let window = app.get_window("main").unwrap();
  27. // silent start
  28. hide.map(|hide| {
  29. if hide {
  30. window.hide().unwrap();
  31. }
  32. });
  33. #[cfg(target_os = "windows")]
  34. {
  35. use window_shadows::set_shadow;
  36. use window_vibrancy::apply_blur;
  37. window.set_decorations(false).unwrap();
  38. set_shadow(&window, true).unwrap();
  39. apply_blur(&window, None).unwrap();
  40. }
  41. #[cfg(target_os = "macos")]
  42. {
  43. use tauri::LogicalSize;
  44. use tauri::Size::Logical;
  45. window.set_decorations(true).unwrap();
  46. window
  47. .set_size(Logical(LogicalSize {
  48. width: 800.0,
  49. height: 610.0,
  50. }))
  51. .unwrap();
  52. // use tauri_plugin_vibrancy::MacOSVibrancy;
  53. // #[allow(deprecated)]
  54. // window.apply_vibrancy(MacOSVibrancy::AppearanceBased);
  55. }
  56. }