Better to show: http://imgur.com/a/a5XpN
The first image (http://imgur.com/zOyxMh7) is with the default NixOS-17.09 (freetype-2.7.1) settings. Approximately the same is on 17.03 with its defaults. Fonts are blurry, width of cells is wrongly calculated. This could be fixed with fonconfig, and I did fix it with fontconfig on 17.03: ------- <match target="font"> <test name="family"> <string>PragmataPro</string> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> <edit name="hintstyle" mode="assign"> <const>hintfull</const> </edit> <edit name="autohint" mode="assign"> <bool>false</bool> </edit> </match> ------- The same fontconfig settings applied to: PragmataPro PragmataPro Mono <- that font family Liberation Sans Liberation Serif Liberation Mono <- version 1.07, not NixOS's default 2.0x Liberastika <- fork of liberation-1.07 with some fixes Ubuntu Ubuntu Condensed Ubuntu Mono <- these are not so bad with the defaults, it is just a matter of taste to have them antialiased, especially "Ubuntu Condensed" Arial Times New Roman Gulim Meiryo Microsoft YaHei <- microsoft fonts, copied from windows machine, antialiasing can make a blotch out of a Chinese hieroglyph. (As you see, almost all these fonts are either commercial or license violation, so no wonder gnu's freetype does not support them well) The second (http://imgur.com/MDiydzS) is what we get with these fontconfig rules on NixOS-17.09 (freetype-2.7.1) with default v40. Antialias is off, but hinting is not in action. The third (http://imgur.com/sKs8ZrB) is v35, explicitly set on NixOS-17.09 (freetype-2.7.1) or default on NixOS-17.03 (freetype-2.6.5). Perfect. PS. v38 works similar to v40. It easy to turn in off by "config.fonts.fontconfig.ultimate.enable = false;". What I was looking for is a similar easy way to turn off v40 appeared in NixOS-unstable. So I ended up creating a module: ``` { config, pkgs, lib, ... }: let my-freetype = pkgs.callPackage ./my-freetype { }; my-freetype-32 = pkgs.pkgsi686Linux.callPackage ./my-freetype { }; my-pragmatapro = pkgs.callPackage ./pragmatapro { }; my-win2008fonts = pkgs.callPackage ./win2008fonts { }; my-win2008fonts-cjk = pkgs.callPackage ./win2008fonts-cjk { }; in { config = { fonts = { enableDefaultFonts = false; fonts = [ pkgs.xorg.fontbh100dpi pkgs.xorg.fontmiscmisc pkgs.xorg.fontcursormisc pkgs.ubuntu_font_family pkgs.liberation_ttf pkgs.liberastika my-pragmatapro my-win2008fonts my-win2008fonts-cjk ]; fontconfig = { hinting.autohint = false; defaultFonts.serif = [ "Liberation Serif" "Times New Roman" ]; defaultFonts.sansSerif = [ "Liberastika" "Liberation Sans" "Arial" "Ubuntu" ]; defaultFonts.monospace = [ "PragmataPro Mono" ]; confPackages = [ (import ./font-conf { inherit (pkgs) runCommand fontconfig; }) ]; # it adds fontconfig xml useEmbeddedBitmaps = true; # 17.09+ penultimate.enable = false; # 17.09+ ultimate.enable = false; }; }; environment.sessionVariables.LD_LIBRARY_PATH = [ "${my-freetype}/lib" "${my-freetype-32}/lib" ]; nixpkgs.overlays = [ (self: super: { # google-chrome, torbrowser (..., gorilla, dropbox, cytrix-receiver, spideroak, ...) add freetype to LD_LIBRARY_PATH in makeWrapper torbrowser = super.torbrowser.override { freetype = my-freetype; }; google-chrome = super.google-chrome.override { freetype = my-freetype; }; liberation_ttf = self.liberation_ttf_v1_binary; }) ]; }; } ``` On 4/19/17, Thomas Tuegel <ttue...@mailbox.org> wrote: > Volth <vo...@volth.com> writes: > >> Fontconfig does not help here. The problem is with all fonts with >> manual hinting, also with all old windows fonts. Those fonts are from >> pre-anti-aliasing ages. >> Full hinting enabled + anti-aliasing disabled is the only suitable >> mode for them. > > We can use Fontconfig to set per-font hinting and anti-aliasing > settings! :-) > > We can't toggle the interpreter version directly through Fontconfig, but > at `full' hinting, the v40 interpreter should give the same results as > v38, especially with anti-aliasing disabled. I can't speak reliably > about the v35 interpreter because NixOS has always used v38 in the past. > > I assume that "old windows fonts" means corefonts? Are you having > trouble with any other fonts besides PragmataPro? If you give me a list, > I can put together some samples to see if we can't find something better > for everyone. > > Regards, > Tom > _______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl https://mailman.science.uu.nl/mailman/listinfo/nix-dev