TerminalFont (Android): adds font size detection

This commit is contained in:
Carter Li
2026-08-20 16:18:07 +08:00
parent 8b40117c08
commit 5d11b65d53
@@ -2,6 +2,7 @@
#include "terminalfont.h"
#include "detection/terminalshell/terminalshell.h"
#include "common/io.h"
#include "common/properties.h"
#ifdef FF_HAVE_FREETYPE
#include "common/library.h"
@@ -10,10 +11,17 @@
#endif
#define FF_TERMUX_FONT_PATH FASTFETCH_TARGET_DIR_HOME "/.termux/font.ttf"
#define FF_TERMUX_PREF_PATH "/data/data/com.termux/shared_prefs/com.termux_preferences.xml"
const char* detectTermux(FFTerminalFontResult* terminalFont) {
FF_STRBUF_AUTO_DESTROY fontSize = ffStrbufCreate();
// SharedPreferences XML: <string name="fontsize">14</string>, in px
if (ffParsePropFile(FF_TERMUX_PREF_PATH, "<string name=\"fontsize\">", &fontSize)) {
ffStrbufAppendS(&fontSize, "px");
}
if (!ffPathExists(FF_TERMUX_FONT_PATH, FF_PATHTYPE_FILE)) {
ffFontInitCopy(&terminalFont->font, "monospace");
ffFontInitValues(&terminalFont->font, "monospace", fontSize.length ? fontSize.chars : nullptr);
return nullptr;
}
@@ -39,7 +47,7 @@ const char* detectTermux(FFTerminalFontResult* terminalFont) {
goto exit;
}
ffFontInitCopy(&terminalFont->font, face->family_name);
ffFontInitValues(&terminalFont->font, face->family_name, fontSize.length ? fontSize.chars : nullptr);
exit:
if (face) {
@@ -53,7 +61,7 @@ exit:
#else
FF_UNUSED(terminalFont);
ffFontInitValues(&terminalFont->font, "monospace", fontSize.length ? fontSize.chars : nullptr);
return "Fastfetch was built without freetype2 support";
#endif