From eec9a2695224ff2247f659be7d94b3659c185a84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Fri, 28 Mar 2025 15:26:19 +0800 Subject: [PATCH] TerminalFont (Windows): support Warp Terminal --- .../terminalfont/terminalfont_windows.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/detection/terminalfont/terminalfont_windows.c b/src/detection/terminalfont/terminalfont_windows.c index 3adcd8eaa..3aebf79dc 100644 --- a/src/detection/terminalfont/terminalfont_windows.c +++ b/src/detection/terminalfont/terminalfont_windows.c @@ -4,6 +4,7 @@ #include "common/properties.h" #include "detection/terminalshell/terminalshell.h" #include "util/windows/unicode.h" +#include "util/windows/registry.h" #include "util/stringUtils.h" #include "terminalfont.h" @@ -259,6 +260,22 @@ static void detectConEmu(FFTerminalFontResult* terminalFont) ffFontInitValues(&terminalFont->font, fontName.chars, fontSize.chars); } +static void detectWarp(FFTerminalFontResult* terminalFont) +{ + FF_HKEY_AUTO_DESTROY key = NULL; + if (!ffRegOpenKeyForRead(HKEY_CURRENT_USER, L"Software\\Warp.dev\\Warp", &key, &terminalFont->error)) + return; + + FF_STRBUF_AUTO_DESTROY fontName = ffStrbufCreate(); + FF_STRBUF_AUTO_DESTROY fontSize = ffStrbufCreate(); + if (!ffRegReadStrbuf(key, L"FontName", &fontName, NULL)) + ffStrbufSetS(&fontName, "Hack"); + if (!ffRegReadStrbuf(key, L"FontSize", &fontSize, &terminalFont->error)) + ffStrbufSetS(&fontSize, "13"); + + ffFontInitValues(&terminalFont->font, fontName.chars, fontSize.chars); +} + void ffDetectTerminalFontPlatform(const FFTerminalResult* terminal, FFTerminalFontResult* terminalFont) { if(ffStrbufIgnCaseEqualS(&terminal->processName, "Windows Terminal") || @@ -270,4 +287,6 @@ void ffDetectTerminalFontPlatform(const FFTerminalResult* terminal, FFTerminalFo detectConhost(terminalFont); else if(ffStrbufStartsWithIgnCaseS(&terminal->processName, "ConEmu")) detectConEmu(terminalFont); + else if(ffStrbufStartsWithIgnCaseS(&terminal->processName, "warp")) + detectWarp(terminalFont); }