diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
index 964fdf5..8106618 100644
--- a/src-tauri/Cargo.lock
+++ b/src-tauri/Cargo.lock
@@ -5066,7 +5066,7 @@ dependencies = [
[[package]]
name = "wrystr"
-version = "0.1.1"
+version = "0.1.2"
dependencies = [
"keyring",
"rusqlite",
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
index cf67f70..20ea14f 100644
--- a/src-tauri/Cargo.toml
+++ b/src-tauri/Cargo.toml
@@ -18,7 +18,7 @@ crate-type = ["staticlib", "cdylib", "rlib"]
tauri-build = { version = "2", features = [] }
[dependencies]
-tauri = { version = "2", features = ["devtools"] }
+tauri = { version = "2", features = ["devtools", "tray-icon"] }
tauri-plugin-opener = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs
index bf5598a..d39a6eb 100644
--- a/src-tauri/src/lib.rs
+++ b/src-tauri/src/lib.rs
@@ -1,20 +1,22 @@
use keyring::Entry;
use rusqlite::{params, Connection};
use std::sync::Mutex;
-use tauri::Manager;
+use tauri::{
+ menu::{Menu, MenuItem},
+ tray::{MouseButton, MouseButtonState, TrayIconBuilder, TrayIconEvent},
+ Manager, WindowEvent,
+};
// ── OS keychain ─────────────────────────────────────────────────────────────
const KEYRING_SERVICE: &str = "wrystr";
-/// Store an nsec in the OS keychain, keyed by pubkey (hex).
#[tauri::command]
fn store_nsec(pubkey: String, nsec: String) -> Result<(), String> {
let entry = Entry::new(KEYRING_SERVICE, &pubkey).map_err(|e| e.to_string())?;
entry.set_password(&nsec).map_err(|e| e.to_string())
}
-/// Load a stored nsec from the OS keychain. Returns None if no entry exists.
#[tauri::command]
fn load_nsec(pubkey: String) -> Result