{ pkgs, config, lib, ... }: let cfg = config.my.systems.fonts; iosevka-aile = pkgs.iosevka-bin.override { variant = "aile"; }; iosevka-curly = pkgs.iosevka-bin.override { variant = "curly"; }; iosevka-etoile = pkgs.iosevka-bin.override { variant = "etoile"; }; iosevka-slab = pkgs.iosevka-bin.override { variant = "slab"; }; in { options.my.systems.fonts = with lib; { enable = mkEnableOption "fonts configuration"; }; config = lib.mkIf cfg.enable { fonts = { enableDefaultFonts = true; fontDir.enable = true; fontconfig.enable = true; fonts = with pkgs; [ cascadia-code dejavu_fonts fira-code font-awesome_5 iosevka iosevka-aile iosevka-bin iosevka-curly iosevka-etoile iosevka-slab noto-fonts noto-fonts-cjk # Chinese, Japanese, Korean noto-fonts-emoji noto-fonts-emoji noto-fonts-extra source-code-pro source-sans-pro source-serif-pro ]; fontconfig.defaultFonts = { monospace = [ "Source Code Pro" ]; }; }; }; }