mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-10-29 16:26:39 +01:00
better result handling of calculation functions
This commit is contained in:
+14
-11
@@ -5,9 +5,12 @@
|
||||
|
||||
void ffPrintFont(FFinstance* instance)
|
||||
{
|
||||
ffCalculatePlasmaAndGtk(instance);
|
||||
const FFstrbuf* plasma = &ffCalculatePlasma(instance)->font;
|
||||
const FFstrbuf* gtk2 = &ffCalculateGTK2(instance)->font;
|
||||
const FFstrbuf* gtk3 = &ffCalculateGTK3(instance)->font;
|
||||
const FFstrbuf* gtk4 = &ffCalculateGTK4(instance)->font;
|
||||
|
||||
if(instance->state.plasma.font.length == 0 && instance->state.gtk2.font.length == 0 && instance->state.gtk3.font.length == 0 && instance->state.gtk4.font.length == 0)
|
||||
if(plasma->length == 0 && gtk2->length == 0 && gtk3->length == 0 && gtk4->length == 0)
|
||||
{
|
||||
ffPrintError(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey, &instance->config.fontFormat, FF_FONT_NUM_FORMAT_ARGS, "No fonts found");
|
||||
return;
|
||||
@@ -15,25 +18,25 @@ void ffPrintFont(FFinstance* instance)
|
||||
|
||||
FF_STRBUF_CREATE(plasmaName);
|
||||
double plasmaSize;
|
||||
ffGetFont(instance->state.plasma.font.chars, &plasmaName, &plasmaSize);
|
||||
ffGetFont(plasma->chars, &plasmaName, &plasmaSize);
|
||||
FF_STRBUF_CREATE(plasmaPretty);
|
||||
ffGetFontPretty(&plasmaPretty, &plasmaName, plasmaSize);
|
||||
|
||||
FF_STRBUF_CREATE(gtk2Name);
|
||||
double gtk2Size;
|
||||
ffGetFont(instance->state.gtk2.font.chars, >k2Name, >k2Size);
|
||||
ffGetFont(gtk2->chars, >k2Name, >k2Size);
|
||||
FF_STRBUF_CREATE(gtk2Pretty);
|
||||
ffGetFontPretty(>k2Pretty, >k2Name, gtk2Size);
|
||||
|
||||
FF_STRBUF_CREATE(gtk3Name);
|
||||
double gtk3Size;
|
||||
ffGetFont(instance->state.gtk3.font.chars, >k3Name, >k3Size);
|
||||
ffGetFont(gtk3->chars, >k3Name, >k3Size);
|
||||
FF_STRBUF_CREATE(gtk3Pretty);
|
||||
ffGetFontPretty(>k3Pretty, >k3Name, gtk3Size);
|
||||
|
||||
FF_STRBUF_CREATE(gtk4Name);
|
||||
double gtk4Size;
|
||||
ffGetFont(instance->state.gtk4.font.chars, >k4Name, >k4Size);
|
||||
ffGetFont(gtk4->chars, >k4Name, >k4Size);
|
||||
FF_STRBUF_CREATE(gtk4Pretty);
|
||||
ffGetFontPretty(>k4Pretty, >k4Name, gtk4Size);
|
||||
|
||||
@@ -43,7 +46,7 @@ void ffPrintFont(FFinstance* instance)
|
||||
if(instance->config.fontFormat.length == 0)
|
||||
{
|
||||
ffPrintLogoAndKey(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey);
|
||||
if(instance->state.plasma.font.length > 0)
|
||||
if(plasma->length > 0)
|
||||
{
|
||||
ffStrbufWriteTo(&plasmaPretty, stdout);
|
||||
fputs(" [Plasma]", stdout);
|
||||
@@ -56,19 +59,19 @@ void ffPrintFont(FFinstance* instance)
|
||||
else
|
||||
{
|
||||
ffPrintFormatString(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey, &instance->config.fontFormat, NULL, FF_FONT_NUM_FORMAT_ARGS, (FFformatarg[]){
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.font},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, plasma},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &plasmaName},
|
||||
{FF_FORMAT_ARG_TYPE_DOUBLE, &plasmaSize},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &plasmaPretty},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk2.font},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, gtk2},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, >k2Name},
|
||||
{FF_FORMAT_ARG_TYPE_DOUBLE, >k2Size},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, >k2Pretty},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk3.font},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, gtk3},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, >k3Name},
|
||||
{FF_FORMAT_ARG_TYPE_DOUBLE, >k3Size},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, >k3Pretty},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk4.font},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, gtk4},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, >k4Name},
|
||||
{FF_FORMAT_ARG_TYPE_DOUBLE, >k4Size},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, >k4Pretty},
|
||||
|
||||
+13
-9
@@ -5,24 +5,28 @@
|
||||
|
||||
void ffPrintIcons(FFinstance* instance)
|
||||
{
|
||||
ffCalculatePlasmaAndGtk(instance);
|
||||
const FFstrbuf* plasma = &ffCalculatePlasma(instance)->icons;
|
||||
const FFstrbuf* gtk2 = &ffCalculateGTK2(instance)->icons;
|
||||
const FFstrbuf* gtk3 = &ffCalculateGTK3(instance)->icons;
|
||||
const FFstrbuf* gtk4 = &ffCalculateGTK4(instance)->icons;
|
||||
|
||||
if(instance->state.plasma.icons.length == 0 && instance->state.gtk2.icons.length == 0 && instance->state.gtk3.icons.length == 0 && instance->state.gtk4.icons.length == 0)
|
||||
|
||||
if(plasma->length == 0 && gtk2->length == 0 && gtk3->length == 0 && gtk4->length == 0)
|
||||
{
|
||||
ffPrintError(instance, FF_ICONS_MODULE_NAME, 0, &instance->config.iconsKey, &instance->config.iconsFormat, FF_ICONS_NUM_FORMAT_ARGS, "No icons could be found");
|
||||
return;
|
||||
}
|
||||
|
||||
FF_STRBUF_CREATE(gtkPretty);
|
||||
ffGetGtkPretty(>kPretty, &instance->state.gtk2.icons, &instance->state.gtk3.icons, &instance->state.gtk4.icons);
|
||||
ffGetGtkPretty(>kPretty, gtk2, gtk3, gtk4);
|
||||
|
||||
if(instance->config.iconsFormat.length == 0)
|
||||
{
|
||||
ffPrintLogoAndKey(instance, FF_ICONS_MODULE_NAME, 0, &instance->config.iconsKey);
|
||||
|
||||
if(instance->state.plasma.icons.length > 0)
|
||||
if(plasma->length > 0)
|
||||
{
|
||||
ffStrbufWriteTo(&instance->state.plasma.icons, stdout);
|
||||
ffStrbufWriteTo(plasma, stdout);
|
||||
fputs(" [Plasma]", stdout);
|
||||
|
||||
if(gtkPretty.length > 0)
|
||||
@@ -34,10 +38,10 @@ void ffPrintIcons(FFinstance* instance)
|
||||
else
|
||||
{
|
||||
ffPrintFormatString(instance, FF_ICONS_MODULE_NAME, 0, &instance->config.iconsKey, &instance->config.iconsFormat, NULL, FF_ICONS_NUM_FORMAT_ARGS, (FFformatarg[]){
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.icons},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk2.icons},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk3.icons},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk4.icons},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, plasma},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, gtk2},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, gtk3},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, gtk4},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, >kPretty}
|
||||
});
|
||||
}
|
||||
|
||||
+30
-79
@@ -8,103 +8,54 @@ void ffPrintOS(FFinstance* instance)
|
||||
if(ffPrintFromCache(instance, FF_OS_MODULE_NAME, &instance->config.osKey, &instance->config.osFormat, FF_OS_NUM_FORMAT_ARGS))
|
||||
return;
|
||||
|
||||
FILE* osRelease = fopen("/etc/os-release", "r");
|
||||
const FFOSResult* result = ffCalculateOS(instance);
|
||||
|
||||
if(osRelease == NULL)
|
||||
osRelease = fopen("/usr/lib/os-release", "r");
|
||||
|
||||
if(osRelease == NULL)
|
||||
if(result->error.length > 0)
|
||||
{
|
||||
ffPrintError(instance, FF_OS_MODULE_NAME, 0, &instance->config.osKey, &instance->config.osFormat, FF_OS_NUM_FORMAT_ARGS, "couldn't read /etc/os-release nor /usr/lib/os-release");
|
||||
ffPrintError(instance, FF_OS_MODULE_NAME, 0, &instance->config.osKey, &instance->config.osFormat, FF_OS_NUM_FORMAT_ARGS, result->error.chars);
|
||||
return;
|
||||
}
|
||||
|
||||
// Documentation of the fields:
|
||||
// https://www.freedesktop.org/software/systemd/man/os-release.html
|
||||
|
||||
char name[128]; name[0] = '\0';
|
||||
char prettyName[128]; prettyName[0] = '\0';
|
||||
char id[128]; id[0] = '\0';
|
||||
char idLike[128]; idLike[0] = '\0';
|
||||
char variant[128]; variant[0] = '\0';
|
||||
char variantId[128]; variantId[0] = '\0';
|
||||
char version[128]; version[0] = '\0';
|
||||
char versionId[128]; versionId[0] = '\0';
|
||||
char versionCodename[128]; versionCodename[0] = '\0';
|
||||
char buildId[128]; buildId[0] = '\0';
|
||||
|
||||
char* line = NULL;
|
||||
size_t len = 0;
|
||||
|
||||
while (getline(&line, &len, osRelease) != -1)
|
||||
{
|
||||
sscanf(line, "NAME=%[^\n]", name);
|
||||
sscanf(line, "NAME=\"%[^\"]+", name);
|
||||
sscanf(line, "PRETTY_NAME=%[^\n]", prettyName);
|
||||
sscanf(line, "PRETTY_NAME=\"%[^\"]+", prettyName);
|
||||
sscanf(line, "ID=%[^\n]", id);
|
||||
sscanf(line, "ID=\"%[^\"]+", id);
|
||||
sscanf(line, "ID_LIKE=%[^\n]", idLike);
|
||||
sscanf(line, "ID_LIKE=\"%[^\"]+", idLike);
|
||||
sscanf(line, "VARIANT=%[^\n]", variant);
|
||||
sscanf(line, "VARIANT=\"%[^\"]+", variant);
|
||||
sscanf(line, "VARIANT_ID=%[^\n]", variantId);
|
||||
sscanf(line, "VARIANT_ID=\"%[^\"]+", variantId);
|
||||
sscanf(line, "VERSION=%[^\n]", version);
|
||||
sscanf(line, "VERSION=\"%[^\"]+", version);
|
||||
sscanf(line, "VERSION_ID=%[^\n]", versionId);
|
||||
sscanf(line, "VERSION_ID=\"%[^\"]+", versionId);
|
||||
sscanf(line, "VERSION_CODENAME=%[^\n]", versionCodename);
|
||||
sscanf(line, "VERSION_CODENAME=\"%[^\"]+", versionCodename);
|
||||
sscanf(line, "BUILD_ID=%[^\n]", buildId);
|
||||
sscanf(line, "BUILD_ID=\"%[^\"]+", buildId);
|
||||
}
|
||||
|
||||
if(line != NULL)
|
||||
free(line);
|
||||
|
||||
fclose(osRelease);
|
||||
|
||||
FF_STRBUF_CREATE(os);
|
||||
|
||||
if(prettyName[0] != '\0')
|
||||
if(result->prettyName.length > 0)
|
||||
{
|
||||
ffStrbufAppendS(&os, prettyName);
|
||||
ffStrbufAppend(&os, &result->prettyName);
|
||||
}
|
||||
else if(name[0] == '\0' && id[0] == '\0')
|
||||
else if(result->name.length == 0 && result->id.length == 0)
|
||||
{
|
||||
ffStrbufAppendS(&os, instance->state.utsname.sysname);
|
||||
ffStrbufAppend(&os, &result->systemName);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(name[0] != '\0')
|
||||
ffStrbufAppendS(&os, name);
|
||||
if(result->name.length > 0)
|
||||
ffStrbufAppend(&os, &result->name);
|
||||
else
|
||||
ffStrbufAppendS(&os, id);
|
||||
ffStrbufAppend(&os, &result->id);
|
||||
|
||||
if(version[0] != '\0')
|
||||
if(result->version.length > 0)
|
||||
{
|
||||
ffStrbufAppendC(&os, ' ');
|
||||
ffStrbufAppendS(&os, version);
|
||||
ffStrbufAppend(&os, &result->version);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(versionId[0] != '\0')
|
||||
if(result->versionID.length > 0)
|
||||
{
|
||||
ffStrbufAppendC(&os, ' ');
|
||||
ffStrbufAppendS(&os, versionId);
|
||||
ffStrbufAppend(&os, &result->versionID);
|
||||
}
|
||||
|
||||
if(variant[0] != '\0')
|
||||
if(result->variant.length > 0)
|
||||
{
|
||||
ffStrbufAppendS(&os, " (");
|
||||
ffStrbufAppendS(&os, variant);
|
||||
ffStrbufAppend(&os, &result->variant);
|
||||
ffStrbufAppendC(&os, ')');
|
||||
}
|
||||
else if(variantId[0] != '\0')
|
||||
else if(result->variantID.length > 0)
|
||||
{
|
||||
ffStrbufAppendS(&os, " (");
|
||||
ffStrbufAppendS(&os, variantId);
|
||||
ffStrbufAppend(&os, &result->variantID);
|
||||
ffStrbufAppendC(&os, ')');
|
||||
}
|
||||
}
|
||||
@@ -114,18 +65,18 @@ void ffPrintOS(FFinstance* instance)
|
||||
ffStrbufAppendS(&os, instance->state.utsname.machine);
|
||||
|
||||
ffPrintAndSaveToCache(instance, FF_OS_MODULE_NAME, &instance->config.osKey, &os, &instance->config.osFormat, FF_OS_NUM_FORMAT_ARGS, (FFformatarg[]){
|
||||
{FF_FORMAT_ARG_TYPE_STRING, instance->state.utsname.sysname},
|
||||
{FF_FORMAT_ARG_TYPE_STRING, name},
|
||||
{FF_FORMAT_ARG_TYPE_STRING, prettyName},
|
||||
{FF_FORMAT_ARG_TYPE_STRING, id},
|
||||
{FF_FORMAT_ARG_TYPE_STRING, idLike},
|
||||
{FF_FORMAT_ARG_TYPE_STRING, variant},
|
||||
{FF_FORMAT_ARG_TYPE_STRING, variantId},
|
||||
{FF_FORMAT_ARG_TYPE_STRING, version},
|
||||
{FF_FORMAT_ARG_TYPE_STRING, versionId},
|
||||
{FF_FORMAT_ARG_TYPE_STRING, versionCodename},
|
||||
{FF_FORMAT_ARG_TYPE_STRING, buildId},
|
||||
{FF_FORMAT_ARG_TYPE_STRING, instance->state.utsname.machine}
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->systemName},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->name},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->prettyName},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->id},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->idLike},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->variant},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->variantID},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->version},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->versionID},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->codename},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->buildID},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->architecture}
|
||||
});
|
||||
|
||||
ffStrbufDestroy(&os);
|
||||
|
||||
+10
-10
@@ -5,26 +5,26 @@
|
||||
|
||||
void ffPrintTerminal(FFinstance* instance)
|
||||
{
|
||||
ffCalculateTerminal(instance);
|
||||
const FFTerminalResult* result = ffCalculateTerminal(instance);
|
||||
|
||||
if(instance->state.terminal.error.length > 0)
|
||||
if(result->error.length > 0)
|
||||
{
|
||||
ffPrintError(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, FF_TERMINAL_NUM_FORMAT_ARGS, instance->state.terminal.error.chars);
|
||||
ffPrintError(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, FF_TERMINAL_NUM_FORMAT_ARGS, result->error.chars);
|
||||
return;
|
||||
}
|
||||
|
||||
if(instance->state.terminal.exeName.length == 0 && instance->state.terminal.processName.length == 0)
|
||||
if(result->exeName.length == 0 && result->processName.length == 0)
|
||||
{
|
||||
ffPrintError(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, FF_TERMINAL_NUM_FORMAT_ARGS, "Terminal names not set");
|
||||
return;
|
||||
}
|
||||
|
||||
FFstrbuf* name;
|
||||
const FFstrbuf* name;
|
||||
|
||||
if(ffStrbufStartsWith(&instance->state.terminal.exeName, &instance->state.terminal.processName))
|
||||
name = &instance->state.terminal.exeName;
|
||||
if(ffStrbufStartsWith(&result->exeName, &result->processName))
|
||||
name = &result->exeName;
|
||||
else
|
||||
name = &instance->state.terminal.processName;
|
||||
name = &result->processName;
|
||||
|
||||
if(instance->config.terminalFormat.length == 0)
|
||||
{
|
||||
@@ -34,8 +34,8 @@ void ffPrintTerminal(FFinstance* instance)
|
||||
else
|
||||
{
|
||||
ffPrintFormatString(instance, FF_TERMINAL_MODULE_NAME, 0, &instance->config.terminalKey, &instance->config.terminalFormat, NULL, FF_TERMINAL_NUM_FORMAT_ARGS, (FFformatarg[]){
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.terminal.exeName},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.terminal.processName},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->exeName},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->processName},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, name}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -68,18 +68,18 @@ static void printTTY(FFinstance* instance)
|
||||
|
||||
void ffPrintTerminalFont(FFinstance* instance)
|
||||
{
|
||||
ffCalculateTerminal(instance);
|
||||
const FFTerminalResult* result = ffCalculateTerminal(instance);
|
||||
|
||||
if(instance->state.terminal.exeName.length == 0)
|
||||
if(result->exeName.length == 0)
|
||||
{
|
||||
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.termFontKey, &instance->config.termFontFormat, FF_TERMFONT_NUM_FORMAT_ARGS, "Terminal font needs successfull terminal detection");
|
||||
return;
|
||||
}
|
||||
|
||||
if(ffStrbufIgnCaseCompS(&instance->state.terminal.exeName, "konsole") == 0)
|
||||
if(ffStrbufIgnCaseCompS(&result->exeName, "konsole") == 0)
|
||||
printKonsole(instance);
|
||||
else if(ffStrbufStartsWithIgnCaseS(&instance->state.terminal.exeName, "login"))
|
||||
else if(ffStrbufStartsWithIgnCaseS(&result->exeName, "login"))
|
||||
printTTY(instance);
|
||||
else
|
||||
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.termFontKey, &instance->config.termFontFormat, FF_TERMFONT_NUM_FORMAT_ARGS, "Terminal Font", "Unknown terminal: %s", instance->state.terminal.exeName.chars);
|
||||
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.termFontKey, &instance->config.termFontFormat, FF_TERMFONT_NUM_FORMAT_ARGS, "Terminal Font", "Unknown terminal: %s", result->exeName.chars);
|
||||
}
|
||||
|
||||
+21
-18
@@ -5,54 +5,57 @@
|
||||
|
||||
void ffPrintTheme(FFinstance* instance)
|
||||
{
|
||||
ffCalculatePlasmaAndGtk(instance);
|
||||
const FFPlasmaResult* plasma = ffCalculatePlasma(instance);
|
||||
const FFstrbuf* gtk2 = &ffCalculateGTK2(instance)->theme;
|
||||
const FFstrbuf* gtk3 = &ffCalculateGTK3(instance)->theme;
|
||||
const FFstrbuf* gtk4 = &ffCalculateGTK4(instance)->theme;
|
||||
|
||||
if(instance->state.plasma.widgetStyle.length == 0 && instance->state.plasma.colorScheme.length == 0 && instance->state.gtk2.theme.length == 0 && instance->state.gtk3.theme.length == 0 && instance->state.gtk4.theme.length == 0)
|
||||
if(plasma->widgetStyle.length == 0 && plasma->colorScheme.length == 0 && gtk2->length == 0 && gtk3->length == 0 && gtk4->length == 0)
|
||||
{
|
||||
ffPrintError(instance, FF_THEME_MODULE_NAME, 0, &instance->config.themeKey, &instance->config.themeFormat, FF_THEME_NUM_FORMAT_ARGS, "No themes found");
|
||||
return;
|
||||
}
|
||||
|
||||
FF_STRBUF_CREATE(plasmaColorPretty);
|
||||
if(ffStrbufStartsWithIgnCase(&instance->state.plasma.colorScheme, &instance->state.plasma.widgetStyle))
|
||||
ffStrbufAppendNS(&plasmaColorPretty, instance->state.plasma.colorScheme.length - instance->state.plasma.widgetStyle.length, &instance->state.plasma.colorScheme.chars[instance->state.plasma.widgetStyle.length]);
|
||||
if(ffStrbufStartsWithIgnCase(&plasma->colorScheme, &plasma->widgetStyle))
|
||||
ffStrbufAppendNS(&plasmaColorPretty, plasma->colorScheme.length - plasma->widgetStyle.length, &plasma->colorScheme.chars[plasma->widgetStyle.length]);
|
||||
else
|
||||
ffStrbufAppend(&plasmaColorPretty, &instance->state.plasma.colorScheme);
|
||||
ffStrbufAppend(&plasmaColorPretty, &plasma->colorScheme);
|
||||
|
||||
ffStrbufTrim(&plasmaColorPretty, ' ');
|
||||
|
||||
FF_STRBUF_CREATE(gtkPretty);
|
||||
ffGetGtkPretty(>kPretty, &instance->state.gtk2.theme, &instance->state.gtk3.theme, &instance->state.gtk4.theme);
|
||||
ffGetGtkPretty(>kPretty, gtk2, gtk3, gtk4);
|
||||
|
||||
if(instance->config.themeFormat.length == 0)
|
||||
{
|
||||
ffPrintLogoAndKey(instance, FF_THEME_MODULE_NAME, 0, &instance->config.themeKey);
|
||||
|
||||
if(instance->state.plasma.widgetStyle.length > 0)
|
||||
if(plasma->widgetStyle.length > 0)
|
||||
{
|
||||
ffStrbufWriteTo(&instance->state.plasma.widgetStyle, stdout);
|
||||
ffStrbufWriteTo(&plasma->widgetStyle, stdout);
|
||||
|
||||
if(instance->state.plasma.colorScheme.length > 0)
|
||||
if(plasma->colorScheme.length > 0)
|
||||
{
|
||||
fputs(" (", stdout);
|
||||
|
||||
if(plasmaColorPretty.length > 0)
|
||||
ffStrbufWriteTo(&plasmaColorPretty, stdout);
|
||||
else
|
||||
ffStrbufWriteTo(&instance->state.plasma.colorScheme, stdout);
|
||||
ffStrbufWriteTo(&plasma->colorScheme, stdout);
|
||||
|
||||
putchar(')');
|
||||
}
|
||||
}
|
||||
else if(instance->state.plasma.colorScheme.length > 0)
|
||||
else if(plasma->colorScheme.length > 0)
|
||||
{
|
||||
if(plasmaColorPretty.length > 0)
|
||||
ffStrbufWriteTo(&plasmaColorPretty, stdout);
|
||||
else
|
||||
ffStrbufWriteTo(&instance->state.plasma.colorScheme, stdout);
|
||||
ffStrbufWriteTo(&plasma->colorScheme, stdout);
|
||||
}
|
||||
|
||||
if(instance->state.plasma.widgetStyle.length > 0 || instance->state.plasma.colorScheme.length > 0)
|
||||
if(plasma->widgetStyle.length > 0 || plasma->colorScheme.length > 0)
|
||||
{
|
||||
fputs(" [Plasma]", stdout);
|
||||
|
||||
@@ -65,12 +68,12 @@ void ffPrintTheme(FFinstance* instance)
|
||||
else
|
||||
{
|
||||
ffPrintFormatString(instance, FF_THEME_MODULE_NAME, 0, &instance->config.themeKey, &instance->config.themeFormat, NULL, FF_THEME_NUM_FORMAT_ARGS, (FFformatarg[]){
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.widgetStyle},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.plasma.colorScheme},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &plasma->widgetStyle},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &plasma->colorScheme},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &plasmaColorPretty},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk2.theme},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk3.theme},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.gtk4.theme},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, gtk2},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, gtk3},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, gtk4},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, >kPretty}
|
||||
});
|
||||
}
|
||||
|
||||
+9
-9
@@ -5,15 +5,15 @@
|
||||
|
||||
void ffPrintWM(FFinstance* instance)
|
||||
{
|
||||
ffCalculateWM(instance);
|
||||
const FFWMResult* result = ffCalculateWM(instance);
|
||||
|
||||
if(instance->state.wm.error.length > 0)
|
||||
if(result->error.length > 0)
|
||||
{
|
||||
ffPrintError(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, FF_WM_NUM_FORMAT_ARGS, instance->state.wm.error.chars);
|
||||
ffPrintError(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, FF_WM_NUM_FORMAT_ARGS, result->error.chars);
|
||||
return;
|
||||
}
|
||||
|
||||
if(instance->state.wm.prettyName.length == 0 && instance->state.wm.processName.length == 0)
|
||||
if(result->prettyName.length == 0 && result->processName.length == 0)
|
||||
{
|
||||
ffPrintError(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, FF_WM_NUM_FORMAT_ARGS, "No wm name provided");
|
||||
return;
|
||||
@@ -22,16 +22,16 @@ void ffPrintWM(FFinstance* instance)
|
||||
if(instance->config.wmFormat.length == 0)
|
||||
{
|
||||
ffPrintLogoAndKey(instance, "WM", 0, &instance->config.wmKey);
|
||||
if(instance->state.wm.prettyName.length > 0)
|
||||
ffStrbufPutTo(&instance->state.wm.prettyName, stdout);
|
||||
if(result->prettyName.length > 0)
|
||||
ffStrbufPutTo(&result->prettyName, stdout);
|
||||
else
|
||||
ffStrbufPutTo(&instance->state.wm.processName, stdout);
|
||||
ffStrbufPutTo(&result->processName, stdout);
|
||||
}
|
||||
else
|
||||
{
|
||||
ffPrintFormatString(instance, FF_WM_MODULE_NAME, 0, &instance->config.wmKey, &instance->config.wmFormat, NULL, FF_WM_NUM_FORMAT_ARGS, (FFformatarg[]){
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.wm.processName},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &instance->state.wm.prettyName}
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->processName},
|
||||
{FF_FORMAT_ARG_TYPE_STRBUF, &result->prettyName}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,16 +35,16 @@ static void printKWin(FFinstance* instance)
|
||||
|
||||
void ffPrintWMTheme(FFinstance* instance)
|
||||
{
|
||||
ffCalculateWM(instance);
|
||||
const FFWMResult* result = ffCalculateWM(instance);
|
||||
|
||||
if(instance->state.wm.prettyName.length == 0)
|
||||
if(result->prettyName.length == 0)
|
||||
{
|
||||
ffPrintError(instance, FF_WMTHEME_MODULE_NAME, 0, &instance->config.wmThemeKey, &instance->config.wmThemeFormat, FF_WMTHEME_NUM_FORMAT_ARGS, "WM Theme needs sucessfull WM detection");
|
||||
return;
|
||||
}
|
||||
|
||||
if(ffStrbufIgnCaseCompS(&instance->state.wm.prettyName, "KWin") == 0)
|
||||
if(ffStrbufIgnCaseCompS(&result->prettyName, "KWin") == 0)
|
||||
printKWin(instance);
|
||||
else
|
||||
ffPrintError(instance, FF_WMTHEME_MODULE_NAME, 0, &instance->config.wmThemeKey, &instance->config.wmThemeFormat, FF_WMTHEME_NUM_FORMAT_ARGS, "Unknown WM: %s", instance->state.wm.prettyName.chars);
|
||||
ffPrintError(instance, FF_WMTHEME_MODULE_NAME, 0, &instance->config.wmThemeKey, &instance->config.wmThemeFormat, FF_WMTHEME_NUM_FORMAT_ARGS, "Unknown WM: %s", result->prettyName.chars);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user