Update terminator font detection

This commit is contained in:
Linus Dierheimer 2023-02-02 17:14:53 +01:00
parent 6e5e7851d4
commit 6de74587bd
No known key found for this signature in database
GPG Key ID: 74FA57726CDD7B61
3 changed files with 26 additions and 12 deletions

View File

@ -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:

View File

@ -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

View File

@ -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)