diff --git a/libs/hbb_common/src/platform/linux.rs b/libs/hbb_common/src/platform/linux.rs index da79e9e39..865033204 100644 --- a/libs/hbb_common/src/platform/linux.rs +++ b/libs/hbb_common/src/platform/linux.rs @@ -43,6 +43,10 @@ fn get_display_server_of_session(session: &str) -> String { display_server } } else { + // loginctl has not given the expected output. try something else. + if let Ok(sestype) = std::env::var("XDG_SESSION_TYPE") { + return sestype.to_owned(); + } // If the session is not a tty, then just return the type as usual display_server } @@ -80,6 +84,11 @@ pub fn get_value_of_seat0(i: usize) -> String { } } + // loginctl has not given the expected output. try something else. + if let Ok(sid) = std::env::var("XDG_SESSION_ID") { // could also execute "cat /proc/self/sessionid" + return sid.to_owned(); + } + return "".to_owned(); }