Added LXQt DE Version info

This commit is contained in:
DarN
2021-05-16 14:00:04 +02:00
parent 8af1cde10b
commit dbde798a56
+27 -1
View File
@@ -19,7 +19,8 @@ typedef enum DEHint
FF_DE_HINT_GNOME,
FF_DE_HINT_CINNAMON,
FF_DE_HINT_XFCE4,
FF_DE_HINT_MATE
FF_DE_HINT_MATE,
FF_DE_HINT_LXQT
} DEHint;
typedef struct ProcData
@@ -150,6 +151,8 @@ static bool applyDEHintIfDE(const FFstrbuf* processName, DEHint* deHint)
*deHint = FF_DE_HINT_XFCE4;
else if(ffStrbufIgnCaseCompS(processName, "mate-session") == 0)
*deHint = FF_DE_HINT_MATE;
else if(ffStrbufIgnCaseCompS(processName, "lxqt-session") == 0)
*deHint = FF_DE_HINT_LXQT;
return *deHint != FF_DE_HINT_UNKNOWN;
}
@@ -278,6 +281,25 @@ static void getXFCE4(FFinstance* instance, FFWMDEResult* result)
}
}
static void getLXQt(FFinstance* instance, FFWMDEResult* result)
{
ffStrbufSetS(&result->deProcessName, "lxqt-session");
ffStrbufSetS(&result->dePrettyName, "LXQt");
if(instance->config.allowSlowOperations)
{
//This is really, really, reaaaally slow. Thank you, LXQt developers
ffProcessAppendStdOut(&result->deVersion, (char* const[]){
"lxqt-session",
"-v",
NULL
});
ffStrbufSubstrAfter(&result->deVersion, result->deProcessName.length);
ffStrbufSubstrBefore(&result->deVersion, 6); //X.XX.X
}
}
static inline void getDEFromHint(FFinstance* instance, FFWMDEResult* result, ProcData* procData)
{
getFromProcDir(result, procData, false);
@@ -295,6 +317,8 @@ static inline void getDEFromHint(FFinstance* instance, FFWMDEResult* result, Pro
getXFCE4(instance, result);
else if(procData->deHint == FF_DE_HINT_MATE)
getMate(instance, result);
else if(procData->deHint == FF_DE_HINT_LXQT)
getLXQt(instance, result);
}
static inline void getDE(FFinstance* instance, FFWMDEResult* result, ProcData* procData)
@@ -320,6 +344,8 @@ static inline void getDE(FFinstance* instance, FFWMDEResult* result, ProcData* p
getXFCE4(instance, result);
else if(strcasecmp(result->sessionDesktop, "MATE") == 0 || strcasecmp(result->sessionDesktop, "X-MATE") == 0)
getMate(instance, result);
else if(strcasecmp(result->sessionDesktop, "LXQt") == 0 || strcasecmp(result->sessionDesktop, "X-LXQT") == 0)
getLXQt(instance, result);
else
{
ffStrbufSetS(&result->deProcessName, result->sessionDesktop);