Merge pull request #191 from x-zvf/alacritty-term-support

[enhancement] Add best effort terminal font detection for alacritty.
This commit is contained in:
Linus Dierheimer
2022-07-12 16:46:22 +02:00
committed by GitHub
+38
View File
@@ -179,6 +179,42 @@ static void printXCFETerminal(FFinstance* instance)
}
}
static void printAlacritty(FFinstance* instance) {
FFstrbuf fontName;
FFstrbuf fontSize;
ffStrbufInit(&fontName);
ffStrbufInit(&fontSize);
FFpropquery fontQuery[] = {
{"family:", &fontName},
{"size:", &fontSize},
};
// alacritty parses config files in this order
ffParsePropFileConfigValues(instance, "alacritty/alacritty.yml", 2, fontQuery);
if(fontName.length == 0 || fontSize.length == 0)
ffParsePropFileConfigValues(instance, "alacritty.yml", 2, fontQuery);
if(fontName.length == 0 || fontSize.length == 0)
ffParsePropFileConfigValues(instance, ".alacritty.yml", 2, fontQuery);
//by default alacritty uses it's own font called alacritty
if(fontName.length == 0)
ffStrbufAppendS(&fontName, "alacritty");
// the default font size is 11
if(fontSize.length == 0)
ffStrbufAppendS(&fontSize, "11");
FFfont font;
ffFontInitCopy(&font, fontName.chars);
ffStrbufAppend(&font.size, &fontSize);
printTerminalFont(instance, fontName.chars, &font);
ffFontDestroy(&font);
ffStrbufDestroy(&fontName);
ffStrbufDestroy(&fontSize);
}
static void printTTY(FFinstance* instance)
{
FFstrbuf fontName;
@@ -227,6 +263,8 @@ void ffPrintTerminalFont(FFinstance* instance)
printTerminalFontFromGSettings(instance, "/org/gnome/terminal/legacy/profiles:/:", "org.gnome.Terminal.ProfilesList", "org.gnome.Terminal.Legacy.Profile");
else if(ffStrbufStartsWithIgnCaseS(&result->terminalExe, "/dev/tty"))
printTTY(instance);
else if(ffStrbufIgnCaseCompS(&result->terminalProcessName, "alacritty") == 0)
printAlacritty(instance);
else
ffPrintError(instance, FF_TERMFONT_MODULE_NAME, 0, &instance->config.terminalFont, "Unknown terminal: %s", result->terminalProcessName.chars);
}