From 7d8e39ca3d1c6bfd7ea202af0e96f04a87424681 Mon Sep 17 00:00:00 2001 From: Vassiliy Yegorov Date: Wed, 10 Jun 2026 09:25:29 +0700 Subject: [PATCH] feat(app): remember window size/position across restarts (window-state plugin) Co-Authored-By: Claude Opus 4.8 (1M context) --- app/src-tauri/Cargo.lock | 16 ++++++++++++++++ app/src-tauri/Cargo.toml | 1 + app/src-tauri/capabilities/default.json | 3 ++- app/src-tauri/src/lib.rs | 2 ++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src-tauri/Cargo.lock b/app/src-tauri/Cargo.lock index f66ca8e..a4c6423 100644 --- a/app/src-tauri/Cargo.lock +++ b/app/src-tauri/Cargo.lock @@ -3228,6 +3228,7 @@ dependencies = [ "tauri", "tauri-build", "tauri-plugin-notification", + "tauri-plugin-window-state", "tokio", ] @@ -3549,6 +3550,21 @@ dependencies = [ "url", ] +[[package]] +name = "tauri-plugin-window-state" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73736611e14142408d15353e21e3cca2f12a3cfb523ad0ce85999b6d2ef1a704" +dependencies = [ + "bitflags 2.13.0", + "log", + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.18", +] + [[package]] name = "tauri-runtime" version = "2.11.2" diff --git a/app/src-tauri/Cargo.toml b/app/src-tauri/Cargo.toml index 139a356..1ed9326 100644 --- a/app/src-tauri/Cargo.toml +++ b/app/src-tauri/Cargo.toml @@ -15,6 +15,7 @@ tauri-build = { version = "2", features = [] } [dependencies] tauri = { version = "2", features = [] } tauri-plugin-notification = "2" +tauri-plugin-window-state = "2" spacesh-proto = { path = "../../crates/spacesh-proto" } tokio = { version = "1", features = ["full"] } serde = { version = "1", features = ["derive"] } diff --git a/app/src-tauri/capabilities/default.json b/app/src-tauri/capabilities/default.json index 045e0a1..f285b0e 100644 --- a/app/src-tauri/capabilities/default.json +++ b/app/src-tauri/capabilities/default.json @@ -11,6 +11,7 @@ "core:resources:default", "core:menu:default", "core:tray:default", - "notification:default" + "notification:default", + "window-state:default" ] } diff --git a/app/src-tauri/src/lib.rs b/app/src-tauri/src/lib.rs index 7904d80..b1db4f5 100644 --- a/app/src-tauri/src/lib.rs +++ b/app/src-tauri/src/lib.rs @@ -5,6 +5,8 @@ use tauri::Manager; #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() + // Persist + restore the window's size, position and maximized state across restarts. + .plugin(tauri_plugin_window_state::Builder::default().build()) .plugin(tauri_plugin_notification::init()) .setup(|app| { let handle = app.handle().clone();