Gentoo Archives: gentoo-user

From: Ian Zimmerman <itz@××××××××××××.org>
To: Gentoo-User Mailinglist <gentoo-user@l.g.o>
Subject: [gentoo-user] Gtk font madness
Date: Tue, 18 Jun 2019 15:25:24
Message-Id: 20190618152510.xkxmh7qrn4sbkoad@matica.foolinux.mooo.com
1 Hi fellow gentoo users, long time no see.
2
3 I run a desktop system with a largish screen (24 in, 96 dpi). No
4 "integrated environment", just xdm and my choice of window manager. I
5 have been annoyed by the "subpixel rendering" of TrueType fonts - the
6 color fringes are 100% intolerable to me, no matter how minor or how
7 well filtered. So I thought I would turn that off. The natural and
8 proper place seemed to be fontconfig, and here's my current "eselect
9 fontconfig list" output:
10
11 Available fontconfig .conf files (* is enabled):
12 [1] 10-autohint.conf
13 [2] 10-hinting-full.conf *
14 [3] 10-hinting-medium.conf
15 [4] 10-hinting-none.conf
16 [5] 10-hinting-slight.conf
17 [6] 10-no-sub-pixel.conf *
18 [7] 10-scale-bitmap-fonts.conf
19 [8] 10-sub-pixel-bgr.conf
20 [9] 10-sub-pixel-rgb.conf
21 [10] 10-sub-pixel-vbgr.conf
22 [11] 10-sub-pixel-vrgb.conf
23 [12] 10-unhinted.conf
24 [13] 11-lcdfilter-default.conf
25 [14] 11-lcdfilter-legacy.conf
26 [15] 11-lcdfilter-light.conf
27 [16] 20-unhint-small-vera.conf
28 [17] 25-unhint-nonlatin.conf *
29 [18] 30-metric-aliases.conf *
30 [19] 40-nonlatin.conf *
31 [20] 45-generic.conf *
32 [21] 45-latin.conf *
33 [22] 49-sansserif.conf *
34 [23] 50-user.conf *
35 [24] 51-local.conf *
36 [25] 60-generic.conf *
37 [26] 60-latin.conf *
38 [27] 61-stix.conf
39 [28] 62-croscore-arimo.conf *
40 [29] 62-croscore-cousine.conf *
41 [30] 62-croscore-symbolneu.conf *
42 [31] 62-croscore-tinos.conf *
43 [32] 62-crosextra-caladea.conf *
44 [33] 62-crosextra-carlito.conf *
45 [34] 65-fonts-persian.conf
46 [35] 65-khmer.conf
47 [36] 65-nonlatin.conf *
48 [37] 69-unifont.conf
49 [38] 70-no-bitmaps.conf
50 [39] 70-yes-bitmaps.conf *
51 [40] 75-yes-terminus.conf *
52 [41] 80-delicious.conf
53 [42] 90-synthetic.conf *
54
55 The first shock was that this had absolutely no effect on Gtk{2,3} apps
56 - which are the majority among what I use. After playing around for a
57 while I concluded that Gtk has its own configuration for these things,
58 including its own defaults, which it will use without looking at
59 fontconfig. So I added these files:
60
61 -*- ~/.config/gtk-3.0/settings.ini -*-
62
63 [Settings]
64 gtk-xft-antialias=1
65 gtk-xft-hinting=1
66 gtk-xft-hintstyle=hintfull
67 gtk-xft-rgba=none
68
69 -*- ~/.gtkrc-2.0 -*-
70
71 gtk-xft-antialias=1
72 gtk-xft-hinting=1
73 gtk-xft-hintstyle="hintfull"
74 gtk-xft-rgba="none"
75
76 The spelling (also quotes) here is from
77
78 https://wiki.archlinux.org/index.php/GTK%2B#Examples
79
80 And this had the desired effect on Gtk3 apps, including Firefox.
81 Excellent! But Gtk2 apps continue to show the hated fringes :-( Am I
82 right to conclude Gtk2 keeps doing subpixel rendering, and why should
83 that be?
84
85 I seem to have the latest stable versions of all relevant packages, with
86 no USE changes:
87
88 * Found these USE flags for media-libs/fontconfig-2.13.0-r4:
89 U I
90 - - abi_x86_32 : 32-bit (x86) libraries
91 + + doc : Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead
92 of globally
93 - - static-libs : Build static versions of dynamic libraries as well
94
95 * Found these USE flags for media-libs/freetype-2.9.1-r3:
96 U I
97 + + X : Add support for X11
98 - - abi_x86_32 : 32-bit (x86) libraries
99 + + adobe-cff : Use Adobe CFF as default font-renderer
100 - - bindist : Disable ClearType support (see http://freetype.org/patents.html)
101 + + bzip2 : Support bzip2 compressed PCF fonts.
102 + + cleartype_hinting : New bytecode hinting mode for TrueType fonts that activates subpixel hinting (a.k.a.
103 ClearType hinting) by default
104 - - debug : Enable extra debug codepaths, like asserts and extra output. If you want to get
105 meaningful backtraces see
106 https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
107 - - doc : Add extra documentation (API, Javadoc, etc). It is recommended to enable per package
108 instead of globally
109 - - fontforge : Install internal headers required for TrueType debugger in media-gfx/fontforge (built
110 with USE=truetype-debugger)
111 - - harfbuzz : Use media-libs/harfbuzz for auto-hinting OpenType fonts. WARNING: may trigger circular
112 dependencies!
113 - - infinality : Enable infinality options for improved LCD filtering
114 + + png : Add support for libpng (PNG images)
115 - - static-libs : Build static versions of dynamic libraries as well
116 - - utils : Install utilities and examples from ft2demos
117
118 * Found these USE flags for x11-libs/gtk+-2.24.32-r1:
119 U I
120 - - abi_x86_32 : 32-bit (x86) libraries
121 - - cups : Add support for CUPS (Common Unix Printing System)
122 - - examples : Install examples, usually source code
123 - - introspection : Add support for GObject based introspection
124 - - test : Enable dependencies and/or preparations necessary to run tests (usually controlled by
125 FEATURES=test but can be toggled independently)
126 - - vim-syntax : Pulls in related vim syntax scripts
127 - - xinerama : Add support for querying multi-monitor screen geometry through the Xinerama API
128
129 I did try to disable the cleartype_hinting USE for freetype, but no luck.
130
131 --
132 Please don't Cc: me privately on mailing lists and Usenet,
133 if you also post the followup to the list or newsgroup.
134 To reply privately _only_ on Usenet and on broken lists
135 which rewrite From, fetch the TXT record for no-use.mooo.com.