$XDG_CURRENT_DESKTOP is a list, not a single value. It could be, for instance, Endless:GNOME or Unity:GNOME, something like that. In cases like these, detectDE() in xdg-utils-common.in fails to parse $XDG_CURRENT_DESKTOP properly, since it's only expecting one single value. This is not really a serious issue now because detectDE() has a fallback to check $GNOME_DESKTOP_SESSION_ID, but that variable is always set to this-is-deprecated nowadays and could conceivably disappear in the future. That could break desktop detection in desktops that want to be treated as GNOME by xdg-utils. It'd probably be a good idea to use a glob to see if GNOME (or any other desktop) appears anywhere in the list in the case statement at the start of detectDE() to avoid this.
Dang, kinda wish I'd thoroughly read the related spec(s) before implementing support for it. I'll have to think on it a bit, but your glob suggestion sounds appealing.
For posterity, https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html mentioned in OnlyShowIn/NotShowIn section, "...If $XDG_CURRENT_DESKTOP is set then it contains a colon-separated list of strings. In order, each string is considered." https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-latest.html ...the environment variable $XDG_CURRENT_DESKTOP, which is a colon-separated list of names that the current desktop is known as."
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xdg/xdg-utils/issues/102.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.