TerminalFont (Linux): support QTerminal

This commit is contained in:
李通洲
2023-06-11 12:31:50 +08:00
parent 662f081f49
commit aa0d1d94b2
3 changed files with 21 additions and 1 deletions
@@ -190,6 +190,23 @@ static void detectFootTerminal(const FFinstance* instance, FFTerminalFontResult*
ffFontInitValues(&terminalFont->font, font.chars, &font.chars[equal + strlen("size=")]);
}
static void detectQTerminal(const FFinstance* instance, FFTerminalFontResult* terminalFont)
{
FF_STRBUF_AUTO_DESTROY fontName = ffStrbufCreate();
FF_STRBUF_AUTO_DESTROY fontSize = ffStrbufCreate();
ffParsePropFileConfigValues(instance, "qterminal.org/qterminal.ini", 2, (FFpropquery[]) {
{"fontFamily=", &fontName},
{"fontSize=", &fontSize},
});
if (fontName.length == 0)
ffStrbufAppendS(&fontName, "monospace");
if (fontSize.length == 0)
ffStrbufAppendS(&fontSize, "12");
ffFontInitValues(&terminalFont->font, fontName.chars, fontSize.chars);
}
void ffDetectTerminalFontPlatform(const FFinstance* instance, const FFTerminalShellResult* terminalShell, FFTerminalFontResult* terminalFont)
{
if(ffStrbufIgnCaseCompS(&terminalShell->terminalProcessName, "konsole") == 0)
@@ -206,4 +223,6 @@ void ffDetectTerminalFontPlatform(const FFinstance* instance, const FFTerminalSh
detectDeepinTerminal(instance, terminalFont);
else if(ffStrbufIgnCaseCompS(&terminalShell->terminalProcessName, "foot") == 0)
detectFootTerminal(instance, terminalFont);
else if(ffStrbufIgnCaseCompS(&terminalShell->terminalProcessName, "qterminal") == 0)
detectQTerminal(instance, terminalFont);
}