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 &&