Skip to content

Commit 1ece13c

Browse files
Merge pull request #36 from DarNCelsius/master
Added system font recognition for xfce-terminal
2 parents 039b69f + c549c7c commit 1ece13c

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

src/modules/terminalfont.c

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "fastfetch.h"
2+
#include <string.h>
23

34
#define FF_TERMFONT_MODULE_NAME "Terminal Font"
45
#define FF_TERMFONT_NUM_FORMAT_ARGS 4
@@ -107,6 +108,31 @@ static void printTilixTerminal(FFinstance* instance)
107108
ffStrbufDestroy(&key);
108109
}
109110

111+
static void printXCFETerminal(FFinstance* instance)
112+
{
113+
char useSysFont[6];
114+
const char* fontName;
115+
116+
if(!ffParsePropFileConfig(instance, "xfce4/terminal/terminalrc", "FontUseSystem=%[^\n]", useSysFont))
117+
{
118+
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.termFontKey, &instance->config.termFontFormat, FF_TERMFONT_NUM_FORMAT_ARGS, "Couldn't open \"$XDG_CONFIG_HOME/xfce4/terminal/terminalrc\"");
119+
return;
120+
}
121+
122+
if((useSysFont[0] == '\0') || strcasecmp(useSysFont, "FALSE") == 0)
123+
{
124+
printTerminalFontFromConfigFile(instance, "xfce4/terminal/terminalrc", "FontName=%[^\n]");
125+
return;
126+
}
127+
else
128+
fontName = ffSettingsGetXFConf(instance, "xsettings", "/Gtk/MonospaceFontName", FF_VARIANT_TYPE_STRING).strValue;
129+
130+
if(fontName == NULL)
131+
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.termFontKey, &instance->config.termFontFormat, FF_TERMFONT_NUM_FORMAT_ARGS, "Couldn't find \"xsettings::/Gtk/MonospaceFontName\" in XFConf");
132+
else
133+
printTerminalFont(instance, fontName);
134+
}
135+
110136
static void printTTY(FFinstance* instance)
111137
{
112138
FFstrbuf font;
@@ -142,7 +168,7 @@ void ffPrintTerminalFont(FFinstance* instance)
142168
if(ffStrbufIgnCaseCompS(&result->exeName, "konsole") == 0)
143169
printKonsole(instance);
144170
else if(ffStrbufIgnCaseCompS(&result->exeName, "xfce4-terminal") == 0)
145-
printTerminalFontFromConfigFile(instance, "xfce4/terminal/terminalrc", "FontName=%[^\n]");
171+
printXCFETerminal(instance);
146172
else if(ffStrbufIgnCaseCompS(&result->exeName, "lxterminal") == 0)
147173
printTerminalFontFromConfigFile(instance, "lxterminal/lxterminal.conf", "fontname=%[^\n]");
148174
else if(ffStrbufIgnCaseCompS(&result->exeName, "tilix") == 0)

0 commit comments

Comments
 (0)