Merge pull request #440 from fufesou/fix/linux_is_kde

fix: linux is_kde()
This commit is contained in:
RustDesk
2025-11-17 10:35:24 +08:00
committed by GitHub

View File

@@ -85,6 +85,8 @@ fn find_cmd_path(cmd: &'static str) -> String {
cmd.to_string()
}
// Deprecated. Use `hbb_common::platform::linux::is_kde_session()` instead for now.
// Or we need to set the correct environment variable in the server process.
#[inline]
pub fn is_kde() -> bool {
if let Ok(env) = std::env::var(XDG_CURRENT_DESKTOP) {
@@ -94,6 +96,18 @@ pub fn is_kde() -> bool {
}
}
// Don't use `hbb_common::platform::linux::is_kde()` here.
// It's not correct in the server process.
pub fn is_kde_session() -> bool {
std::process::Command::new(CMD_SH.as_str())
.arg("-c")
.arg("pgrep -f kded[0-9]+")
.stdout(std::process::Stdio::piped())
.output()
.map(|o| !o.stdout.is_empty())
.unwrap_or(false)
}
#[inline]
pub fn is_gdm_user(username: &str) -> bool {
username == "gdm" || username == "sddm"