{ config, lib, pkgs, ... }: with lib; let cfg = config.nixfiles.modules.fonts; in { config = mkMerge [ (mkIf cfg.enable { nixfiles.modules.common.nix.allowedUnfreePackages = ["symbola"]; hm.fonts.fontconfig.enable = true; fonts = { packages = cfg.packages ++ (with pkgs; [ noto-fonts-emoji twitter-color-emoji symbola ]); fontconfig = { enable = true; defaultFonts = { emoji = mkForce [ "Twitter Color Emoji" "Noto Color Emoji" "Symbola" ]; monospace = mkForce [ "Iosevka" "Sarasa Mono" "Source Han Mono" "Noto Sans Mono" ]; sansSerif = mkForce [ "Iosevka Aile" "Sarasa Gothic" "Source Han Sans" "Noto Sans" ]; serif = mkForce [ "Iosevka Etoile" "Sarasa Gothic" "Source Han Serif" "Noto Serif" ]; }; localConf = '' Helvetica sans-serif Arial sans-serif ''; }; }; }) (mkIf (!cfg.enable) { hm.fonts.fontconfig.enable = false; fonts.fontconfig.enable = false; }) ]; }