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.
This commit is contained in:
Nikolay Amiantov 2016-08-19 13:14:07 +03:00
parent 4114cf9c6c
commit e3ab0826c2
6 changed files with 63 additions and 295 deletions

View File

@ -58,6 +58,14 @@ following incompatible changes:</para>
official documentation</link>.</para>
</listitem>
<listitem>
<para><literal>fonts.fontconfig.ultimate.rendering</literal> was removed
because our presets were obsolete for some time. New presets are hardcoded
into freetype; one selects a preset via <literal>fonts.fontconfig.ultimate.preset</literal>.
You can customize those presets via ordinary environment variables, using
<literal>environment.variables</literal>.</para>
</listitem>
</itemizedlist>

View File

@ -79,16 +79,16 @@ let fcBool = x: if x then "<bool>true</bool>" else "<bool>false</bool>";
# fontconfig ultimate substitutions
${optionalString (cfg.substitutions != "none") ''
ln -s ${pkgs.fontconfig-ultimate.confd}/etc/fonts/presets/${cfg.substitutions}/*.conf \
ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/presets/${cfg.substitutions}/*.conf \
$support_folder
ln -s ${pkgs.fontconfig-ultimate.confd}/etc/fonts/presets/${cfg.substitutions}/*.conf \
ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/presets/${cfg.substitutions}/*.conf \
$latest_folder
''}
# fontconfig ultimate various configuration files
ln -s ${pkgs.fontconfig-ultimate.confd}/etc/fonts/conf.d/*.conf \
ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/conf.d/*.conf \
$support_folder
ln -s ${pkgs.fontconfig-ultimate.confd}/etc/fonts/conf.d/*.conf \
ln -s ${pkgs.fontconfig-ultimate}/etc/fonts/conf.d/*.conf \
$latest_folder
'';
@ -153,9 +153,7 @@ in
};
substitutions = mkOption {
type = types.str // {
check = flip elem ["none" "free" "combi" "ms"];
};
type = types.nullOr (types.enum ["free" "combi" "ms"]);
default = "free";
description = ''
Font substitutions to replace common Type 1 fonts with nicer
@ -166,35 +164,12 @@ in
'';
};
rendering = mkOption {
type = types.attrs;
default = pkgs.fontconfig-ultimate.rendering.ultimate;
preset = mkOption {
type = types.enum ["ultimate1" "ultimate2" "ultimate3" "ultimate4" "ultimate5" "osx" "windowsxp"];
default = "ultimate3";
description = ''
FreeType rendering settings presets. The default is
<literal>pkgs.fontconfig-ultimate.rendering.ultimate</literal>.
The other available styles are:
<literal>ultimate-lighter</literal>,
<literal>ultimate-darker</literal>,
<literal>ultimate-lightest</literal>,
<literal>ultimate-darkest</literal>,
<literal>default</literal> (the original Infinality default),
<literal>osx</literal>,
<literal>ipad</literal>,
<literal>ubuntu</literal>,
<literal>linux</literal>,
<literal>winxplight</literal>,
<literal>win7light</literal>,
<literal>winxp</literal>,
<literal>win7</literal>,
<literal>vanilla</literal>,
<literal>classic</literal>,
<literal>nudge</literal>,
<literal>push</literal>,
<literal>shove</literal>,
<literal>sharpened</literal>,
<literal>infinality</literal>. Any of the presets may be
customized by editing the attributes. To disable, set this option
to the empty attribute set <literal>{}</literal>.
FreeType rendering settings preset. Any of the presets may be
customized by setting environment variables.
'';
};
};
@ -206,7 +181,7 @@ in
config = mkIf (config.fonts.fontconfig.enable && cfg.enable) {
fonts.fontconfig.confPackages = [ confPkg ];
environment.variables = cfg.rendering;
environment.variables."INFINALITY_FT" = cfg.preset;
};

View File

@ -137,6 +137,9 @@ with lib;
# Unity3D
(mkRenamedOptionModule [ "programs" "unity3d" "enable" ] [ "security" "chromiumSuidSandbox" "enable" ])
# fontconfig-ultimate
(mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "rendering" ] [ "fonts" "fontconfig" "ultimate" "preset" ])
# Options that are obsolete and have no replacement.
(mkRemovedOptionModule [ "boot" "initrd" "luks" "enable" ])
(mkRemovedOptionModule [ "programs" "bash" "enable" ])

View File

@ -1,43 +0,0 @@
{ stdenv, fetchFromGitHub }:
let version = "2015-12-06"; in
stdenv.mkDerivation {
name = "fontconfig-ultimate-${version}";
src = fetchFromGitHub {
sha256 = "02a811szxkq4q088nxfpdzp6rv0brvgkdhwigk09qffygxd776g6";
rev = version;
repo = "fontconfig-ultimate";
owner = "bohoomil";
};
phases = "$prePhases unpackPhase installPhase $postPhases";
installPhase = ''
mkdir -p $out/etc/fonts/conf.d
cp conf.d.infinality/*.conf $out/etc/fonts/conf.d
# Base rendering settings will be determined by NixOS module
rm $out/etc/fonts/conf.d/10-base-rendering.conf
# Options controlled by NixOS module
rm $out/etc/fonts/conf.d/35-repl-custom.conf
rm $out/etc/fonts/conf.d/38-repl-*.conf
rm $out/etc/fonts/conf.d/82-*.conf
rm $out/etc/fonts/conf.d/83-*.conf
# Inclusion of local and user configs handled by global configuration
rm $out/etc/fonts/conf.d/29-local.conf
rm $out/etc/fonts/conf.d/28-user.conf
cp fontconfig_patches/fonts-settings/*.conf $out/etc/fonts/conf.d
# fix font priority issue https://github.com/bohoomil/fontconfig-ultimate/issues/173
mv $out/etc/fonts/conf.d/{43,60}-wqy-zenhei-sharp.conf
mkdir -p $out/etc/fonts/presets/{combi,free,ms}
cp fontconfig_patches/combi/*.conf $out/etc/fonts/presets/combi
cp fontconfig_patches/free/*.conf $out/etc/fonts/presets/free
cp fontconfig_patches/ms/*.conf $out/etc/fonts/presets/ms
'';
}

View File

@ -1,6 +1,43 @@
{ callPackage }:
{ stdenv, fetchFromGitHub }:
{
confd = callPackage ./confd.nix {};
rendering = callPackage ./rendering.nix {};
let version = "2016-04-23"; in
stdenv.mkDerivation {
name = "fontconfig-ultimate-${version}";
src = fetchFromGitHub {
sha256 = "1rd2n60l8bamx84q3l91pd9a0wz9h7p6ajvx1dw22qn8rah4h498";
rev = version;
repo = "fontconfig-ultimate";
owner = "bohoomil";
};
phases = "$prePhases unpackPhase installPhase $postPhases";
installPhase = ''
mkdir -p $out/etc/fonts/conf.d
cp conf.d.infinality/*.conf $out/etc/fonts/conf.d
# Base rendering settings will be determined by NixOS module
rm $out/etc/fonts/conf.d/10-base-rendering.conf
# Options controlled by NixOS module
rm $out/etc/fonts/conf.d/35-repl-custom.conf
rm $out/etc/fonts/conf.d/38-repl-*.conf
rm $out/etc/fonts/conf.d/82-*.conf
rm $out/etc/fonts/conf.d/83-*.conf
# Inclusion of local and user configs handled by global configuration
rm $out/etc/fonts/conf.d/29-local.conf
rm $out/etc/fonts/conf.d/28-user.conf
cp fontconfig_patches/fonts-settings/*.conf $out/etc/fonts/conf.d
# fix font priority issue https://github.com/bohoomil/fontconfig-ultimate/issues/173
mv $out/etc/fonts/conf.d/{43,60}-wqy-zenhei-sharp.conf
mkdir -p $out/etc/fonts/presets/{combi,free,ms}
cp fontconfig_patches/combi/*.conf $out/etc/fonts/presets/combi
cp fontconfig_patches/free/*.conf $out/etc/fonts/presets/free
cp fontconfig_patches/ms/*.conf $out/etc/fonts/presets/ms
'';
}

View File

@ -1,212 +0,0 @@
{}:
rec {
default = {
INFINALITY_FT_FILTER_PARAMS="11 22 38 22 11";
INFINALITY_FT_GRAYSCALE_FILTER_STRENGTH="0";
INFINALITY_FT_FRINGE_FILTER_STRENGTH="0";
INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH="10";
INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH="25";
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="10";
INFINALITY_FT_CHROMEOS_STYLE_SHARPENING_STRENGTH="0";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="25";
INFINALITY_FT_STEM_FITTING_STRENGTH="25";
INFINALITY_FT_GAMMA_CORRECTION="0 100";
INFINALITY_FT_BRIGHTNESS="0";
INFINALITY_FT_CONTRAST="0";
INFINALITY_FT_USE_VARIOUS_TWEAKS="true";
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="true";
INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="100";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="40";
INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="true";
INFINALITY_FT_GLOBAL_EMBOLDEN_X_VALUE="0";
INFINALITY_FT_GLOBAL_EMBOLDEN_Y_VALUE="0";
INFINALITY_FT_BOLD_EMBOLDEN_X_VALUE="0";
INFINALITY_FT_BOLD_EMBOLDEN_Y_VALUE="0";
};
osx = default // {
INFINALITY_FT_FILTER_PARAMS="03 32 38 32 03";
INFINALITY_FT_GRAYSCALE_FILTER_STRENGTH="25";
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0";
INFINALITY_FT_STEM_FITTING_STRENGTH="0";
INFINALITY_FT_GAMMA_CORRECTION="1000 80";
INFINALITY_FT_BRIGHTNESS="10";
INFINALITY_FT_CONTRAST="20";
INFINALITY_FT_USE_VARIOUS_TWEAKS="false";
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false";
INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="0";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0";
INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false";
INFINALITY_FT_GLOBAL_EMBOLDEN_Y_VALUE="8";
INFINALITY_FT_BOLD_EMBOLDEN_X_VALUE="16";
};
ipad = default // {
INFINALITY_FT_FILTER_PARAMS="00 00 100 00 00";
INFINALITY_FT_GRAYSCALE_FILTER_STRENGTH="100";
INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH="0";
INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH="0";
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0";
INFINALITY_FT_STEM_FITTING_STRENGTH="0";
INFINALITY_FT_GAMMA_CORRECTION="1000 80";
INFINALITY_FT_USE_VARIOUS_TWEAKS="false";
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false";
INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="0";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0";
INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false";
};
ubuntu = default // {
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0";
INFINALITY_FT_STEM_FITTING_STRENGTH="0";
INFINALITY_FT_GAMMA_CORRECTION="1000 80";
INFINALITY_FT_BRIGHTNESS="-10";
INFINALITY_FT_CONTRAST="15";
INFINALITY_FT_USE_VARIOUS_TWEAKS="false";
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false";
INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="0";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0";
INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false";
};
linux = default // {
INFINALITY_FT_FILTER_PARAMS="06 25 44 25 06";
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0";
INFINALITY_FT_STEM_FITTING_STRENGTH="0";
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false";
INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="100";
INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false";
};
winxplight = default // {
INFINALITY_FT_FILTER_PARAMS="06 25 44 25 06";
INFINALITY_FT_FRINGE_FILTER_STRENGTH="100";
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="65";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="15";
INFINALITY_FT_STEM_FITTING_STRENGTH="15";
INFINALITY_FT_GAMMA_CORRECTION="1000 120";
INFINALITY_FT_BRIGHTNESS="20";
INFINALITY_FT_CONTRAST="30";
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="30";
};
win7light = default // {
INFINALITY_FT_FILTER_PARAMS="20 25 38 25 05";
INFINALITY_FT_FRINGE_FILTER_STRENGTH="100";
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="100";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0";
INFINALITY_FT_STEM_FITTING_STRENGTH="0";
INFINALITY_FT_GAMMA_CORRECTION="1000 160";
INFINALITY_FT_CONTRAST="20";
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="30";
};
winxp = default // {
INFINALITY_FT_FILTER_PARAMS="06 25 44 25 06";
INFINALITY_FT_FRINGE_FILTER_STRENGTH="100";
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="65";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="15";
INFINALITY_FT_STEM_FITTING_STRENGTH="15";
INFINALITY_FT_GAMMA_CORRECTION="1000 120";
INFINALITY_FT_BRIGHTNESS="10";
INFINALITY_FT_CONTRAST="20";
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="30";
};
win7 = default // {
INFINALITY_FT_FILTER_PARAMS="20 25 42 25 06";
INFINALITY_FT_FRINGE_FILTER_STRENGTH="100";
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="65";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0";
INFINALITY_FT_STEM_FITTING_STRENGTH="0";
INFINALITY_FT_GAMMA_CORRECTION="1000 120";
INFINALITY_FT_BRIGHTNESS="10";
INFINALITY_FT_CONTRAST="20";
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0";
};
vanilla = default // {
INFINALITY_FT_FILTER_PARAMS="06 25 38 25 06";
INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH="0";
INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH="0";
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0";
INFINALITY_FT_STEM_FITTING_STRENGTH="0";
INFINALITY_FT_USE_VARIOUS_TWEAKS="false";
INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="false";
INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="0";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0";
INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false";
};
classic = default // {
INFINALITY_FT_FILTER_PARAMS="06 25 38 25 06";
INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH="0";
INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH="0";
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="0";
INFINALITY_FT_STEM_FITTING_STRENGTH="0";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0";
INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false";
};
nudge = default // {
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="30";
INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="false";
};
push = default // {
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="75";
INFINALITY_FT_STEM_FITTING_STRENGTH="50";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="30";
};
infinality = default // {
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="5";
};
shove = default // {
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="0";
INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="100";
INFINALITY_FT_STEM_FITTING_STRENGTH="100";
INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="0";
};
sharpened = default // {
INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="65";
};
ultimate = {
INFINALITY_FT_FILTER_PARAMS="08 24 36 24 08";
INFINALITY_FT_FRINGE_FILTER_STRENGTH="50";
INFINALITY_FT_USE_VARIOUS_TWEAKS="true";
INFINALITY_FT_CHROMEOS_STYLE_SHARPENING_STRENGTH="20";
};
ultimate-lighter = ultimate // {
INFINALITY_FT_FILTER_PARAMS="06 22 36 22 06";
};
ultimate-lightest = ultimate // {
INFINALITY_FT_FILTER_PARAMS="04 22 38 22 04";
};
ultimate-darker = ultimate // {
INFINALITY_FT_FILTER_PARAMS="10 25 37 25 10";
};
ultimate-darkest = ultimate // {
INFINALITY_FT_FILTER_PARAMS="12 28 42 28 12";
};
}