diff --git a/pkgs/development/libraries/fontconfig-ultimate/confd.nix b/pkgs/development/libraries/fontconfig-ultimate/confd.nix new file mode 100644 index 00000000000..ce734527162 --- /dev/null +++ b/pkgs/development/libraries/fontconfig-ultimate/confd.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "fontconfig-ultimate-20141123"; + src = fetchurl { + url = "https://github.com/bohoomil/fontconfig-ultimate/archive/2014-11-23.tar.gz"; + sha256 = "0czfm3hxc41x5mscwrba7p1vhm2w62j1qg7z8kfdrf21z8fvgznw"; + }; + + 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/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/97-local.conf + rm $out/etc/fonts/conf.d/98-user.conf + + cp fontconfig_patches/fonts-settings/*.conf $out/etc/fonts/conf.d + + 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 + ''; +} diff --git a/pkgs/development/libraries/fontconfig-ultimate/default.nix b/pkgs/development/libraries/fontconfig-ultimate/default.nix new file mode 100644 index 00000000000..aa799d850d7 --- /dev/null +++ b/pkgs/development/libraries/fontconfig-ultimate/default.nix @@ -0,0 +1,6 @@ +{ callPackage }: + +{ + confd = callPackage ./confd.nix {}; + rendering = callPackage ./rendering.nix {}; +} diff --git a/pkgs/development/libraries/fontconfig-ultimate/rendering.nix b/pkgs/development/libraries/fontconfig-ultimate/rendering.nix new file mode 100644 index 00000000000..435716b8c8d --- /dev/null +++ b/pkgs/development/libraries/fontconfig-ultimate/rendering.nix @@ -0,0 +1,212 @@ +{}: + +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="06 22 36 22 06"; + }; + + ultimate-darker = ultimate // { + INFINALITY_FT_FILTER_PARAMS="10 25 37 25 10"; + }; + + ultimate-darkest = ultimate // { + INFINALITY_FT_FILTER_PARAMS="12 28 42 28 12"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 15a3e9fcd2c..4fd5b9dc3e0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5168,6 +5168,8 @@ let fontconfig = callPackage ../development/libraries/fontconfig { }; + fontconfig-ultimate = callPackage ../development/libraries/fontconfig-ultimate {}; + folly = callPackage ../development/libraries/folly { }; makeFontsConf = let fontconfig_ = fontconfig; in {fontconfig ? fontconfig_, fontDirectories}: