summaryrefslogtreecommitdiffstats
path: root/nixos/modules/config/fonts
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-08-20 13:24:21 +0200
committerJan Tojnar <jtojnar@gmail.com>2019-08-20 13:54:18 +0200
commitbe2cf1f0930df4d28d4db626bc0ca94f7a750794 (patch)
treec9c97a5b525115b00c4bdc4ace786c7737017fb7 /nixos/modules/config/fonts
parent1a3f604de31bf3489a93b90f36394ec47c94da27 (diff)
nixos/fontconfig: harmonize indentation
Diffstat (limited to 'nixos/modules/config/fonts')
-rw-r--r--nixos/modules/config/fonts/fontconfig-penultimate.nix2
-rw-r--r--nixos/modules/config/fonts/fontconfig.nix461
2 files changed, 233 insertions, 230 deletions
diff --git a/nixos/modules/config/fonts/fontconfig-penultimate.nix b/nixos/modules/config/fonts/fontconfig-penultimate.nix
index 34b87d7a1c80..491dea5b50e7 100644
--- a/nixos/modules/config/fonts/fontconfig-penultimate.nix
+++ b/nixos/modules/config/fonts/fontconfig-penultimate.nix
@@ -171,7 +171,7 @@ let
# The configuration to be included in /etc/font/
penultimateConf = pkgs.runCommand "font-penultimate-conf" {
preferLocalBuild = true;
- } ''
+ } ''
support_folder=$out/etc/fonts/conf.d
latest_folder=$out/etc/fonts/${latestVersion}/conf.d
diff --git a/nixos/modules/config/fonts/fontconfig.nix b/nixos/modules/config/fonts/fontconfig.nix
index 724158f73821..9d7c86cc9f59 100644
--- a/nixos/modules/config/fonts/fontconfig.nix
+++ b/nixos/modules/config/fonts/fontconfig.nix
@@ -14,250 +14,253 @@ Low number means high priority.
*/
-{ config, lib, pkgs, ... }:
+{ config, pkgs, lib, ... }:
with lib;
-let cfg = config.fonts.fontconfig;
-
- fcBool = x: "<bool>" + (boolToString x) + "</bool>";
-
- # back-supported fontconfig version and package
- # version is used for font cache generation
- supportVersion = "210";
- supportPkg = pkgs."fontconfig_${supportVersion}";
-
- # latest fontconfig version and package
- # version is used for configuration folder name, /etc/fonts/VERSION/
- # note: format differs from supportVersion and can not be used with makeCacheConf
- latestVersion = pkgs.fontconfig.configVersion;
- latestPkg = pkgs.fontconfig;
-
- # supported version fonts.conf
- supportFontsConf = pkgs.makeFontsConf { fontconfig = supportPkg; fontDirectories = config.fonts.fonts; };
-
- # configuration file to read fontconfig cache
- # version dependent
- # priority 0
- cacheConfSupport = makeCacheConf { version = supportVersion; };
- cacheConfLatest = makeCacheConf {};
-
- # generate the font cache setting file for a fontconfig version
- # use latest when no version is passed
- makeCacheConf = { version ? null }:
- let
- fcPackage = if version == null
- then "fontconfig"
- else "fontconfig_${version}";
- makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
- cache = makeCache pkgs."${fcPackage}";
- cache32 = makeCache pkgs.pkgsi686Linux."${fcPackage}";
- in
- pkgs.writeText "fc-00-nixos-cache.conf" ''
- <?xml version='1.0'?>
- <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
- <fontconfig>
- <!-- Font directories -->
- ${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)}
- <!-- Pre-generated font caches -->
- <cachedir>${cache}</cachedir>
- ${optionalString (pkgs.stdenv.isx86_64 && cfg.cache32Bit) ''
- <cachedir>${cache32}</cachedir>
- ''}
- </fontconfig>
- '';
-
- # rendering settings configuration file
- # priority 10
- renderConf = pkgs.writeText "fc-10-nixos-rendering.conf" ''
+let
+ cfg = config.fonts.fontconfig;
+
+ fcBool = x: "<bool>" + (boolToString x) + "</bool>";
+
+ # back-supported fontconfig version and package
+ # version is used for font cache generation
+ supportVersion = "210";
+ supportPkg = pkgs."fontconfig_${supportVersion}";
+
+ # latest fontconfig version and package
+ # version is used for configuration folder name, /etc/fonts/VERSION/
+ # note: format differs from supportVersion and can not be used with makeCacheConf
+ latestVersion = pkgs.fontconfig.configVersion;
+ latestPkg = pkgs.fontconfig;
+
+ # supported version fonts.conf
+ supportFontsConf = pkgs.makeFontsConf { fontconfig = supportPkg; fontDirectories = config.fonts.fonts; };
+
+ # configuration file to read fontconfig cache
+ # version dependent
+ # priority 0
+ cacheConfSupport = makeCacheConf { version = supportVersion; };
+ cacheConfLatest = makeCacheConf {};
+
+ # generate the font cache setting file for a fontconfig version
+ # use latest when no version is passed
+ makeCacheConf = { version ? null }:
+ let
+ fcPackage = if version == null
+ then "fontconfig"
+ else "fontconfig_${version}";
+ makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
+ cache = makeCache pkgs."${fcPackage}";
+ cache32 = makeCache pkgs.pkgsi686Linux."${fcPackage}";
+ in
+ pkgs.writeText "fc-00-nixos-cache.conf" ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
-
- <!-- Default rendering settings -->
- <match target="pattern">
- <edit mode="append" name="hinting">
- ${fcBool cfg.hinting.enable}
- </edit>
- <edit mode="append" name="autohint">
- ${fcBool cfg.hinting.autohint}
- </edit>
- <edit mode="append" name="hintstyle">
- <const>hintslight</const>
- </edit>
- <edit mode="append" name="antialias">
- ${fcBool cfg.antialias}
- </edit>
- <edit mode="append" name="rgba">
- <const>${cfg.subpixel.rgba}</const>
- </edit>
- <edit mode="append" name="lcdfilter">
- <const>lcd${cfg.subpixel.lcdfilter}</const>
- </edit>
- </match>
-
- ${optionalString (cfg.dpi != 0) ''
- <match target="pattern">
- <edit name="dpi" mode="assign">
- <double>${toString cfg.dpi}</double>
- </edit>
- </match>
+ <!-- Font directories -->
+ ${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)}
+ <!-- Pre-generated font caches -->
+ <cachedir>${cache}</cachedir>
+ ${optionalString (pkgs.stdenv.isx86_64 && cfg.cache32Bit) ''
+ <cachedir>${cache32}</cachedir>
''}
-
- </fontconfig>
- '';
-
- # local configuration file
- # priority 51
- localConf = pkgs.writeText "fc-local.conf" cfg.localConf;
-
- # default fonts configuration file
- # priority 52
- defaultFontsConf =
- let genDefault = fonts: name:
- optionalString (fonts != []) ''
- <alias>
- <family>${name}</family>
- <prefer>
- ${concatStringsSep ""
- (map (font: ''
- <family>${font}</family>
- '') fonts)}
- </prefer>
- </alias>
- '';
- in
- pkgs.writeText "fc-52-nixos-default-fonts.conf" ''
- <?xml version='1.0'?>
- <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
- <fontconfig>
-
- <!-- Default fonts -->
- ${genDefault cfg.defaultFonts.sansSerif "sans-serif"}
-
- ${genDefault cfg.defaultFonts.serif "serif"}
-
- ${genDefault cfg.defaultFonts.monospace "monospace"}
-
</fontconfig>
'';
- # bitmap font options
- # priority 53
- rejectBitmaps = pkgs.writeText "fc-53-nixos-bitmaps.conf" ''
- <?xml version="1.0"?>
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
- <fontconfig>
-
- ${optionalString (!cfg.allowBitmaps) ''
- <!-- Reject bitmap fonts -->
- <selectfont>
- <rejectfont>
- <pattern>
- <patelt name="scalable"><bool>false</bool></patelt>
- </pattern>
- </rejectfont>
- </selectfont>
- ''}
-
- <!-- Use embedded bitmaps in fonts like Calibri? -->
- <match target="font">
- <edit name="embeddedbitmap" mode="assign">
- ${fcBool cfg.useEmbeddedBitmaps}
+ # rendering settings configuration file
+ # priority 10
+ renderConf = pkgs.writeText "fc-10-nixos-rendering.conf" ''
+ <?xml version='1.0'?>
+ <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+ <fontconfig>
+
+ <!-- Default rendering settings -->
+ <match target="pattern">
+ <edit mode="append" name="hinting">
+ ${fcBool cfg.hinting.enable}
+ </edit>
+ <edit mode="append" name="autohint">
+ ${fcBool cfg.hinting.autohint}
+ </edit>
+ <edit mode="append" name="hintstyle">
+ <const>hintslight</const>
+ </edit>
+ <edit mode="append" name="antialias">
+ ${fcBool cfg.antialias}
+ </edit>
+ <edit mode="append" name="rgba">
+ <const>${cfg.subpixel.rgba}</const>
+ </edit>
+ <edit mode="append" name="lcdfilter">
+ <const>lcd${cfg.subpixel.lcdfilter}</const>
</edit>
</match>
- </fontconfig>
- '';
-
- # reject Type 1 fonts
- # priority 53
- rejectType1 = pkgs.writeText "fc-53-nixos-reject-type1.conf" ''
- <?xml version="1.0"?>
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
- <fontconfig>
-
- <!-- Reject Type 1 fonts -->
- <selectfont>
- <rejectfont>
- <pattern>
- <patelt name="fontformat"><string>Type 1</string></patelt>
- </pattern>
- </rejectfont>
- </selectfont>
-
- </fontconfig>
- '';
-
- # fontconfig configuration package
- confPkg = pkgs.runCommand "fontconfig-conf" { preferLocalBuild = true; } ''
- support_folder=$out/etc/fonts
- latest_folder=$out/etc/fonts/${latestVersion}
-
- mkdir -p $support_folder/conf.d
- mkdir -p $latest_folder/conf.d
-
- # fonts.conf
- ln -s ${supportFontsConf} $support_folder/fonts.conf
- ln -s ${latestPkg.out}/etc/fonts/fonts.conf \
- $latest_folder/fonts.conf
-
- # fontconfig default config files
- ln -s ${supportPkg.out}/etc/fonts/conf.d/*.conf \
- $support_folder/conf.d/
- ln -s ${latestPkg.out}/etc/fonts/conf.d/*.conf \
- $latest_folder/conf.d/
-
- # update latest 51-local.conf path to look at the latest local.conf
- rm $latest_folder/conf.d/51-local.conf
-
- substitute ${latestPkg.out}/etc/fonts/conf.d/51-local.conf \
- $latest_folder/conf.d/51-local.conf \
- --replace local.conf /etc/fonts/${latestVersion}/local.conf
-
- # 00-nixos-cache.conf
- ln -s ${cacheConfSupport} \
- $support_folder/conf.d/00-nixos-cache.conf
- ln -s ${cacheConfLatest} $latest_folder/conf.d/00-nixos-cache.conf
-
- # 10-nixos-rendering.conf
- ln -s ${renderConf} $support_folder/conf.d/10-nixos-rendering.conf
- ln -s ${renderConf} $latest_folder/conf.d/10-nixos-rendering.conf
-
- # 50-user.conf
- ${optionalString (! cfg.includeUserConf) ''
- rm $support_folder/conf.d/50-user.conf
- rm $latest_folder/conf.d/50-user.conf
- ''}
-
- # local.conf (indirect priority 51)
- ${optionalString (cfg.localConf != "") ''
- ln -s ${localConf} $support_folder/local.conf
- ln -s ${localConf} $latest_folder/local.conf
- ''}
-
- # 52-nixos-default-fonts.conf
- ln -s ${defaultFontsConf} $support_folder/conf.d/52-nixos-default-fonts.conf
- ln -s ${defaultFontsConf} $latest_folder/conf.d/52-nixos-default-fonts.conf
-
- # 53-nixos-bitmaps.conf
- ln -s ${rejectBitmaps} $support_folder/conf.d/53-nixos-bitmaps.conf
- ln -s ${rejectBitmaps} $latest_folder/conf.d/53-nixos-bitmaps.conf
-
- ${optionalString (! cfg.allowType1) ''
- # 53-nixos-reject-type1.conf
- ln -s ${rejectType1} $support_folder/conf.d/53-nixos-reject-type1.conf
- ln -s ${rejectType1} $latest_folder/conf.d/53-nixos-reject-type1.conf
+ ${optionalString (cfg.dpi != 0) ''
+ <match target="pattern">
+ <edit name="dpi" mode="assign">
+ <double>${toString cfg.dpi}</double>
+ </edit>
+ </match>
''}
- '';
- # Package with configuration files
- # this merge all the packages in the fonts.fontconfig.confPackages list
- fontconfigEtc = pkgs.buildEnv {
- name = "fontconfig-etc";
- paths = cfg.confPackages;
- ignoreCollisions = true;
- };
+ </fontconfig>
+ '';
+
+ # local configuration file
+ # priority 51
+ localConf = pkgs.writeText "fc-local.conf" cfg.localConf;
+
+ # default fonts configuration file
+ # priority 52
+ defaultFontsConf =
+ let genDefault = fonts: name:
+ optionalString (fonts != []) ''
+ <alias>
+ <family>${name}</family>
+ <prefer>
+ ${concatStringsSep ""
+ (map (font: ''
+ <family>${font}</family>
+ '') fonts)}
+ </prefer>
+ </alias>
+ '';
+ in
+ pkgs.writeText "fc-52-nixos-default-fonts.conf" ''
+ <?xml version='1.0'?>
+ <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+ <fontconfig>
+
+ <!-- Default fonts -->
+ ${genDefault cfg.defaultFonts.sansSerif "sans-serif"}
+
+ ${genDefault cfg.defaultFonts.serif "serif"}
+
+ ${genDefault cfg.defaultFonts.monospace "monospace"}
+
+ </fontconfig>
+ '';
+
+ # bitmap font options
+ # priority 53
+ rejectBitmaps = pkgs.writeText "fc-53-nixos-bitmaps.conf" ''
+ <?xml version="1.0"?>
+ <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+ <fontconfig>
+
+ ${optionalString (!cfg.allowBitmaps) ''
+ <!-- Reject bitmap fonts -->
+ <selectfont>
+ <rejectfont>
+ <pattern>
+ <patelt name="scalable"><bool>false</bool></patelt>
+ </pattern>
+ </rejectfont>
+ </selectfont>
+ ''}
+
+ <!-- Use embedded bitmaps in fonts like Calibri? -->
+ <match target="font">
+ <edit name="embeddedbitmap" mode="assign">
+ ${fcBool cfg.useEmbeddedBitmaps}
+ </edit>
+ </match>
+
+ </fontconfig>
+ '';
+
+ # reject Type 1 fonts
+ # priority 53
+ rejectType1 = pkgs.writeText "fc-53-nixos-reject-type1.conf" ''
+ <?xml version="1.0"?>
+ <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+ <fontconfig>
+
+ <!-- Reject Type 1 fonts -->
+ <selectfont>
+ <rejectfont>
+ <pattern>
+ <patelt name="fontformat"><string>Type 1</string></patelt>
+ </pattern>
+ </rejectfont>
+ </selectfont>
+
+ </fontconfig>
+ '';
+
+ # fontconfig configuration package
+ confPkg = pkgs.runCommand "fontconfig-conf" {
+ preferLocalBuild = true;
+ } ''
+ support_folder=$out/etc/fonts
+ latest_folder=$out/etc/fonts/${latestVersion}
+
+ mkdir -p $support_folder/conf.d
+ mkdir -p $latest_folder/conf.d
+
+ # fonts.conf
+ ln -s ${supportFontsConf} $support_folder/fonts.conf
+ ln -s ${latestPkg.out}/etc/fonts/fonts.conf \
+ $latest_folder/fonts.conf
+
+ # fontconfig default config files
+ ln -s ${supportPkg.out}/etc/fonts/conf.d/*.conf \
+ $support_folder/conf.d/
+ ln -s ${latestPkg.out}/etc/fonts/conf.d/*.conf \
+ $latest_folder/conf.d/
+
+ # update latest 51-local.conf path to look at the latest local.conf
+ rm $latest_folder/conf.d/51-local.conf
+
+ substitute ${latestPkg.out}/etc/fonts/conf.d/51-local.conf \
+ $latest_folder/conf.d/51-local.conf \
+ --replace local.conf /etc/fonts/${latestVersion}/local.conf
+
+ # 00-nixos-cache.conf
+ ln -s ${cacheConfSupport} \
+ $support_folder/conf.d/00-nixos-cache.conf
+ ln -s ${cacheConfLatest} $latest_folder/conf.d/00-nixos-cache.conf
+
+ # 10-nixos-rendering.conf
+ ln -s ${renderConf} $support_folder/conf.d/10-nixos-rendering.conf
+ ln -s ${renderConf} $latest_folder/conf.d/10-nixos-rendering.conf
+
+ # 50-user.conf
+ ${optionalString (!cfg.includeUserConf) ''
+ rm $support_folder/conf.d/50-user.conf
+ rm $latest_folder/conf.d/50-user.conf
+ ''}
+
+ # local.conf (indirect priority 51)
+ ${optionalString (cfg.localConf != "") ''
+ ln -s ${localConf} $support_folder/local.conf
+ ln -s ${localConf} $latest_folder/local.conf
+ ''}
+
+ # 52-nixos-default-fonts.conf
+ ln -s ${defaultFontsConf} $support_folder/conf.d/52-nixos-default-fonts.conf
+ ln -s ${defaultFontsConf} $latest_folder/conf.d/52-nixos-default-fonts.conf
+
+ # 53-nixos-bitmaps.conf
+ ln -s ${rejectBitmaps} $support_folder/conf.d/53-nixos-bitmaps.conf
+ ln -s ${rejectBitmaps} $latest_folder/conf.d/53-nixos-bitmaps.conf
+
+ ${optionalString (!cfg.allowType1) ''
+ # 53-nixos-reject-type1.conf
+ ln -s ${rejectType1} $support_folder/conf.d/53-nixos-reject-type1.conf
+ ln -s ${rejectType1} $latest_folder/conf.d/53-nixos-reject-type1.conf
+ ''}
+ '';
+
+ # Package with configuration files
+ # this merge all the packages in the fonts.fontconfig.confPackages list
+ fontconfigEtc = pkgs.buildEnv {
+ name = "fontconfig-etc";
+ paths = cfg.confPackages;
+ ignoreCollisions = true;
+ };
in
{