From 324c9a405476a19fb75148856af54fe859b8de97 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9?= <88944321+Ninso112@users.noreply.github.com>
Date: Mon, 11 May 2026 10:15:37 +0200
Subject: [PATCH] Fix fontconfig monospace binding overriding app-specific
fonts (#5700)
Change monospace match from mode="assign" binding="strong" to
mode="append" binding="same" so the system font acts as a fallback
instead of overriding explicit app font configs like Ghostty's font-family.
Add migration to fix existing user configs.
Fixes #5675
---
config/fontconfig/fonts.conf | 2 +-
migrations/1778346208.sh | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
create mode 100644 migrations/1778346208.sh
diff --git a/config/fontconfig/fonts.conf b/config/fontconfig/fonts.conf
index 2d873761..e1230262 100644
--- a/config/fontconfig/fonts.conf
+++ b/config/fontconfig/fonts.conf
@@ -23,7 +23,7 @@
monospace
-
+
JetBrainsMono Nerd Font
diff --git a/migrations/1778346208.sh b/migrations/1778346208.sh
new file mode 100644
index 00000000..89ab6ebd
--- /dev/null
+++ b/migrations/1778346208.sh
@@ -0,0 +1,11 @@
+echo "Fix fontconfig monospace binding so app-specific fonts are not overridden"
+
+if [[ -f ~/.config/fontconfig/fonts.conf ]] && command -v xmlstarlet >/dev/null 2>&1; then
+ xmlstarlet ed -L \
+ -u '//match[@target="pattern"][test/string="monospace"]/edit[@name="family"]/@mode' \
+ -v "append" \
+ -u '//match[@target="pattern"][test/string="monospace"]/edit[@name="family"]/@binding' \
+ -v "same" \
+ ~/.config/fontconfig/fonts.conf
+ fc-cache -f >/dev/null 2>&1
+fi