lol

fontconfig-ultimate: 2015-12-06 -> 2016-04-23

This removes our hardcoded presets which weren't updated for quite some time.
Infinality now has new hardcoded presets in freetype, which can be overriden if
desired with environment variables (as before). Accordingly, updated NixOS
module to set the hardcoded preset.

Additionally used a more "right" type for substitutions.

+63 -295
+8
nixos/doc/manual/release-notes/rl-1609.xml
··· 58 58 official documentation</link>.</para> 59 59 </listitem> 60 60 61 + <listitem> 62 + <para><literal>fonts.fontconfig.ultimate.rendering</literal> was removed 63 + because our presets were obsolete for some time. New presets are hardcoded 64 + into freetype; one selects a preset via <literal>fonts.fontconfig.ultimate.preset</literal>. 65 + You can customize those presets via ordinary environment variables, using 66 + <literal>environment.variables</literal>.</para> 67 + </listitem> 68 + 61 69 </itemizedlist> 62 70 63 71
+11 -36
nixos/modules/config/fonts/fontconfig-ultimate.nix
··· 79 79 80 80 # fontconfig ultimate substitutions 81 81 ${optionalString (cfg.substitutions != "none") '' 82 - ln -s ${pkgs.fontconfig-ultimate.confd}/etc/fonts/presets/${cfg.substitutions}/*.conf \ 82 + ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/presets/${cfg.substitutions}/*.conf \ 83 83 $support_folder 84 - ln -s ${pkgs.fontconfig-ultimate.confd}/etc/fonts/presets/${cfg.substitutions}/*.conf \ 84 + ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/presets/${cfg.substitutions}/*.conf \ 85 85 $latest_folder 86 86 ''} 87 87 88 88 # fontconfig ultimate various configuration files 89 - ln -s ${pkgs.fontconfig-ultimate.confd}/etc/fonts/conf.d/*.conf \ 89 + ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/conf.d/*.conf \ 90 90 $support_folder 91 - ln -s ${pkgs.fontconfig-ultimate.confd}/etc/fonts/conf.d/*.conf \ 91 + ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/conf.d/*.conf \ 92 92 $latest_folder 93 93 ''; 94 94 ··· 153 153 }; 154 154 155 155 substitutions = mkOption { 156 - type = types.str // { 157 - check = flip elem ["none" "free" "combi" "ms"]; 158 - }; 156 + type = types.nullOr (types.enum ["free" "combi" "ms"]); 159 157 default = "free"; 160 158 description = '' 161 159 Font substitutions to replace common Type 1 fonts with nicer ··· 166 164 ''; 167 165 }; 168 166 169 - rendering = mkOption { 170 - type = types.attrs; 171 - default = pkgs.fontconfig-ultimate.rendering.ultimate; 167 + preset = mkOption { 168 + type = types.enum ["ultimate1" "ultimate2" "ultimate3" "ultimate4" "ultimate5" "osx" "windowsxp"]; 169 + default = "ultimate3"; 172 170 description = '' 173 - FreeType rendering settings presets. The default is 174 - <literal>pkgs.fontconfig-ultimate.rendering.ultimate</literal>. 175 - The other available styles are: 176 - <literal>ultimate-lighter</literal>, 177 - <literal>ultimate-darker</literal>, 178 - <literal>ultimate-lightest</literal>, 179 - <literal>ultimate-darkest</literal>, 180 - <literal>default</literal> (the original Infinality default), 181 - <literal>osx</literal>, 182 - <literal>ipad</literal>, 183 - <literal>ubuntu</literal>, 184 - <literal>linux</literal>, 185 - <literal>winxplight</literal>, 186 - <literal>win7light</literal>, 187 - <literal>winxp</literal>, 188 - <literal>win7</literal>, 189 - <literal>vanilla</literal>, 190 - <literal>classic</literal>, 191 - <literal>nudge</literal>, 192 - <literal>push</literal>, 193 - <literal>shove</literal>, 194 - <literal>sharpened</literal>, 195 - <literal>infinality</literal>. Any of the presets may be 196 - customized by editing the attributes. To disable, set this option 197 - to the empty attribute set <literal>{}</literal>. 171 + FreeType rendering settings preset. Any of the presets may be 172 + customized by setting environment variables. 198 173 ''; 199 174 }; 200 175 }; ··· 206 181 config = mkIf (config.fonts.fontconfig.enable && cfg.enable) { 207 182 208 183 fonts.fontconfig.confPackages = [ confPkg ]; 209 - environment.variables = cfg.rendering; 184 + environment.variables."INFINALITY_FT" = cfg.preset; 210 185 211 186 }; 212 187
+3
nixos/modules/rename.nix
··· 137 137 # Unity3D 138 138 (mkRenamedOptionModule [ "programs" "unity3d" "enable" ] [ "security" "chromiumSuidSandbox" "enable" ]) 139 139 140 + # fontconfig-ultimate 141 + (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "rendering" ] [ "fonts" "fontconfig" "ultimate" "preset" ]) 142 + 140 143 # Options that are obsolete and have no replacement. 141 144 (mkRemovedOptionModule [ "boot" "initrd" "luks" "enable" ]) 142 145 (mkRemovedOptionModule [ "programs" "bash" "enable" ])
-43
pkgs/development/libraries/fontconfig-ultimate/confd.nix
··· 1 - { stdenv, fetchFromGitHub }: 2 - 3 - let version = "2015-12-06"; in 4 - stdenv.mkDerivation { 5 - name = "fontconfig-ultimate-${version}"; 6 - 7 - src = fetchFromGitHub { 8 - sha256 = "02a811szxkq4q088nxfpdzp6rv0brvgkdhwigk09qffygxd776g6"; 9 - rev = version; 10 - repo = "fontconfig-ultimate"; 11 - owner = "bohoomil"; 12 - }; 13 - 14 - phases = "$prePhases unpackPhase installPhase $postPhases"; 15 - 16 - installPhase = '' 17 - mkdir -p $out/etc/fonts/conf.d 18 - cp conf.d.infinality/*.conf $out/etc/fonts/conf.d 19 - 20 - # Base rendering settings will be determined by NixOS module 21 - rm $out/etc/fonts/conf.d/10-base-rendering.conf 22 - 23 - # Options controlled by NixOS module 24 - rm $out/etc/fonts/conf.d/35-repl-custom.conf 25 - rm $out/etc/fonts/conf.d/38-repl-*.conf 26 - rm $out/etc/fonts/conf.d/82-*.conf 27 - rm $out/etc/fonts/conf.d/83-*.conf 28 - 29 - # Inclusion of local and user configs handled by global configuration 30 - rm $out/etc/fonts/conf.d/29-local.conf 31 - rm $out/etc/fonts/conf.d/28-user.conf 32 - 33 - cp fontconfig_patches/fonts-settings/*.conf $out/etc/fonts/conf.d 34 - 35 - # fix font priority issue https://github.com/bohoomil/fontconfig-ultimate/issues/173 36 - mv $out/etc/fonts/conf.d/{43,60}-wqy-zenhei-sharp.conf 37 - 38 - mkdir -p $out/etc/fonts/presets/{combi,free,ms} 39 - cp fontconfig_patches/combi/*.conf $out/etc/fonts/presets/combi 40 - cp fontconfig_patches/free/*.conf $out/etc/fonts/presets/free 41 - cp fontconfig_patches/ms/*.conf $out/etc/fonts/presets/ms 42 - ''; 43 - }
+41 -4
pkgs/development/libraries/fontconfig-ultimate/default.nix
··· 1 - { callPackage }: 1 + { stdenv, fetchFromGitHub }: 2 + 3 + let version = "2016-04-23"; in 4 + stdenv.mkDerivation { 5 + name = "fontconfig-ultimate-${version}"; 6 + 7 + src = fetchFromGitHub { 8 + sha256 = "1rd2n60l8bamx84q3l91pd9a0wz9h7p6ajvx1dw22qn8rah4h498"; 9 + rev = version; 10 + repo = "fontconfig-ultimate"; 11 + owner = "bohoomil"; 12 + }; 13 + 14 + phases = "$prePhases unpackPhase installPhase $postPhases"; 15 + 16 + installPhase = '' 17 + mkdir -p $out/etc/fonts/conf.d 18 + cp conf.d.infinality/*.conf $out/etc/fonts/conf.d 19 + 20 + # Base rendering settings will be determined by NixOS module 21 + rm $out/etc/fonts/conf.d/10-base-rendering.conf 22 + 23 + # Options controlled by NixOS module 24 + rm $out/etc/fonts/conf.d/35-repl-custom.conf 25 + rm $out/etc/fonts/conf.d/38-repl-*.conf 26 + rm $out/etc/fonts/conf.d/82-*.conf 27 + rm $out/etc/fonts/conf.d/83-*.conf 2 28 3 - { 4 - confd = callPackage ./confd.nix {}; 5 - rendering = callPackage ./rendering.nix {}; 29 + # Inclusion of local and user configs handled by global configuration 30 + rm $out/etc/fonts/conf.d/29-local.conf 31 + rm $out/etc/fonts/conf.d/28-user.conf 32 + 33 + cp fontconfig_patches/fonts-settings/*.conf $out/etc/fonts/conf.d 34 + 35 + # fix font priority issue https://github.com/bohoomil/fontconfig-ultimate/issues/173 36 + mv $out/etc/fonts/conf.d/{43,60}-wqy-zenhei-sharp.conf 37 + 38 + mkdir -p $out/etc/fonts/presets/{combi,free,ms} 39 + cp fontconfig_patches/combi/*.conf $out/etc/fonts/presets/combi 40 + cp fontconfig_patches/free/*.conf $out/etc/fonts/presets/free 41 + cp fontconfig_patches/ms/*.conf $out/etc/fonts/presets/ms 42 + ''; 6 43 }
-212
pkgs/development/libraries/fontconfig-ultimate/rendering.nix
··· 1 - {}: 2 - 3 - rec { 4 - default = { 5 - INFINALITY_FT_FILTER_PARAMS="11 22 38 22 11"; 6 - INFINALITY_FT_GRAYSCALE_FILTER_STRENGTH="0"; 7 - INFINALITY_FT_FRINGE_FILTER_STRENGTH="0"; 8 - INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH="10"; 9 - INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH="25"; 10 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="10"; 11 - INFINALITY_FT_CHROMEOS_STYLE_SHARPENING_STRENGTH="0"; 12 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="25"; 13 - INFINALITY_FT_STEM_FITTING_STRENGTH="25"; 14 - INFINALITY_FT_GAMMA_CORRECTION="0 100"; 15 - INFINALITY_FT_BRIGHTNESS="0"; 16 - INFINALITY_FT_CONTRAST="0"; 17 - INFINALITY_FT_USE_VARIOUS_TWEAKS="true"; 18 - INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="true"; 19 - INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="100"; 20 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="40"; 21 - INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="true"; 22 - INFINALITY_FT_GLOBAL_EMBOLDEN_X_VALUE="0"; 23 - INFINALITY_FT_GLOBAL_EMBOLDEN_Y_VALUE="0"; 24 - INFINALITY_FT_BOLD_EMBOLDEN_X_VALUE="0"; 25 - INFINALITY_FT_BOLD_EMBOLDEN_Y_VALUE="0"; 26 - }; 27 - 28 - osx = default // { 29 - INFINALITY_FT_FILTER_PARAMS="03 32 38 32 03"; 30 - INFINALITY_FT_GRAYSCALE_FILTER_STRENGTH="25"; 31 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0"; 32 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0"; 33 - INFINALITY_FT_STEM_FITTING_STRENGTH="0"; 34 - INFINALITY_FT_GAMMA_CORRECTION="1000 80"; 35 - INFINALITY_FT_BRIGHTNESS="10"; 36 - INFINALITY_FT_CONTRAST="20"; 37 - INFINALITY_FT_USE_VARIOUS_TWEAKS="false"; 38 - INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false"; 39 - INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="0"; 40 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0"; 41 - INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false"; 42 - INFINALITY_FT_GLOBAL_EMBOLDEN_Y_VALUE="8"; 43 - INFINALITY_FT_BOLD_EMBOLDEN_X_VALUE="16"; 44 - }; 45 - 46 - ipad = default // { 47 - INFINALITY_FT_FILTER_PARAMS="00 00 100 00 00"; 48 - INFINALITY_FT_GRAYSCALE_FILTER_STRENGTH="100"; 49 - INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH="0"; 50 - INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH="0"; 51 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0"; 52 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0"; 53 - INFINALITY_FT_STEM_FITTING_STRENGTH="0"; 54 - INFINALITY_FT_GAMMA_CORRECTION="1000 80"; 55 - INFINALITY_FT_USE_VARIOUS_TWEAKS="false"; 56 - INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false"; 57 - INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="0"; 58 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0"; 59 - INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false"; 60 - }; 61 - 62 - ubuntu = default // { 63 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0"; 64 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0"; 65 - INFINALITY_FT_STEM_FITTING_STRENGTH="0"; 66 - INFINALITY_FT_GAMMA_CORRECTION="1000 80"; 67 - INFINALITY_FT_BRIGHTNESS="-10"; 68 - INFINALITY_FT_CONTRAST="15"; 69 - INFINALITY_FT_USE_VARIOUS_TWEAKS="false"; 70 - INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false"; 71 - INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="0"; 72 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0"; 73 - INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false"; 74 - }; 75 - 76 - linux = default // { 77 - INFINALITY_FT_FILTER_PARAMS="06 25 44 25 06"; 78 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0"; 79 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0"; 80 - INFINALITY_FT_STEM_FITTING_STRENGTH="0"; 81 - INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false"; 82 - INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="100"; 83 - INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false"; 84 - }; 85 - 86 - winxplight = default // { 87 - INFINALITY_FT_FILTER_PARAMS="06 25 44 25 06"; 88 - INFINALITY_FT_FRINGE_FILTER_STRENGTH="100"; 89 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="65"; 90 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="15"; 91 - INFINALITY_FT_STEM_FITTING_STRENGTH="15"; 92 - INFINALITY_FT_GAMMA_CORRECTION="1000 120"; 93 - INFINALITY_FT_BRIGHTNESS="20"; 94 - INFINALITY_FT_CONTRAST="30"; 95 - INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false"; 96 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="30"; 97 - }; 98 - 99 - win7light = default // { 100 - INFINALITY_FT_FILTER_PARAMS="20 25 38 25 05"; 101 - INFINALITY_FT_FRINGE_FILTER_STRENGTH="100"; 102 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="100"; 103 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0"; 104 - INFINALITY_FT_STEM_FITTING_STRENGTH="0"; 105 - INFINALITY_FT_GAMMA_CORRECTION="1000 160"; 106 - INFINALITY_FT_CONTRAST="20"; 107 - INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false"; 108 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="30"; 109 - }; 110 - 111 - winxp = default // { 112 - INFINALITY_FT_FILTER_PARAMS="06 25 44 25 06"; 113 - INFINALITY_FT_FRINGE_FILTER_STRENGTH="100"; 114 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="65"; 115 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="15"; 116 - INFINALITY_FT_STEM_FITTING_STRENGTH="15"; 117 - INFINALITY_FT_GAMMA_CORRECTION="1000 120"; 118 - INFINALITY_FT_BRIGHTNESS="10"; 119 - INFINALITY_FT_CONTRAST="20"; 120 - INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false"; 121 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="30"; 122 - }; 123 - 124 - win7 = default // { 125 - INFINALITY_FT_FILTER_PARAMS="20 25 42 25 06"; 126 - INFINALITY_FT_FRINGE_FILTER_STRENGTH="100"; 127 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="65"; 128 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0"; 129 - INFINALITY_FT_STEM_FITTING_STRENGTH="0"; 130 - INFINALITY_FT_GAMMA_CORRECTION="1000 120"; 131 - INFINALITY_FT_BRIGHTNESS="10"; 132 - INFINALITY_FT_CONTRAST="20"; 133 - INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false"; 134 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0"; 135 - }; 136 - 137 - vanilla = default // { 138 - INFINALITY_FT_FILTER_PARAMS="06 25 38 25 06"; 139 - INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH="0"; 140 - INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH="0"; 141 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0"; 142 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0"; 143 - INFINALITY_FT_STEM_FITTING_STRENGTH="0"; 144 - INFINALITY_FT_USE_VARIOUS_TWEAKS="false"; 145 - INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false"; 146 - INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="0"; 147 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0"; 148 - INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false"; 149 - }; 150 - 151 - classic = default // { 152 - INFINALITY_FT_FILTER_PARAMS="06 25 38 25 06"; 153 - INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH="0"; 154 - INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH="0"; 155 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0"; 156 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0"; 157 - INFINALITY_FT_STEM_FITTING_STRENGTH="0"; 158 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0"; 159 - INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false"; 160 - }; 161 - 162 - nudge = default // { 163 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0"; 164 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="30"; 165 - INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false"; 166 - }; 167 - 168 - push = default // { 169 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0"; 170 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="75"; 171 - INFINALITY_FT_STEM_FITTING_STRENGTH="50"; 172 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="30"; 173 - }; 174 - 175 - infinality = default // { 176 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="5"; 177 - }; 178 - 179 - shove = default // { 180 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0"; 181 - INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="100"; 182 - INFINALITY_FT_STEM_FITTING_STRENGTH="100"; 183 - INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0"; 184 - }; 185 - 186 - sharpened = default // { 187 - INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="65"; 188 - }; 189 - 190 - ultimate = { 191 - INFINALITY_FT_FILTER_PARAMS="08 24 36 24 08"; 192 - INFINALITY_FT_FRINGE_FILTER_STRENGTH="50"; 193 - INFINALITY_FT_USE_VARIOUS_TWEAKS="true"; 194 - INFINALITY_FT_CHROMEOS_STYLE_SHARPENING_STRENGTH="20"; 195 - }; 196 - 197 - ultimate-lighter = ultimate // { 198 - INFINALITY_FT_FILTER_PARAMS="06 22 36 22 06"; 199 - }; 200 - 201 - ultimate-lightest = ultimate // { 202 - INFINALITY_FT_FILTER_PARAMS="04 22 38 22 04"; 203 - }; 204 - 205 - ultimate-darker = ultimate // { 206 - INFINALITY_FT_FILTER_PARAMS="10 25 37 25 10"; 207 - }; 208 - 209 - ultimate-darkest = ultimate // { 210 - INFINALITY_FT_FILTER_PARAMS="12 28 42 28 12"; 211 - }; 212 - }