nixos/fontconfig: separate rendering and alias configuration

Fixes #9110. Fontconfig recommends different precedence for rendering
settings and generic alias settings. To comply with the recommendations,
`98-nixos.conf` has been separated into `10-nixos-rendering.conf` and
`60-nixos-generic-alias.conf`.

+20 -11
+20 -11
nixos/modules/config/fonts/fontconfig.nix
··· 142 config = 143 let fontconfig = config.fonts.fontconfig; 144 fcBool = x: "<bool>" + (if x then "true" else "false") + "</bool>"; 145 - nixosConf = '' 146 <?xml version='1.0'?> 147 <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> 148 <fontconfig> ··· 169 </edit> 170 </match> 171 172 <!-- Default fonts --> 173 ${optionalString (fontconfig.defaultFonts.sansSerif != []) '' 174 <alias> ··· 201 </alias> 202 ''} 203 204 - ${optionalString (fontconfig.dpi != 0) '' 205 - <match target="pattern"> 206 - <edit name="dpi" mode="assign"> 207 - <double>${toString fontconfig.dpi}</double> 208 - </edit> 209 - </match> 210 - ''} 211 - 212 </fontconfig> 213 ''; 214 in mkIf fontconfig.enable { ··· 219 environment.etc."fonts/fonts.conf".source = 220 pkgs.makeFontsConf { fontconfig = pkgs.fontconfig_210; fontDirectories = config.fonts.fonts; }; 221 222 - environment.etc."fonts/conf.d/98-nixos.conf".text = nixosConf; 223 224 # Versioned fontconfig > 2.10. Take shared fonts.conf from fontconfig. 225 # Otherwise specify only font directories. ··· 236 </fontconfig> 237 ''; 238 239 - environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/98-nixos.conf".text = nixosConf; 240 241 environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/99-user.conf" = { 242 enable = fontconfig.includeUserConf;
··· 142 config = 143 let fontconfig = config.fonts.fontconfig; 144 fcBool = x: "<bool>" + (if x then "true" else "false") + "</bool>"; 145 + renderConf = '' 146 <?xml version='1.0'?> 147 <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> 148 <fontconfig> ··· 169 </edit> 170 </match> 171 172 + ${optionalString (fontconfig.dpi != 0) '' 173 + <match target="pattern"> 174 + <edit name="dpi" mode="assign"> 175 + <double>${toString fontconfig.dpi}</double> 176 + </edit> 177 + </match> 178 + ''} 179 + 180 + </fontconfig> 181 + ''; 182 + genericAliasConf = '' 183 + <?xml version='1.0'?> 184 + <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> 185 + <fontconfig> 186 + 187 <!-- Default fonts --> 188 ${optionalString (fontconfig.defaultFonts.sansSerif != []) '' 189 <alias> ··· 216 </alias> 217 ''} 218 219 </fontconfig> 220 ''; 221 in mkIf fontconfig.enable { ··· 226 environment.etc."fonts/fonts.conf".source = 227 pkgs.makeFontsConf { fontconfig = pkgs.fontconfig_210; fontDirectories = config.fonts.fonts; }; 228 229 + environment.etc."fonts/conf.d/10-nixos-rendering.conf".text = renderConf; 230 + environment.etc."fonts/conf.d/60-nixos-generic-alias.conf".text = genericAliasConf; 231 232 # Versioned fontconfig > 2.10. Take shared fonts.conf from fontconfig. 233 # Otherwise specify only font directories. ··· 244 </fontconfig> 245 ''; 246 247 + environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/10-nixos-rendering.conf".text = renderConf; 248 + environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/60-nixos-generic-alias.conf".text = genericAliasConf; 249 250 environment.etc."fonts/${pkgs.fontconfig.configVersion}/conf.d/99-user.conf" = { 251 enable = fontconfig.includeUserConf;