アプリを再起動したときに、前回のウィンドウサイズや表示位置、最大化状態を復元するためのプラグイン tauri-plugin-window-state です。
前提条件
Permissions (権限) の設定
src-tauri/capabilities/default.json に以下の権限を追加します。
{
"permissions": [
...,
"window-state:default"
]
}
1. セットアップ
このプラグインは主に Rust 側だけで完結しますが、状態保存ファイルをディスクに書き込むために tauri-plugin-fs 等は不要です(内部で処理されます)。
npm run tauri add window-state
src-tauri/src/lib.rs:
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_window_state::Builder::default().build())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
3. 動作確認
これだけで、アプリ終了時のウィンドウ状態が自動的に保存され、次回起動時に復元されます。
- ウィンドウ位置 (x, y)
- ウィンドウサイズ (width, height)
- 最大化状態 (maximized)
- フルスクリーン状態 (fullscreen)
4. 高度な設定
特定のウィンドウのみ対象外にしたり、保存する状態ファイル名を変更したりできます。
use tauri_plugin_window_state::Builder;
// use tauri_plugin_window_state::StateFlags; // 保存項目を細かく制御する場合に使用
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(
Builder::default()
.with_filename("window-state.json") // 保存ファイル名
.with_denylist(&["splashscreen"]) // "splashscreen" というラベルのウィンドウは無視
// .with_state_flags(StateFlags::SIZE | StateFlags::POSITION) // 例: サイズと位置のみ保存
.build(),
)
// ...
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
注意点
- マルチモニター環境でモニター構成が変わった場合(例:外部ディスプレイを外した)、ウィンドウが画面外に配置されてしまう問題を防ぐため、プラグインは画面内への自動調整機能を持っています。
- 開発中、ウィンドウが小さすぎる状態で保存されてしまった場合は、保存ファイル(AppData 内)を削除してリセットしてください。