109 lines
3.4 KiB
Rust
109 lines
3.4 KiB
Rust
#![cfg_attr(
|
|
all(not(debug_assertions), target_os = "windows"),
|
|
windows_subsystem = "windows"
|
|
)]
|
|
|
|
#[cfg(target_os = "macos")]
|
|
#[macro_use]
|
|
extern crate objc;
|
|
|
|
use tauri::{Manager, WindowEvent};
|
|
use tauri_plugin_sql::{Migration, MigrationKind};
|
|
|
|
#[cfg(target_os = "macos")]
|
|
use window_ext::WindowExt;
|
|
#[cfg(target_os = "macos")]
|
|
mod window_ext;
|
|
|
|
#[derive(Clone, serde::Serialize)]
|
|
struct Payload {
|
|
args: Vec<String>,
|
|
cwd: String,
|
|
}
|
|
|
|
fn main() {
|
|
tauri::Builder::default()
|
|
.setup(|app| {
|
|
#[cfg(target_os = "macos")]
|
|
let main_window = app.get_window("main").unwrap();
|
|
|
|
#[cfg(target_os = "macos")]
|
|
main_window.position_traffic_lights(8.0, 20.0); // set inset for traffic lights (macos)
|
|
|
|
Ok(())
|
|
})
|
|
.on_window_event(|e| {
|
|
#[cfg(target_os = "macos")]
|
|
let apply_offset = || {
|
|
let win = e.window();
|
|
// keep inset for traffic lights when window resize (macos)
|
|
win.position_traffic_lights(8.0, 20.0);
|
|
};
|
|
#[cfg(target_os = "macos")]
|
|
match e.event() {
|
|
WindowEvent::Resized(..) => apply_offset(),
|
|
WindowEvent::ThemeChanged(..) => apply_offset(),
|
|
_ => {}
|
|
}
|
|
})
|
|
.plugin(
|
|
tauri_plugin_sql::Builder::default()
|
|
.add_migrations(
|
|
"sqlite:lume.db",
|
|
vec![
|
|
Migration {
|
|
version: 20230418013219,
|
|
description: "initial data",
|
|
sql: include_str!("../migrations/20230418013219_initial_data.sql"),
|
|
kind: MigrationKind::Up,
|
|
},
|
|
Migration {
|
|
version: 20230418080146,
|
|
description: "create chats",
|
|
sql: include_str!("../migrations/20230418080146_create_chats.sql"),
|
|
kind: MigrationKind::Up,
|
|
},
|
|
Migration {
|
|
version: 20230420040005,
|
|
description: "insert last login to settings",
|
|
sql: include_str!("../migrations/20230420040005_insert_last_login_to_settings.sql"),
|
|
kind: MigrationKind::Up,
|
|
},
|
|
Migration {
|
|
version: 20230425023912,
|
|
description: "add pubkey to channel",
|
|
sql: include_str!("../migrations/20230425023912_add_pubkey_to_channel.sql"),
|
|
kind: MigrationKind::Up,
|
|
},
|
|
Migration {
|
|
version: 20230425024708,
|
|
description: "add default channels",
|
|
sql: include_str!("../migrations/20230425024708_add_default_channels.sql"),
|
|
kind: MigrationKind::Up,
|
|
},
|
|
Migration {
|
|
version: 20230425050745,
|
|
description: "create blacklist",
|
|
sql: include_str!("../migrations/20230425050745_add_blacklist_model.sql"),
|
|
kind: MigrationKind::Up,
|
|
},
|
|
Migration {
|
|
version: 20230427081017,
|
|
description: "clean up account",
|
|
sql: include_str!("../migrations/20230427081017_clean_up_account.sql"),
|
|
kind: MigrationKind::Up,
|
|
},
|
|
],
|
|
)
|
|
.build(),
|
|
)
|
|
.plugin(tauri_plugin_single_instance::init(|app, argv, cwd| {
|
|
println!("{}, {argv:?}, {cwd}", app.package_info().name);
|
|
app
|
|
.emit_all("single-instance", Payload { args: argv, cwd })
|
|
.unwrap();
|
|
}))
|
|
.run(tauri::generate_context!())
|
|
.expect("error while running tauri application");
|
|
}
|