From 6de74587bd72e4d01dcb4a65b2f81ef9741f2f41 Mon Sep 17 00:00:00 2001 From: Linus Dierheimer Date: Thu, 2 Feb 2023 17:14:53 +0100 Subject: [PATCH] Update terminator font detection --- CHANGELOG.md | 1 + README.md | 2 +- src/detection/terminalfont/terminalfont.c | 35 ++++++++++++++++------- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 52f94538d..61326e9f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Features: * Gamepad module * Support colored percentage numbers output (#409) * Support `--localip-compact-type` option (#408) +* Terminator terminal font detection (@Zerogiven, #415) Bugfixes: diff --git a/README.md b/README.md index 192c498c3..7de10993e 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,7 @@ Budgie, Cinnamon, Gnome, KDE Plasma, LXQt, Mate, XFCE4 ##### Terminal fonts ``` -Alacritty, Apple Terminal, ConEmu, Deepin Terminal, Gnome Terminal, iTerm2, Kitty, Konsole, LXTerminal, mintty, Termux, Tilix, TTY, Warp, WezTerm, Windows Terminal, XFCE4 Terminal +Alacritty, Apple Terminal, ConEmu, Deepin Terminal, Gnome Terminal, iTerm2, Kitty, Konsole, LXTerminal, mintty, Terminator, Termux, Tilix, TTY, Warp, WezTerm, Windows Terminal, XFCE4 Terminal ``` ## Building diff --git a/src/detection/terminalfont/terminalfont.c b/src/detection/terminalfont/terminalfont.c index daf984dad..e8a6fb58b 100644 --- a/src/detection/terminalfont/terminalfont.c +++ b/src/detection/terminalfont/terminalfont.c @@ -320,22 +320,35 @@ FF_MAYBE_UNUSED static bool detectKitty(const FFinstance* instance, FFTerminalFo return true; } -static bool detectTerminator(const FFinstance* instance, FFTerminalFontResult* result) +static void detectTerminator(const FFinstance* instance, FFTerminalFontResult* result) { - FFstrbuf fontName; + FF_STRBUF_AUTO_DESTROY useSystemFont; + ffStrbufInit(&useSystemFont); + + FF_STRBUF_AUTO_DESTROY fontName; ffStrbufInit(&fontName); - if(!ffParsePropFileConfig(instance, "terminator/config", "font =", &fontName)) - return false; + FFpropquery fontQuery[] = { + {"use_system_font =", &useSystemFont}, + {"font =", &fontName}, + }; + + if(!ffParsePropFileConfigValues(instance, "terminator/config", 2, fontQuery)) + { + ffStrbufAppendS(&result->error, "Couldn't read Terminator config file"); + return; + } + + if(ffStrbufIgnCaseEqualS(&useSystemFont, "True")) + { + ffFontInitCopy(&result->font, "System"); + return; + } if(fontName.length == 0) - ffStrbufSetS(&fontName, "Mono 8"); - - ffFontInitCopy(&result->font, fontName.chars); - - ffStrbufDestroy(&fontName); - - return true; + ffFontInitValues(&result->font, "mono", "8"); + else + ffFontInitPango(&result->font, fontName.chars); } static bool detectWezterm(FF_MAYBE_UNUSED const FFinstance* instance, FFTerminalFontResult* result)