{ pkgs, lib, config, ... }: { options = { myDesktop.fontFix.enable = lib.mkEnableOption "fix brail font"; }; config = lib.mkIf config.myDesktop.fontFix.enable { # Disable default packages to prevent bad fallback fonts (like freefont_ttf) fonts.enableDefaultPackages = false; fonts.fontconfig.enable = true; fonts.fontDir.enable = true; fonts.packages = with pkgs; [ # --- Primary Monospace & Nerd Fonts --- nerd-fonts.jetbrains-mono nerd-fonts.fira-code # --- System & UI Fonts (Noto / Liberation / DejaVu) --- noto-fonts noto-fonts-cjk-sans # Chinese / Japanese / Korean glyphs noto-fonts-color-emoji # System-wide color emojis liberation_ttf # Metrically compatible with Times/Arial/Courier dejavu_fonts ]; # Force Fontconfig priority so terminal/system pick the right fonts first fonts.fontconfig.defaultFonts = { monospace = [ "JetBrainsMono Nerd Font" "Noto Sans Mono" "DejaVu Sans Mono" ]; sansSerif = [ "Noto Sans" "DejaVu Sans" ]; serif = [ "Noto Serif" "DejaVu Serif" ]; emoji = [ "Noto Color Emoji" ]; }; }; }