mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-12 10:22:12 +02:00
Merge pull request #191 from x-zvf/alacritty-term-support
[enhancement] Add best effort terminal font detection for alacritty.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user