diff --git a/src-tauri/src/app_state.rs b/src-tauri/src/app_state.rs index f115c48..e78b1ac 100644 --- a/src-tauri/src/app_state.rs +++ b/src-tauri/src/app_state.rs @@ -77,14 +77,32 @@ impl ManagedAppState { } } +fn app_data_dir() -> PathBuf { + #[cfg(target_os = "windows")] + { + std::env::var("LOCALAPPDATA") + .map(PathBuf::from) + .unwrap_or_else(|_| std::env::temp_dir()) + .join("transcript") + } + + #[cfg(target_os = "linux")] + { + std::env::var("HOME") + .map(|home| PathBuf::from(home).join(".local").join("share").join("transcript")) + .unwrap_or_else(|_| std::env::temp_dir().join("transcript")) + } + + #[cfg(not(any(target_os = "windows", target_os = "linux")))] + { + std::env::temp_dir().join("transcript") + } +} + fn default_model_dir() -> PathBuf { - std::env::current_dir() - .unwrap_or_else(|_| std::env::temp_dir()) - .join("models") + app_data_dir().join("models") } fn default_recordings_dir() -> PathBuf { - std::env::current_dir() - .unwrap_or_else(|_| std::env::temp_dir()) - .join("recordings") + app_data_dir().join("recordings") } diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 2af7c7b..af95823 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -31,6 +31,6 @@ "active": true, "targets": "all", "icon": ["icons/icon.ico"], - "externalBin": [] + "externalBin": ["binaries/sherpa-onnx-offline"] } }