Skip to content

Fonts

Source directory: modules/fonts/

default.nix

modules/fonts/default.nix

Font module imports

No option declarations; see source for implementation.

fonts.nix

modules/fonts/fonts.nix

System Font Configuration Module Provides comprehensive font packages and fontconfig settings

  • Enable option: comprehensive font configuration

Options: enable, core, programming, nerdFonts, cjk, icons, enableOptimizations, defaultMonospace

Options declaration (Nix)
  options.modules.fonts = {
    enable = mkEnableOption "comprehensive font configuration";

    packages = {
      core = mkOption {
        type = types.bool;
        default = true;
        description = ''Enable core font packages (Noto, DejaVu, Ubuntu)'';
        example = false;
      };

      programming = mkOption {
        type = types.bool;
        default = true;
        description = ''Enable programming fonts (JetBrains Mono, Fira Code)'';
        example = false;
      };

      nerdFonts = mkOption {
        type = types.bool;
        default = true;
        description = ''Enable Nerd Fonts with icon support'';
        example = false;
      };

      cjk = mkOption {
        type = types.bool;
        default = false;
        description = ''Enable Chinese, Japanese, Korean font support'';
        example = true;
      };

      icons = mkOption {
        type = types.bool;
        default = true;
        description = ''Enable icon fonts (Font Awesome, Material Icons)'';
        example = false;
      };
    };

    fontconfig = {
      enableOptimizations = mkOption {
        type = types.bool;
        default = true;
        description = ''Enable fontconfig optimizations for better rendering'';
        example = false;
      };

      defaultMonospace = mkOption {
        type = types.str;
        default = "JetBrainsMono Nerd Font";
        description = ''Default monospace font family'';
        example = "Fira Code";
      };
    };
  }