{ lib , pkgs , config , ... }: with lib; let cfg = config.eboskma.fonts; iosevka-buildplans = builtins.fromTOML (builtins.readFile "${pkgs.iosevka.src}/build-plans.toml"); iosevka-aile = pkgs.iosevka.override { privateBuildPlan = iosevka-buildplans.buildPlans.iosevka-aile; set = "aile"; }; in { options.eboskma.fonts = { enable = mkEnableOption "activate fonts"; iosevka-aile = mkOption { description = "Install Iosevka Aile"; type = types.bool; default = true; }; }; config = mkIf cfg.enable { fonts = { fontDir.enable = true; fonts = with pkgs; [ (nerdfonts.override { fonts = [ "CascadiaCode" "DroidSansMono" "FiraCode" "Inconsolata" "Iosevka" "Monoid" "Meslo" "Noto" "SourceCodePro" ]; }) corefonts dejavu_fonts google-fonts kochi-substitute material-icons noto-fonts-emoji recursive ttf_bitstream_vera twitter-color-emoji ] ++ lib.optional cfg.iosevka-aile iosevka-aile; fontconfig = { defaultFonts = { serif = [ "Recursive Sans Casual Static Medium" ]; sansSerif = [ (if cfg.iosevka-aile then "Iosevka Aile" else "DejaVu Sans") ]; monospace = [ "Iosevka Nerd Font" ]; emoji = [ "Twitter Color Emoji" ]; }; }; }; }; }