From f2148eed9a56ef1b5ba73db73e15486e188e01b7 Mon Sep 17 00:00:00 2001 From: Ron Waldon-Howe Date: Wed, 10 Jan 2024 14:07:30 +1100 Subject: [PATCH] fix: thorough detection of desktop environment --- pages/system/src/about.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pages/system/src/about.rs b/pages/system/src/about.rs index 61bae4a..86a6b60 100644 --- a/pages/system/src/about.rs +++ b/pages/system/src/about.rs @@ -74,7 +74,13 @@ impl Info { info.windowing_system = session; } - if let Ok(mut session) = std::env::var("DESKTOP_SESSION") { + // prefer XDG_SESSION_DESKTOP because the value is singular: https://www.freedesktop.org/software/systemd/man/latest/pam_systemd.html + if let Ok(mut session) = std::env::var("XDG_SESSION_DESKTOP") + // otherwise, XDG_CURRENT_DESKTOP (could be plural): https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html + .or_else(|_| std::env::var("XDG_CURRENT_DESKTOP")) + // fallback to legacy environment variable + .or_else(|_| std::env::var("DESKTOP_SESSION")) + { if let Some(first) = session.get_mut(0..1) { first.make_ascii_uppercase(); }