fix: cannot start gui on linux (#1090)

This commit is contained in:
lazebird
2025-07-07 22:59:11 +08:00
committed by GitHub
parent c3a217c9d2
commit 0025973453
3 changed files with 26 additions and 23 deletions

View File

@@ -40,8 +40,7 @@ chrono = { version = "0.4.37", features = ["serde"] }
once_cell = "1.18.0"
dashmap = "6.0"
privilege = "0.3"
elevated-command = "1.1.2"
gethostname = "0.5"
dunce = "1.0.4"

View File

@@ -128,18 +128,20 @@ fn toggle_window_visibility<R: tauri::Runtime>(app: &tauri::AppHandle<R>) {
#[cfg(not(target_os = "android"))]
fn check_sudo() -> bool {
use std::env::current_exe;
let is_elevated = privilege::user::privileged();
let is_elevated = elevated_command::Command::is_elevated();
if !is_elevated {
let Ok(exe) = current_exe() else {
return true;
};
let exe_path = std::env::var("APPIMAGE")
.ok()
.or_else(|| std::env::args().next())
.unwrap_or_default();
let args: Vec<String> = std::env::args().collect();
let mut elevated_cmd = privilege::runas::Command::new(exe);
let mut stdcmd = std::process::Command::new(&exe_path);
if args.contains(&AUTOSTART_ARG.to_owned()) {
elevated_cmd.arg(AUTOSTART_ARG);
stdcmd.arg(AUTOSTART_ARG);
}
let _ = elevated_cmd.force_prompt(true).hide(true).gui(true).run();
elevated_command::Command::new(stdcmd)
.output()
.expect("Failed to run elevated command");
}
is_elevated
}