From 1465056d4728acbacb5eb429c8dc522dac283eec Mon Sep 17 00:00:00 2001 From: Brandon Julio Thenaro Date: Sun, 15 Feb 2026 18:04:22 +0700 Subject: [PATCH] feat: add GeistMono Nerd Font to available font options The GeistMono Nerd Font files were already present in the repository but were not registered in the font system. This PR adds GeistMono as an available mono font option across all components and translations. - Register GeistMono in font.tsx with regular and bold variants - Add font definition in settings.tsx - Add dropdown option in settings-general.tsx - Add translations for all supported locales --- packages/app/src/components/settings-general.tsx | 1 + packages/app/src/context/settings.tsx | 1 + packages/app/src/i18n/ar.ts | 1 + packages/app/src/i18n/br.ts | 1 + packages/app/src/i18n/bs.ts | 1 + packages/app/src/i18n/da.ts | 1 + packages/app/src/i18n/de.ts | 1 + packages/app/src/i18n/en.ts | 1 + packages/app/src/i18n/es.ts | 1 + packages/app/src/i18n/fr.ts | 1 + packages/app/src/i18n/ja.ts | 1 + packages/app/src/i18n/ko.ts | 1 + packages/app/src/i18n/no.ts | 1 + packages/app/src/i18n/pl.ts | 1 + packages/app/src/i18n/ru.ts | 1 + packages/app/src/i18n/th.ts | 1 + packages/app/src/i18n/zh.ts | 1 + packages/app/src/i18n/zht.ts | 1 + packages/ui/src/components/font.tsx | 7 +++++++ 19 files changed, 25 insertions(+) diff --git a/packages/app/src/components/settings-general.tsx b/packages/app/src/components/settings-general.tsx index 439f542bb1c..d5a0b813b6c 100644 --- a/packages/app/src/components/settings-general.tsx +++ b/packages/app/src/components/settings-general.tsx @@ -128,6 +128,7 @@ export const SettingsGeneral: Component = () => { { value: "roboto-mono", label: "font.option.robotoMono" }, { value: "source-code-pro", label: "font.option.sourceCodePro" }, { value: "ubuntu-mono", label: "font.option.ubuntuMono" }, + { value: "geist-mono", label: "font.option.geistMono" }, ] as const const fontOptionsList = [...fontOptions] diff --git a/packages/app/src/context/settings.tsx b/packages/app/src/context/settings.tsx index d72d4ceb1ec..fbcd0a85184 100644 --- a/packages/app/src/context/settings.tsx +++ b/packages/app/src/context/settings.tsx @@ -85,6 +85,7 @@ const monoFonts: Record = { "roboto-mono": `"Roboto Mono Nerd Font", "RobotoMono Nerd Font", "RobotoMono Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`, "source-code-pro": `"Source Code Pro Nerd Font", "SauceCodePro Nerd Font", "SauceCodePro Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`, "ubuntu-mono": `"Ubuntu Mono Nerd Font", "UbuntuMono Nerd Font", "UbuntuMono Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`, + "geist-mono": `"GeistMono Nerd Font", "GeistMono Nerd Font Mono", "IBM Plex Mono", "IBM Plex Mono Fallback", ${monoFallback}`, } export function monoFontFamily(font: string | undefined) { diff --git a/packages/app/src/i18n/ar.ts b/packages/app/src/i18n/ar.ts index 81cc92bf6de..3d347c8423c 100644 --- a/packages/app/src/i18n/ar.ts +++ b/packages/app/src/i18n/ar.ts @@ -557,6 +557,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "تنبيه 01", "sound.option.alert02": "تنبيه 02", "sound.option.alert03": "تنبيه 03", diff --git a/packages/app/src/i18n/br.ts b/packages/app/src/i18n/br.ts index 9ed3a9fc6fc..730c01fdfff 100644 --- a/packages/app/src/i18n/br.ts +++ b/packages/app/src/i18n/br.ts @@ -563,6 +563,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "Alerta 01", "sound.option.alert02": "Alerta 02", "sound.option.alert03": "Alerta 03", diff --git a/packages/app/src/i18n/bs.ts b/packages/app/src/i18n/bs.ts index 206aae3729d..d53c261126b 100644 --- a/packages/app/src/i18n/bs.ts +++ b/packages/app/src/i18n/bs.ts @@ -631,6 +631,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "Upozorenje 01", "sound.option.alert02": "Upozorenje 02", "sound.option.alert03": "Upozorenje 03", diff --git a/packages/app/src/i18n/da.ts b/packages/app/src/i18n/da.ts index 6bf67168fb0..9faa14d3da4 100644 --- a/packages/app/src/i18n/da.ts +++ b/packages/app/src/i18n/da.ts @@ -627,6 +627,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "Alarm 01", "sound.option.alert02": "Alarm 02", "sound.option.alert03": "Alarm 03", diff --git a/packages/app/src/i18n/de.ts b/packages/app/src/i18n/de.ts index 4b6b43a57c0..d350af6cf55 100644 --- a/packages/app/src/i18n/de.ts +++ b/packages/app/src/i18n/de.ts @@ -572,6 +572,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "Alarm 01", "sound.option.alert02": "Alarm 02", "sound.option.alert03": "Alarm 03", diff --git a/packages/app/src/i18n/en.ts b/packages/app/src/i18n/en.ts index fd70f389ecf..cb42b016f1f 100644 --- a/packages/app/src/i18n/en.ts +++ b/packages/app/src/i18n/en.ts @@ -632,6 +632,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "Alert 01", "sound.option.alert02": "Alert 02", "sound.option.alert03": "Alert 03", diff --git a/packages/app/src/i18n/es.ts b/packages/app/src/i18n/es.ts index 135a63fef74..c4ec378dcdd 100644 --- a/packages/app/src/i18n/es.ts +++ b/packages/app/src/i18n/es.ts @@ -635,6 +635,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "Alerta 01", "sound.option.alert02": "Alerta 02", "sound.option.alert03": "Alerta 03", diff --git a/packages/app/src/i18n/fr.ts b/packages/app/src/i18n/fr.ts index 1ab0c72d53a..7069fbd98fe 100644 --- a/packages/app/src/i18n/fr.ts +++ b/packages/app/src/i18n/fr.ts @@ -571,6 +571,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "Alerte 01", "sound.option.alert02": "Alerte 02", "sound.option.alert03": "Alerte 03", diff --git a/packages/app/src/i18n/ja.ts b/packages/app/src/i18n/ja.ts index 6f092a60f68..e7e24a9bd68 100644 --- a/packages/app/src/i18n/ja.ts +++ b/packages/app/src/i18n/ja.ts @@ -561,6 +561,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "アラート 01", "sound.option.alert02": "アラート 02", "sound.option.alert03": "アラート 03", diff --git a/packages/app/src/i18n/ko.ts b/packages/app/src/i18n/ko.ts index 4d814d43d0a..650b7e662a3 100644 --- a/packages/app/src/i18n/ko.ts +++ b/packages/app/src/i18n/ko.ts @@ -562,6 +562,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "알림 01", "sound.option.alert02": "알림 02", "sound.option.alert03": "알림 03", diff --git a/packages/app/src/i18n/no.ts b/packages/app/src/i18n/no.ts index 63bc66acfcd..afc162ab176 100644 --- a/packages/app/src/i18n/no.ts +++ b/packages/app/src/i18n/no.ts @@ -634,6 +634,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "Varsel 01", "sound.option.alert02": "Varsel 02", "sound.option.alert03": "Varsel 03", diff --git a/packages/app/src/i18n/pl.ts b/packages/app/src/i18n/pl.ts index 2a3ea7bfb18..d8572148a89 100644 --- a/packages/app/src/i18n/pl.ts +++ b/packages/app/src/i18n/pl.ts @@ -562,6 +562,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "Alert 01", "sound.option.alert02": "Alert 02", "sound.option.alert03": "Alert 03", diff --git a/packages/app/src/i18n/ru.ts b/packages/app/src/i18n/ru.ts index 93e5b274253..86d201cebca 100644 --- a/packages/app/src/i18n/ru.ts +++ b/packages/app/src/i18n/ru.ts @@ -632,6 +632,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "Alert 01", "sound.option.alert02": "Alert 02", "sound.option.alert03": "Alert 03", diff --git a/packages/app/src/i18n/th.ts b/packages/app/src/i18n/th.ts index 3b3486b5c70..83020bf8c07 100644 --- a/packages/app/src/i18n/th.ts +++ b/packages/app/src/i18n/th.ts @@ -626,6 +626,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "เสียงเตือน 01", "sound.option.alert02": "เสียงเตือน 02", "sound.option.alert03": "เสียงเตือน 03", diff --git a/packages/app/src/i18n/zh.ts b/packages/app/src/i18n/zh.ts index 6489b702542..d0bf86cbba6 100644 --- a/packages/app/src/i18n/zh.ts +++ b/packages/app/src/i18n/zh.ts @@ -623,6 +623,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "警报 01", "sound.option.alert02": "警报 02", diff --git a/packages/app/src/i18n/zht.ts b/packages/app/src/i18n/zht.ts index a01b76c0521..349c90b0e11 100644 --- a/packages/app/src/i18n/zht.ts +++ b/packages/app/src/i18n/zht.ts @@ -621,6 +621,7 @@ export const dict = { "font.option.robotoMono": "Roboto Mono", "font.option.sourceCodePro": "Source Code Pro", "font.option.ubuntuMono": "Ubuntu Mono", + "font.option.geistMono": "Geist Mono", "sound.option.alert01": "警報 01", "sound.option.alert02": "警報 02", "sound.option.alert03": "警報 03", diff --git a/packages/ui/src/components/font.tsx b/packages/ui/src/components/font.tsx index fa4b6d8c015..bcb8863c89a 100644 --- a/packages/ui/src/components/font.tsx +++ b/packages/ui/src/components/font.tsx @@ -26,6 +26,8 @@ import ubuntuMono from "../assets/fonts/ubuntu-mono-nerd-font.woff2" import ubuntuMonoBold from "../assets/fonts/ubuntu-mono-nerd-font-bold.woff2" import iosevka from "../assets/fonts/iosevka-nerd-font.woff2" import iosevkaBold from "../assets/fonts/iosevka-nerd-font-bold.woff2" +import geistMono from "../assets/fonts/GeistMonoNerdFontMono-Regular.woff2" +import geistMonoBold from "../assets/fonts/GeistMonoNerdFontMono-Bold.woff2" type MonoFont = { family: string @@ -89,6 +91,11 @@ export const MONO_NERD_FONTS = [ regular: iosevka, bold: iosevkaBold, }, + { + family: "GeistMono Nerd Font", + regular: geistMono, + bold: geistMonoBold, + }, ] satisfies MonoFont[] const monoNerdCss = MONO_NERD_FONTS.map(