feat: add simple tray icon
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
pub mod commands;
|
||||
pub mod nostr;
|
||||
pub mod tray;
|
||||
|
||||
use age::secrecy::ExposeSecret;
|
||||
use keyring::Entry;
|
||||
@@ -19,9 +20,9 @@ pub struct Nostr {
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let ctx = tauri::generate_context!();
|
||||
tauri::Builder::default()
|
||||
.setup(|app| {
|
||||
let _tray = tray::create_tray(app.handle()).unwrap();
|
||||
let handle = app.handle().clone();
|
||||
let config_dir = handle.path().app_config_dir().unwrap();
|
||||
let keyring_entry = Entry::new("Lume Secret Storage", "AppKey").unwrap();
|
||||
@@ -120,7 +121,7 @@ fn main() {
|
||||
commands::folder::get_all_nsecs,
|
||||
commands::opg::fetch_opg,
|
||||
])
|
||||
.build(ctx)
|
||||
.build(tauri::generate_context!())
|
||||
.expect("error while running tauri application")
|
||||
.run(|_app_handle, event| match event {
|
||||
tauri::RunEvent::ExitRequested { api, .. } => {
|
||||
|
||||
40
src-tauri/src/tray.rs
Normal file
40
src-tauri/src/tray.rs
Normal file
@@ -0,0 +1,40 @@
|
||||
use tauri::{tray::ClickType, Manager, Runtime};
|
||||
|
||||
pub fn create_tray<R: Runtime>(app: &tauri::AppHandle<R>) -> tauri::Result<()> {
|
||||
let menu = tauri::menu::MenuBuilder::new(app)
|
||||
.item(&tauri::menu::MenuItem::with_id(app, "quit", "Quit", true, None::<&str>).unwrap())
|
||||
.build()
|
||||
.unwrap();
|
||||
|
||||
let tray = tauri::tray::TrayIconBuilder::with_id("main_tray")
|
||||
.tooltip("Lume")
|
||||
.icon(tauri::Icon::Rgba {
|
||||
rgba: include_bytes!("../icons/icon.png").to_vec(),
|
||||
width: 500,
|
||||
height: 500,
|
||||
})
|
||||
.icon_as_template(true)
|
||||
.menu(&menu)
|
||||
.build(app)
|
||||
.unwrap();
|
||||
|
||||
tray.on_menu_event(move |app, event| match event.id.0.as_str() {
|
||||
"quit" => {
|
||||
let handle = app.app_handle();
|
||||
handle.exit(0);
|
||||
}
|
||||
_ => {}
|
||||
});
|
||||
|
||||
tray.on_tray_icon_event(|tray, event| {
|
||||
if event.click_type == ClickType::Left {
|
||||
let app = tray.app_handle();
|
||||
if let Some(window) = app.get_webview_window("main") {
|
||||
let _ = window.show();
|
||||
let _ = window.set_focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user