diff --git a/CLAUDE.md b/CLAUDE.md index b228b80..769246a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -63,6 +63,14 @@ Diagnose-Script das den Systemzustand gegen moonarch-Defaults prüft: - System-Config (UFW, Pacman/Paru Repos, Default Shell) - Verzeichnisse + Permissions +## Fontconfig Defaults + +Systemweite generic-family Defaults via `defaults/etc/fonts/conf.d/65-moonarch-fonts.conf` (owned by moonarch-git): +- `sans-serif` → UbuntuSans Nerd Font, `monospace` → UbuntuSansMono Nerd Font +- Nummer **65**: lädt nach `60-latin.conf`, sodass die moonarch-Prefs den Stock-Default (Noto/DejaVu) schlagen. `local.conf` (bei 51 via `51-local.conf`) lädt zu früh und wird von 60-latin überstimmt — daher **nicht** verwenden (außerdem für lokale User-Overrides reserviert). +- Aliases brauchen `binding="strong"` — ein weak `` (fontconfig-Default) rankt hinter dem effektiven generischen Fallback und greift nicht. +- Greift nur für Apps die generische Familien nutzen (z.B. Firefox-Web-Fallback). moonarch-Apps (Waybar, foot, GTK, walker, swaync) setzen den Font explizit. + ## Konventionen - Paketlisten sind einfache Textdateien, ein Paket pro Zeile, Kommentare mit `#` diff --git a/DECISIONS.md b/DECISIONS.md index 2366123..c9610a0 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -1,5 +1,11 @@ # Decisions +## 2026-06-08 – Fontconfig generic-family defaults via owned conf.d (65) +- **Who**: Dominik, ClaudeCode +- **Why**: Waybar rendered in Hack instead of Ubuntu after the Nerd Fonts "Ubuntu"→"UbuntuSans" rename (Canonical rebrand). Waybar's style.css referenced the now-dead family "Ubuntu Nerd Font"; fontconfig token-matched it to "Hack Nerd Font". An unowned hand-written `/etc/fonts/local.conf` additionally pinned sans-serif/monospace to Hack — a stale relic. +- **Tradeoffs**: `local.conf` (loaded at 51 via `51-local.conf`) is structurally too early — `60-latin.conf` prepends Noto/DejaVu afterwards and wins, so its sans-serif pin never took effect. local.conf is also reserved for local admin overrides, and packaging it as owned would collide with pre-existing unowned files on pacman update. A conf.d file at 65 loads after 60-latin (convention: 60–69 = generic→family) and wins cleanly without conflict. +- **How**: New owned `defaults/etc/fonts/conf.d/65-moonarch-fonts.conf` maps sans-serif→UbuntuSans Nerd Font, monospace→UbuntuSansMono Nerd Font; installed by moonarch-git PKGBUILD. Stale `/etc/fonts/local.conf` removed. Waybar `style.css` font-family corrected "Ubuntu Nerd Font"→"UbuntuSans Nerd Font" (the bar wants the explicit proportional font, not a generic). The aliases need `binding="strong"` — verified that a weak `` (fontconfig's default for ``) ranks behind the system's effective generic fallback and does not take effect; strong is required for it to apply. + ## 2026-05-04 – Nightlight default OFF, no global enablement - **Who**: Dominik, ClaudeCode diff --git a/defaults/etc/fonts/conf.d/65-moonarch-fonts.conf b/defaults/etc/fonts/conf.d/65-moonarch-fonts.conf new file mode 100644 index 0000000..76b4a5e --- /dev/null +++ b/defaults/etc/fonts/conf.d/65-moonarch-fonts.conf @@ -0,0 +1,21 @@ + + + + + + Moonarch generic-family defaults + + + sans-serif + + UbuntuSans Nerd Font + + + + monospace + + UbuntuSansMono Nerd Font + + + diff --git a/defaults/xdg/waybar/style.css b/defaults/xdg/waybar/style.css index 2a32537..8dc55c5 100644 --- a/defaults/xdg/waybar/style.css +++ b/defaults/xdg/waybar/style.css @@ -3,7 +3,7 @@ * { border: none; - font-family: "Ubuntu Nerd Font", sans-serif; + font-family: "UbuntuSans Nerd Font", sans-serif; font-size: 13px; color: alpha(@theme_text_color, 0.8); }