From f2a41b82bca191e43e29e8ea38f9ffbaf59a5512 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Wed, 12 Feb 2025 22:48:24 +0000 Subject: [PATCH] TerminalFont (Haiku): support Haiku Terminal --- .../terminalfont/terminalfont_linux.c | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/detection/terminalfont/terminalfont_linux.c b/src/detection/terminalfont/terminalfont_linux.c index 2c0ecd28b..497755bc5 100644 --- a/src/detection/terminalfont/terminalfont_linux.c +++ b/src/detection/terminalfont/terminalfont_linux.c @@ -418,6 +418,21 @@ static void detectWestonTerminal(FFTerminalFontResult* terminalFont) ffFontInitValues(&terminalFont->font, font.chars, size.chars); } +#ifdef __HAIKU__ +static void detectHaikuTerminal(FFTerminalFontResult* terminalFont) +{ + FF_STRBUF_AUTO_DESTROY font = ffStrbufCreate(); + FF_STRBUF_AUTO_DESTROY size = ffStrbufCreate(); + ffParsePropFileConfigValues("Terminal/Default", 2, (FFpropquery[]) { + {"\"Half Font Family\" , ", &font}, + {"\"Half Font Size\" , ", &size}, + }); + if (!font.length) ffStrbufSetStatic(&font, "Noto Sans Mono"); + if (!size.length) ffStrbufSetStatic(&size, "12"); + ffFontInitValues(&terminalFont->font, font.chars, size.chars); +} +#endif + void ffDetectTerminalFontPlatform(const FFTerminalResult* terminal, FFTerminalFontResult* terminalFont) { if(ffStrbufIgnCaseEqualS(&terminal->processName, "konsole")) @@ -455,5 +470,9 @@ void ffDetectTerminalFontPlatform(const FFTerminalResult* terminal, FFTerminalFo else if(ffStrbufStartsWithIgnCaseS(&terminal->processName, "terminator")) detectTerminator(terminalFont); else if(ffStrbufStartsWithIgnCaseS(&terminal->processName, "sakura")) - detectFromConfigFile("sakura/sakura.conf", "font=", terminalFont);; + detectFromConfigFile("sakura/sakura.conf", "font=", terminalFont); + #ifdef __HAIKU__ + else if(ffStrbufStartsWithIgnCaseS(&terminal->processName, "Terminal")) + detectHaikuTerminal(terminalFont); + #endif }