diff options
| author | Ellie Huxtable <ellie@elliehuxtable.com> | 2024-06-06 10:36:39 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-06 10:36:39 +0100 |
| commit | d7f77ebfe1907f6993ba54bbd1b5c8544cdf7214 (patch) | |
| tree | 11e978a6008210c8a6751f33471c623a7b464fa1 /ui/backend/src/main.rs | |
| parent | chore(release): v18.3.0-prerelease.1 (#2090) (diff) | |
| download | atuin-d7f77ebfe1907f6993ba54bbd1b5c8544cdf7214.zip | |
feat(ui): setup single-instance (#2093)
Diffstat (limited to 'ui/backend/src/main.rs')
| -rw-r--r-- | ui/backend/src/main.rs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/ui/backend/src/main.rs b/ui/backend/src/main.rs index 88c9ae87..f07e0c95 100644 --- a/ui/backend/src/main.rs +++ b/ui/backend/src/main.rs @@ -2,14 +2,15 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] use std::path::PathBuf; -use time::format_description::well_known::Rfc3339; -use atuin_client::settings::Settings; +use tauri::{AppHandle, Manager}; +use time::format_description::well_known::Rfc3339; mod db; mod dotfiles; mod store; +use atuin_client::settings::Settings; use atuin_client::{ encryption, history::HISTORY_TAG, record::sqlite_store::SqliteStore, record::store::Store, }; @@ -165,6 +166,17 @@ async fn home_info() -> Result<HomeInfo, String> { Ok(info) } +fn show_window(app: &AppHandle) { + let windows = app.webview_windows(); + + windows + .values() + .next() + .expect("Sorry, no window found") + .set_focus() + .expect("Can't Bring Window to Focus"); +} + fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![ @@ -186,6 +198,9 @@ fn main() { ]) .plugin(tauri_plugin_sql::Builder::default().build()) .plugin(tauri_plugin_http::init()) + .plugin(tauri_plugin_single_instance::init(|app, args, cwd| { + let _ = show_window(app); + })) .run(tauri::generate_context!()) .expect("error while running tauri application"); } |
