feat: added functions for flags

This commit is contained in:
Arduinum
2026-03-12 20:21:05 +03:00
committed by Arduinum628
parent 4ad58c2c30
commit 4d2bb6597a
2 changed files with 53 additions and 8 deletions

View File

@@ -0,0 +1,44 @@
#[cfg(target_os = "linux")]
pub fn apply_linux_cli_flags() {
let disable_webkit_compositing_mode = std::env::args().any(|a| a == "--webkit-disable-compositing-mode");
if disable_webkit_compositing_mode {
unsafe { std::env::set_var("WEBKIT_DISABLE_COMPOSITING_MODE", "1"); }
}
let webkit_disable_dmabuf_renderer = std::env::args().any(|a| a == "--webkit-disable-dmabuf-renderer");
if webkit_disable_dmabuf_renderer {
unsafe { std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1"); }
}
let nv_disable_explicit_sync = std::env::args().any(|a| a == "--nv-disable-explicit-sync");
if nv_disable_explicit_sync {
unsafe { std::env::set_var("__NV_DISABLE_EXPLICIT_SYNC", "1"); }
}
}
#[cfg(target_os = "linux")]
pub fn print_help() {
println!(
r#"Kawai Focus — Pomodoro таймер
Использование:
kawai-focus [FLAGS]
Флаги (Linux):
--webkit-disable-compositing-mode
Отключает WebKit compositing mode.
Помогает при графических артефактах на некоторых GPU.
--webkit-disable-dmabuf-renderer
Отключает DMA-BUF renderer WebKit.
Полезно при проблемах с Wayland и с отсутствием GBM.
--nv-disable-explicit-sync
Отключает explicit sync драйвера NVIDIA.
Иногда исправляет: зависания интерфейса, проблемы с отсутствием GBM.
--help
Показать эту справку и выйти.
"#);
}

View File

@@ -1,14 +1,15 @@
#[cfg(target_os = "linux")] mod flags;
fn apply_linux_webkit_cli_flags() {
let disable = std::env::args().any(|a| a == "--disable-webkit-compositing");
if disable {
unsafe { std::env::set_var("WEBKIT_DISABLE_COMPOSITING_MODE", "1"); }
}
}
#[cfg_attr(mobile, tauri::mobile_entry_point)] #[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() { pub fn run() {
apply_linux_webkit_cli_flags(); #[cfg(target_os = "linux")]
if std::env::args().any(|a| a == "--help" || a == "-h") {
flags::print_help();
std::process::exit(0);
}
#[cfg(target_os = "linux")]
flags::apply_linux_cli_flags();
tauri::Builder::default() tauri::Builder::default()
.plugin(tauri_plugin_sql::Builder::default().build()) .plugin(tauri_plugin_sql::Builder::default().build())