Files
fastfetch/src/modules/font.c
T

89 lines
3.1 KiB
C
Raw Normal View History

2021-02-18 22:25:36 +01:00
#include "fastfetch.h"
2021-04-15 18:59:26 +02:00
#define FF_FONT_MODULE_NAME "Font"
2021-05-23 19:40:34 +02:00
#define FF_FONT_NUM_FORMAT_ARGS 21
2021-04-15 18:59:26 +02:00
2021-02-27 18:30:05 +01:00
void ffPrintFont(FFinstance* instance)
2021-02-18 22:25:36 +01:00
{
2021-06-27 21:53:50 +02:00
const FFWMDEResult* wmde = ffDetectWMDE(instance);
if(ffStrbufIgnCaseCompS(&wmde->wmProtocolName, "TTY") == 0)
{
ffPrintError(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey, &instance->config.fontFormat, FF_FONT_NUM_FORMAT_ARGS, "Font isn't supported in TTY");
return;
}
2021-05-23 19:40:34 +02:00
const FFstrbuf* plasmaRaw = &ffDetectPlasma(instance)->font;
const FFstrbuf* gtk2Raw = &ffDetectGTK2(instance)->font;
const FFstrbuf* gtk3Raw = &ffDetectGTK3(instance)->font;
const FFstrbuf* gtk4Raw = &ffDetectGTK4(instance)->font;
2021-02-19 16:23:41 +01:00
2021-05-23 19:40:34 +02:00
if(plasmaRaw->length == 0 && gtk2Raw->length == 0 && gtk3Raw->length == 0 && gtk4Raw->length == 0)
2021-04-05 19:25:34 +02:00
{
2021-04-15 18:59:26 +02:00
ffPrintError(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey, &instance->config.fontFormat, FF_FONT_NUM_FORMAT_ARGS, "No fonts found");
2021-04-05 19:25:34 +02:00
return;
}
2021-02-18 22:25:36 +01:00
2021-05-23 19:40:34 +02:00
FFfont plasma;
ffFontInitQt(&plasma, plasmaRaw->chars);
2021-04-05 19:25:34 +02:00
2021-05-23 19:40:34 +02:00
FFfont gtk2;
ffFontInitPango(&gtk2, gtk2Raw->chars);
2021-04-05 19:25:34 +02:00
2021-05-23 19:40:34 +02:00
FFfont gtk3;
ffFontInitPango(&gtk3, gtk3Raw->chars);
2021-04-05 19:25:34 +02:00
2021-05-23 19:40:34 +02:00
FFfont gtk4;
ffFontInitPango(&gtk4, gtk4Raw->chars);
2021-03-27 18:14:19 +01:00
2021-05-23 19:40:34 +02:00
FFstrbuf gtk;
ffStrbufInit(&gtk);
ffGetGtkPretty(&gtk, &gtk2.pretty, &gtk3.pretty, &gtk4.pretty);
2021-03-19 20:57:07 +01:00
2021-03-23 19:48:52 +01:00
if(instance->config.fontFormat.length == 0)
2021-02-18 22:25:36 +01:00
{
2021-04-15 18:59:26 +02:00
ffPrintLogoAndKey(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey);
2021-05-23 19:40:34 +02:00
if(plasma.pretty.length > 0)
2021-04-05 19:25:34 +02:00
{
2021-05-23 19:40:34 +02:00
ffStrbufWriteTo(&plasma.pretty, stdout);
2021-04-05 19:25:34 +02:00
fputs(" [Plasma]", stdout);
2021-05-23 19:40:34 +02:00
if(gtk.length > 0)
2021-04-05 19:25:34 +02:00
fputs(", ", stdout);
}
2021-05-23 19:40:34 +02:00
ffStrbufPutTo(&gtk, stdout);
2021-02-18 22:25:36 +01:00
}
else
{
2021-04-15 18:59:26 +02:00
ffPrintFormatString(instance, FF_FONT_MODULE_NAME, 0, &instance->config.fontKey, &instance->config.fontFormat, NULL, FF_FONT_NUM_FORMAT_ARGS, (FFformatarg[]){
2021-05-23 19:40:34 +02:00
{FF_FORMAT_ARG_TYPE_STRBUF, plasmaRaw},
{FF_FORMAT_ARG_TYPE_STRBUF, &plasma.name},
{FF_FORMAT_ARG_TYPE_STRBUF, &plasma.size},
{FF_FORMAT_ARG_TYPE_LIST, &plasma.styles},
{FF_FORMAT_ARG_TYPE_STRBUF, &plasma.pretty},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk2Raw},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk2.name},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk2.size},
{FF_FORMAT_ARG_TYPE_LIST, &gtk2.styles},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk2.pretty},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk3Raw},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk3.name},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk3.size},
{FF_FORMAT_ARG_TYPE_LIST, &gtk3.styles},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk3.pretty},
{FF_FORMAT_ARG_TYPE_STRBUF, gtk4Raw},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk4.name},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk4.size},
{FF_FORMAT_ARG_TYPE_LIST, &gtk4.styles},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk4.pretty},
{FF_FORMAT_ARG_TYPE_STRBUF, &gtk}
2021-04-15 18:59:26 +02:00
});
2021-02-18 22:25:36 +01:00
}
2021-05-23 19:40:34 +02:00
ffFontDestroy(&plasma);
ffFontDestroy(&gtk2);
ffFontDestroy(&gtk3);
ffFontDestroy(&gtk4);
ffStrbufDestroy(&gtk);
2021-03-27 18:14:19 +01:00
}