anchor.diff:              </match>
   
               <!-- Default fonts -->
  -            ${optionalString (fontconfig.defaultFonts.sansSerif != "") ''
  +            ${optionalString (fontconfig.defaultFonts.sansSerif != []) ''
               <alias>
                 <family>sans-serif</family>
                 <prefer>
  -                <family>${fontconfig.defaultFonts.sansSerif}</family>
  +                ${concatStringsSep "\n"
  +                  (map (font: "<family>${font}</family>")
  +                    fontconfig.defaultFonts.sansSerif)}
                 </prefer>
               </alias>
               ''}
  -            ${optionalString (fontconfig.defaultFonts.serif != "") ''
  +            ${optionalString (fontconfig.defaultFonts.serif != []) ''
               <alias>
                 <family>serif</family>
                 <prefer>
  -                <family>${fontconfig.defaultFonts.serif}</family>
  +                ${concatStringsSep "\n"
  +                  (map (font: "<family>${font}</family>")
  +                    fontconfig.defaultFonts.serif)}
                 </prefer>
               </alias>
               ''}
  -            ${optionalString (fontconfig.defaultFonts.monospace != "") ''
  +            ${optionalString (fontconfig.defaultFonts.monospace != []) ''
               <alias>
                 <family>monospace</family>
                 <prefer>
  -                <family>${fontconfig.defaultFonts.monospace}</family>
  +                ${concatStringsSep "\n"
  +                  (map (font: "<family>${font}</family>")
  +                    fontconfig.defaultFonts.monospace)}
                 </prefer>
               </alias>
               ''}
  
positive.code:   config =
      let fontconfig = config.fonts.fontconfig;
          fcBool = x: "<bool>" + (if x then "true" else "false") + "</bool>";
      in mkIf fontconfig.enable {
  
        # Fontconfig 2.10 backward compatibility
  
        # Bring in the default (upstream) fontconfig configuration, only for fontconfig 2.10
        environment.etc."fonts/fonts.conf".source =
          pkgs.makeFontsConf { fontconfig = pkgs.fontconfig_210; fontDirectories = config.fonts.fonts; };
  
        environment.etc."fonts/conf.d/98-nixos.conf".text =
          ''
            <?xml version='1.0'?>
            <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
            <fontconfig>
  
negative.code: 
          defaultFonts = {
            monospace = mkOption {
              type = types.listOf types.str;
              default = ["DejaVu Sans Mono"];
              description = ''
                System-wide default monospace font(s). Multiple fonts may be
                listed in case multiple languages must be supported.
              '';
            };
  
            sansSerif = mkOption {
              type = types.listOf types.str;
              default = ["DejaVu Sans"];
              description = ''
                System-wide default sans serif font(s). Multiple fonts may be
                listed in case multiple languages must be supported.
              '';
            };
  
            serif = mkOption {
              type = types.listOf types.str;
              default = ["DejaVu Serif"];
              description = ''
                System-wide default serif font(s). Multiple fonts may be listed
                in case multiple languages must be supported.
              '';
            };
          };
  