From cd5a2def9a90090b241757b6dce341d69c5db66d Mon Sep 17 00:00:00 2001 From: Carter Li Date: Sun, 13 Sep 2026 17:33:15 +0800 Subject: [PATCH] DE (Linux): uses `COSMIC_VERSION` if available https://github.com/pop-os/cosmic-comp/issues/2425#issuecomment-5652401962 --- src/detection/de/de_linux.c | 8 +++++++- src/detection/displayserver/displayserver.h | 1 + src/detection/displayserver/linux/wmde.c | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/detection/de/de_linux.c b/src/detection/de/de_linux.c index 719d81fe8..c6cebbae5 100644 --- a/src/detection/de/de_linux.c +++ b/src/detection/de/de_linux.c @@ -184,6 +184,12 @@ static const char* getTrinity(FFstrbuf* result, [[maybe_unused]] FFDEOptions* op } static const char* getCosmic(FFstrbuf* result, [[maybe_unused]] FFDEOptions* options) { + const char* env = getenv("COSMIC_VERSION"); + if (env) { + ffStrbufSetS(result, env); + return nullptr; + } + if (ffProcessAppendStdOut(result, (char* const[]) { "cosmic-comp", "--version", nullptr }) == nullptr) { // cosmic-comp 0.1.0 (git commit fa88002ba41d2edec25dd7ffdee9719fbb928fc0) ffStrbufSubstrAfterFirstC(result, ' '); @@ -256,7 +262,7 @@ const char* ffDetectDEVersion(const FFstrbuf* deName, FFstrbuf* result, FFDEOpti getUnity(result, options); } else if (ffStrbufEqualS(deName, "trinity")) { getTrinity(result, options); - } else if (ffStrbufEqualS(deName, "COSMIC")) { + } else if (ffStrbufEqualS(deName, FF_DE_PRETTY_COSMIC)) { getCosmic(result, options); } else if (ffStrbufEqualS(deName, FF_DE_PRETTY_ENLIGHTENMENT)) { getEnlightenment(result, options); diff --git a/src/detection/displayserver/displayserver.h b/src/detection/displayserver/displayserver.h index 715a2de43..5ce08c386 100644 --- a/src/detection/displayserver/displayserver.h +++ b/src/detection/displayserver/displayserver.h @@ -17,6 +17,7 @@ #define FF_DE_PRETTY_UKUI "UKUI" #define FF_DE_PRETTY_NEBIDE "NebiDE" #define FF_DE_PRETTY_ENLIGHTENMENT "Enlightenment" +#define FF_DE_PRETTY_COSMIC "COSMIC" #define FF_WM_PRETTY_KWIN "KWin" #define FF_WM_PRETTY_MUTTER "Mutter" diff --git a/src/detection/displayserver/linux/wmde.c b/src/detection/displayserver/linux/wmde.c index 984bdbeda..ed994fc7f 100644 --- a/src/detection/displayserver/linux/wmde.c +++ b/src/detection/displayserver/linux/wmde.c @@ -75,6 +75,10 @@ static const char* parseEnv(void) { return "Sway"; } + if (getenv("COSMIC_VERSION") != nullptr) { + return "COSMIC"; + } + #if __linux__ && !__ANDROID__ if ( getenv("WAYLAND_DISPLAY") != nullptr &&