diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index c8b8f84..7bcb55c 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -291,17 +291,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "auto-launch" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f012b8cc0c850f34117ec8252a44418f2e34a2cf501de89e29b241ae5f79471" -dependencies = [ - "dirs 4.0.0", - "thiserror 1.0.69", - "winreg 0.10.1", -] - [[package]] name = "autocfg" version = "1.5.0" @@ -609,7 +598,6 @@ name = "cc-switch" version = "3.7.0" dependencies = [ "anyhow", - "auto-launch", "chrono", "dirs 5.0.1", "futures", @@ -994,15 +982,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys 0.3.7", -] - [[package]] name = "dirs" version = "5.0.1" @@ -1021,17 +1000,6 @@ dependencies = [ "dirs-sys 0.5.0", ] -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users 0.4.6", - "winapi", -] - [[package]] name = "dirs-sys" version = "0.4.1" @@ -6429,15 +6397,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - [[package]] name = "winreg" version = "0.52.0" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 530d258..2a2dd53 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -34,7 +34,6 @@ tauri-plugin-updater = "2" tauri-plugin-dialog = "2" tauri-plugin-store = "2" tauri-plugin-deep-link = "2" -auto-launch = "0.5" dirs = "5.0" toml = "0.8" toml_edit = "0.22" diff --git a/src-tauri/src/auto_launch.rs b/src-tauri/src/auto_launch.rs deleted file mode 100644 index 43bef82..0000000 --- a/src-tauri/src/auto_launch.rs +++ /dev/null @@ -1,39 +0,0 @@ -use crate::error::AppError; -use auto_launch::AutoLaunch; - -/// 初始化 AutoLaunch 实例 -fn get_auto_launch() -> Result { - let app_name = "CC Switch"; - let app_path = std::env::current_exe().map_err(AppError::AutoLaunchPathError)?; - - let auto_launch = AutoLaunch::new(app_name, &app_path.to_string_lossy(), false, &[] as &[&str]); - Ok(auto_launch) -} - -/// 启用开机自启 -pub fn enable_auto_launch() -> Result<(), AppError> { - let auto_launch = get_auto_launch()?; - auto_launch - .enable() - .map_err(|e| AppError::AutoLaunchEnableError(e.to_string()))?; - log::info!("Auto-launch enabled"); - Ok(()) -} - -/// 禁用开机自启 -pub fn disable_auto_launch() -> Result<(), AppError> { - let auto_launch = get_auto_launch()?; - auto_launch - .disable() - .map_err(|e| AppError::AutoLaunchDisableError(e.to_string()))?; - log::info!("Auto-launch disabled"); - Ok(()) -} - -/// 检查是否已启用开机自启 -pub fn is_auto_launch_enabled() -> Result { - let auto_launch = get_auto_launch()?; - auto_launch - .is_enabled() - .map_err(|e| AppError::AutoLaunchCheckError(e.to_string())) -} diff --git a/src-tauri/src/commands/settings.rs b/src-tauri/src/commands/settings.rs index eeca097..ee76526 100644 --- a/src-tauri/src/commands/settings.rs +++ b/src-tauri/src/commands/settings.rs @@ -37,20 +37,3 @@ pub async fn set_app_config_dir_override( crate::app_store::set_app_config_dir_to_store(&app, path.as_deref())?; Ok(true) } - -/// 设置开机自启 -#[tauri::command] -pub async fn set_auto_launch(enabled: bool) -> Result { - if enabled { - crate::auto_launch::enable_auto_launch().map_err(|e| e.to_string())?; - } else { - crate::auto_launch::disable_auto_launch().map_err(|e| e.to_string())?; - } - Ok(true) -} - -/// 获取开机自启状态 -#[tauri::command] -pub async fn get_auto_launch_status() -> Result { - crate::auto_launch::is_auto_launch_enabled().map_err(|e| e.to_string()) -} diff --git a/src-tauri/src/error.rs b/src-tauri/src/error.rs index 2912d8e..d9b0262 100644 --- a/src-tauri/src/error.rs +++ b/src-tauri/src/error.rs @@ -50,14 +50,6 @@ pub enum AppError { zh: String, en: String, }, - #[error("Failed to get application path for auto-launch: {0}")] - AutoLaunchPathError(#[source] std::io::Error), - #[error("Failed to enable auto-launch: {0}")] - AutoLaunchEnableError(String), - #[error("Failed to disable auto-launch: {0}")] - AutoLaunchDisableError(String), - #[error("Failed to check auto-launch status: {0}")] - AutoLaunchCheckError(String), } impl AppError { diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 5ac537e..0ed21ab 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -1,6 +1,5 @@ mod app_config; mod app_store; -mod auto_launch; mod claude_mcp; mod claude_plugin; mod codex_config; @@ -560,30 +559,6 @@ pub fn run() { // 启动阶段不再无条件保存,避免意外覆盖用户配置。 - // 同步开机自启状态:以 settings.json 为准,保持系统项一致 - { - let settings = crate::settings::get_settings(); - let system_enabled = crate::auto_launch::is_auto_launch_enabled().unwrap_or(false); - - if settings.launch_on_startup != system_enabled { - log::info!( - "开机自启状态不一致:settings={}, system={},以 settings 为准", - settings.launch_on_startup, - system_enabled - ); - - let sync_result = if settings.launch_on_startup { - crate::auto_launch::enable_auto_launch() - } else { - crate::auto_launch::disable_auto_launch() - }; - - if let Err(e) = sync_result { - log::warn!("同步开机自启状态失败: {}", e); - } - } - } - // 注册 deep-link URL 处理器(使用正确的 DeepLinkExt API) log::info!("=== Registering deep-link URL handler ==="); @@ -678,8 +653,6 @@ pub fn run() { commands::get_settings, commands::save_settings, commands::restart_app, - commands::set_auto_launch, - commands::get_auto_launch_status, commands::check_for_updates, commands::is_portable_mode, commands::get_claude_plugin_status, diff --git a/src-tauri/src/settings.rs b/src-tauri/src/settings.rs index 518e1cb..75b4c3c 100644 --- a/src-tauri/src/settings.rs +++ b/src-tauri/src/settings.rs @@ -49,9 +49,6 @@ pub struct AppSettings { pub gemini_config_dir: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub language: Option, - /// 是否开机自启 - #[serde(default)] - pub launch_on_startup: bool, #[serde(default, skip_serializing_if = "Option::is_none")] pub security: Option, /// Claude 自定义端点列表 @@ -80,7 +77,6 @@ impl Default for AppSettings { codex_config_dir: None, gemini_config_dir: None, language: None, - launch_on_startup: false, security: None, custom_endpoints_claude: HashMap::new(), custom_endpoints_codex: HashMap::new(), diff --git a/src/components/settings/WindowSettings.tsx b/src/components/settings/WindowSettings.tsx index 06f0d39..94ec79a 100644 --- a/src/components/settings/WindowSettings.tsx +++ b/src/components/settings/WindowSettings.tsx @@ -19,13 +19,6 @@ export function WindowSettings({ settings, onChange }: WindowSettingsProps) {

- onChange({ launchOnStartup: value })} - /> - { - return await invoke("set_auto_launch", { enabled }); - }, - - async getAutoLaunchStatus(): Promise { - return await invoke("get_auto_launch_status"); - }, }; diff --git a/src/types.ts b/src/types.ts index f94a737..b4cb57f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -101,8 +101,6 @@ export interface Settings { geminiConfigDir?: string; // 首选语言(可选,默认中文) language?: "en" | "zh"; - // 是否开机自启 - launchOnStartup?: boolean; // Claude 自定义端点列表 customEndpointsClaude?: Record; // Codex 自定义端点列表