diff options
| author | Junseo5 <[email protected]> | 2026-01-06 15:19:29 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-06 14:19:29 +0800 |
| commit | f510d17bd364dc107854ebc4bc0a0635f1bca522 (patch) | |
| tree | b359260de15d6cb486709b0f7139b6c6f8bc8a24 | |
| parent | 45fea6587e32eb578f0cc563a15345905c619b0d (diff) | |
| download | opencode-f510d17bd364dc107854ebc4bc0a0635f1bca522.tar.gz opencode-f510d17bd364dc107854ebc4bc0a0635f1bca522.zip | |
fix(desktop): add single-instance plugin to prevent multiple windows (#6966)
| -rw-r--r-- | packages/desktop/src-tauri/Cargo.toml | 1 | ||||
| -rw-r--r-- | packages/desktop/src-tauri/src/lib.rs | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/packages/desktop/src-tauri/Cargo.toml b/packages/desktop/src-tauri/Cargo.toml index 9afeee945..63aafe280 100644 --- a/packages/desktop/src-tauri/Cargo.toml +++ b/packages/desktop/src-tauri/Cargo.toml @@ -29,6 +29,7 @@ tauri-plugin-window-state = "2" tauri-plugin-clipboard-manager = "2" tauri-plugin-http = "2" tauri-plugin-notification = "2" +tauri-plugin-single-instance = "2" serde = { version = "1", features = ["derive"] } serde_json = "1" diff --git a/packages/desktop/src-tauri/src/lib.rs b/packages/desktop/src-tauri/src/lib.rs index 4012fe1a5..5d1610fa3 100644 --- a/packages/desktop/src-tauri/src/lib.rs +++ b/packages/desktop/src-tauri/src/lib.rs @@ -189,6 +189,13 @@ pub fn run() { let updater_enabled = option_env!("TAURI_SIGNING_PRIVATE_KEY").is_some(); let mut builder = tauri::Builder::default() + .plugin(tauri_plugin_single_instance::init(|app, _args, _cwd| { + // Focus existing window when another instance is launched + if let Some(window) = app.get_webview_window("main") { + let _ = window.set_focus(); + let _ = window.unminimize(); + } + })) .plugin(tauri_plugin_os::init()) .plugin(tauri_plugin_window_state::Builder::new().build()) .plugin(tauri_plugin_store::Builder::new().build()) |
