···
Fontconfig reads files in folder name / file name order, so the number prepended to the configuration file name decide the order of parsing.
Low number means high priority.
15
-
Default fonts should have a high priority (low number) to be at the head of the preferred fonts list, fontconfig advise the 30~40 range.
{ config, lib, pkgs, ... }:
···
112
-
# prefered default fonts configuration file
110
+
# local configuration file
112
+
localConf = pkgs.writeText "fc-local.conf" cfg.localConf;
114
+
# default fonts configuration file
let genDefault = fonts: name:
optionalString (fonts != []) ''
···
128
-
pkgs.writeText "fc-30-nixos-generic-alias.conf" ''
130
+
pkgs.writeText "fc-52-nixos-default-fonts.conf" ''
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
···
143
-
# user settings configuration file
145
-
userConf = pkgs.writeText "fc-99-user.conf" ''
146
-
<?xml version="1.0"?>
147
-
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
149
-
<include ignore_missing="yes" prefix="xdg">fontconfig/conf.d</include>
150
-
<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include>
# fontconfig configuration package
confPkg = pkgs.runCommand "fontconfig-conf" {} ''
support_folder=$out/etc/fonts
···
ln -s ${latestPkg.out}/etc/fonts/conf.d/*.conf \
164
+
# update latest 51-local.conf path to look at the latest local.conf
165
+
rm $latest_folder/conf.d/51-local.conf
167
+
substitute ${latestPkg.out}/etc/fonts/conf.d/51-local.conf \
168
+
$latest_folder/conf.d/51-local.conf \
169
+
--replace local.conf /etc/fonts/${latestVersion}/local.conf
ln -s ${cacheConfSupport} \
$support_folder/conf.d/00-nixos-cache.conf
···
ln -s ${renderConf} $support_folder/conf.d/10-nixos-rendering.conf
ln -s ${renderConf} $latest_folder/conf.d/10-nixos-rendering.conf
182
-
# 30-nixos-generic-alias.conf
183
-
ln -s ${genericAliasConf} $support_folder/conf.d/30-nixos-generic-alias.conf
184
-
ln -s ${genericAliasConf} $latest_folder/conf.d/30-nixos-generic-alias.conf
181
+
${optionalString (! cfg.includeUserConf) ''
182
+
rm $support_folder/conf.d/50-user.conf
183
+
rm $latest_folder/conf.d/50-user.conf
187
-
${optionalString cfg.includeUserConf ''
188
-
ln -s ${userConf} $support_folder/conf.d/99-user.conf
189
-
ln -s ${userConf} $latest_folder/conf.d/99-user.conf
186
+
# local.conf (indirect priority 51)
187
+
${optionalString (cfg.localConf != "") ''
188
+
ln -s ${localConf} $support_folder/local.conf
189
+
ln -s ${localConf} $latest_folder/local.conf
192
+
# 52-nixos-default-fonts.conf
193
+
ln -s ${defaultFontsConf} $support_folder/conf.d/52-nixos-default-fonts.conf
194
+
ln -s ${defaultFontsConf} $latest_folder/conf.d/52-nixos-default-fonts.conf
# Package with configuration files
···
Force DPI setting. Setting to <literal>0</literal> disables DPI
forcing; the DPI detected for the display will be used.
248
+
localConf = mkOption {
249
+
type = types.lines;
252
+
System-wide customization file contents, has higher priority than
253
+
<literal>defaultFonts</literal> settings.