|
1 | 1 | #include "fastfetch.h" |
| 2 | +#include <string.h> |
2 | 3 |
|
3 | 4 | #define FF_TERMFONT_MODULE_NAME "Terminal Font" |
4 | 5 | #define FF_TERMFONT_NUM_FORMAT_ARGS 4 |
@@ -107,6 +108,31 @@ static void printTilixTerminal(FFinstance* instance) |
107 | 108 | ffStrbufDestroy(&key); |
108 | 109 | } |
109 | 110 |
|
| 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 | + |
110 | 136 | static void printTTY(FFinstance* instance) |
111 | 137 | { |
112 | 138 | FFstrbuf font; |
@@ -142,7 +168,7 @@ void ffPrintTerminalFont(FFinstance* instance) |
142 | 168 | if(ffStrbufIgnCaseCompS(&result->exeName, "konsole") == 0) |
143 | 169 | printKonsole(instance); |
144 | 170 | else if(ffStrbufIgnCaseCompS(&result->exeName, "xfce4-terminal") == 0) |
145 | | - printTerminalFontFromConfigFile(instance, "xfce4/terminal/terminalrc", "FontName=%[^\n]"); |
| 171 | + printXCFETerminal(instance); |
146 | 172 | else if(ffStrbufIgnCaseCompS(&result->exeName, "lxterminal") == 0) |
147 | 173 | printTerminalFontFromConfigFile(instance, "lxterminal/lxterminal.conf", "fontname=%[^\n]"); |
148 | 174 | else if(ffStrbufIgnCaseCompS(&result->exeName, "tilix") == 0) |
|
0 commit comments