#![cfg_attr( all(not(debug_assertions), target_os = "windows"), windows_subsystem = "windows" )] use tauri::Manager; // Window Vibrancy #[cfg(target_os = "windows")] use window_vibrancy::apply_mica; #[cfg(target_os = "macos")] use window_vibrancy::{apply_vibrancy, NSVisualEffectMaterial}; use std::time::{SystemTime, UNIX_EPOCH}; // System Tray #[cfg(desktop)] mod tray; // Local Modules mod cmds; mod steam; mod tool; #[tauri::command] fn on_button_clicked() -> String { let start = SystemTime::now(); let since_the_epoch = start .duration_since(UNIX_EPOCH) .expect("Time went backwards") .as_millis(); format!("on_button_clicked called from Rust! (timestamp: {since_the_epoch}ms)") } fn main() { tauri::Builder::default() .plugin(tauri_plugin_store::Builder::new().build()) .plugin(tauri_plugin_notification::init()) .plugin(tauri_plugin_http::init()) .plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_global_shortcut::Builder::new().build()) .plugin(tauri_plugin_clipboard_manager::init()) .plugin(tauri_plugin_fs::init()) .plugin(tauri_plugin_os::init()) .plugin(tauri_plugin_process::init()) .plugin(tauri_plugin_dialog::init()) // .plugin(tauri_plugin_store::Builder::default().build()) // .plugin(tauri_plugin_updater::Builder::new().build()) .invoke_handler(tauri::generate_handler![on_button_clicked]) .setup(|app| { // Tray #[cfg(all(desktop))] { let handle = app.handle(); tray::create_tray(handle)?; } // Get Window let window = app.get_webview_window("main").unwrap(); // Vibrant Window #[cfg(target_os = "macos")] apply_vibrancy(&window, NSVisualEffectMaterial::HudWindow, None, Some(10.0)) .expect("Unsupported platform! 'apply_vibrancy' is only supported on macOS"); #[cfg(target_os = "windows")] apply_mica(&window, Some(false)) .expect("Unsupported platform! 'apply_mica' is only supported on Windows"); // apply_blur(&window, Some((18, 18, 18, 0))) // .expect("Unsupported platform! 'apply_blur' is only supported on Windows"); Ok(()) }) .invoke_handler(tauri::generate_handler![ cmds::greet, cmds::launch_game, cmds::kill_game, cmds::kill_steam, cmds::get_steam_path, cmds::set_auto_login_user, cmds::check_file_exists, on_button_clicked ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }