Skip to content

Commit 4a2d20f

Browse files
committed
TerminalFont: support Tabby
1 parent b136b86 commit 4a2d20f

File tree

5 files changed

+35
-8
lines changed

5 files changed

+35
-8
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
Features:
44
* Support xonsh detection (TerminalShell)
5+
* Support Tabby version / terminal font detection
56

67
Bugfixes:
78
* Fix flatpak package count (#441)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ Budgie, Cinnamon, Gnome, KDE Plasma, LXQt, Mate, XFCE4
114114

115115
##### Terminal fonts
116116
```
117-
Alacritty, Apple Terminal, ConEmu, Deepin Terminal, foot, Gnome Terminal, iTerm2, Kitty, Konsole, LXTerminal, mintty, Terminator, Termux, Tilix, TTY, Warp, WezTerm, Windows Terminal, XFCE4 Terminal
117+
Alacritty, Apple Terminal, ConEmu, Deepin Terminal, foot, Gnome Terminal, iTerm2, Kitty, Konsole, LXTerminal, mintty, Tabby, Terminator, Termux, Tilix, TTY, Warp, WezTerm, Windows Terminal, XFCE4 Terminal
118118
```
119119

120120
## Building

src/common/properties.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,10 @@ bool ffParsePropFileListValues(const FFlist* list, const char* relativeFile, uin
166166
FFstrbuf baseDir;
167167
ffStrbufInitA(&baseDir, 64);
168168

169-
for(uint32_t i = 0; i < list->length; i++)
169+
FF_LIST_FOR_EACH(FFstrbuf, dirPrefix, *list)
170170
{
171171
//We need to copy the dir each time, because it used by multiple threads, so we can't directly write to it.
172-
ffStrbufSet(&baseDir, ffListGet(list, i));
172+
ffStrbufSet(&baseDir, dirPrefix);
173173
ffStrbufAppendS(&baseDir, relativeFile);
174174

175175
if(ffParsePropFileValues(baseDir.chars, numQueries, queries))

src/detection/terminalfont/terminalfont.c

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,10 @@ static void detectFromWindowsTeriminal(const FFinstance* instance, const FFstrbu
287287

288288
FF_MAYBE_UNUSED static bool detectKitty(const FFinstance* instance, FFTerminalFontResult* result)
289289
{
290-
FFstrbuf fontName;
290+
FF_STRBUF_AUTO_DESTROY fontName;
291291
ffStrbufInit(&fontName);
292292

293-
FFstrbuf fontSize;
293+
FF_STRBUF_AUTO_DESTROY fontSize;
294294
ffStrbufInit(&fontSize);
295295

296296
FFpropquery fontQuery[] = {
@@ -308,9 +308,6 @@ FF_MAYBE_UNUSED static bool detectKitty(const FFinstance* instance, FFTerminalFo
308308

309309
ffFontInitValues(&result->font, fontName.chars, fontSize.chars);
310310

311-
ffStrbufDestroy(&fontName);
312-
ffStrbufDestroy(&fontSize);
313-
314311
return true;
315312
}
316313

@@ -373,6 +370,32 @@ static bool detectWezterm(FF_MAYBE_UNUSED const FFinstance* instance, FFTerminal
373370
return true;
374371
}
375372

373+
static bool detectTabby(FF_MAYBE_UNUSED const FFinstance* instance, FFTerminalFontResult* result)
374+
{
375+
FF_STRBUF_AUTO_DESTROY fontName;
376+
ffStrbufInit(&fontName);
377+
378+
FF_STRBUF_AUTO_DESTROY fontSize;
379+
ffStrbufInit(&fontSize);
380+
381+
FFpropquery fontQuery[] = {
382+
{"font: ", &fontName},
383+
{"fontSize: ", &fontSize},
384+
};
385+
386+
if(!ffParsePropFileConfigValues(instance, "tabby/config.yaml", 2, fontQuery))
387+
return false;
388+
389+
if(fontName.length == 0)
390+
ffStrbufSetS(&fontName, "monospace");
391+
if(fontSize.length == 0)
392+
ffStrbufSetS(&fontSize, "14");
393+
394+
ffFontInitValues(&result->font, fontName.chars, fontSize.chars);
395+
396+
return true;
397+
}
398+
376399
void ffDetectTerminalFontPlatform(const FFinstance* instance, const FFTerminalShellResult* terminalShell, FFTerminalFontResult* terminalFont);
377400

378401
static bool detectTerminalFontCommon(const FFinstance* instance, const FFTerminalShellResult* terminalShell, FFTerminalFontResult* terminalFont)
@@ -383,6 +406,8 @@ static bool detectTerminalFontCommon(const FFinstance* instance, const FFTermina
383406
detectTerminator(instance, terminalFont);
384407
else if(ffStrbufStartsWithIgnCaseS(&terminalShell->terminalProcessName, "wezterm-gui"))
385408
detectWezterm(instance, terminalFont);
409+
else if(ffStrbufStartsWithIgnCaseS(&terminalShell->terminalProcessName, "tabby"))
410+
detectTabby(instance, terminalFont);
386411

387412
#ifndef _WIN32
388413
else if(ffStrbufIgnCaseEqualS(&terminalShell->terminalProcessName, "kitty"))

src/util/platform/FFPlatform_unix.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ static void getConfigDirs(FFPlatform* platform)
3535

3636
#if defined(__APPLE__)
3737
ffPlatformPathAddHome(&platform->configDirs, platform, "Library/Preferences/");
38+
ffPlatformPathAddHome(&platform->configDirs, platform, "Library/Application Support/");
3839
#endif
3940

4041
ffPlatformPathAddHome(&platform->configDirs, platform, "");

0 commit comments

Comments
 (0)