This is just insane…
The number of blog articles, forum posts and standard proposals definitely proves it….
After struggling with it for a while I have finally managed to (at least I hope so) get an overview of the font rendering stack in Gnome… That’s how it looks at the moment (Ubuntu 10.04):

Gnome fonts settings are stored in gconf registry (~/.gconf). They are read by gnome-settings-daemon and automatically published in two places: xrdb – and XSETTINGS. In addition to the Gnome settings, there is the Fontconfig with the handful of configuration files (/etc/fonts/fonts.conf, /etc/fonts/conf.d/*, /etc/fonts/local.conf and ~/.fonts.conf). All settings are combined by Cairo lib (which behaves weirdly when dealing with Fontconfig data – there are a few bugs in there) and Xft is invoked to render the fonts.
xrdb registry can be listed by calling xrdb -query. Getting to see the published XSETTINGS properties is a bit more tricky – but possible with tools provided by xsettingsd project. Install it (there are binaries for Ubuntu) and execute dump_xsettings. It is even possible to get rid of gnome-settings-daemon – useful especially for the KDE guys running GTK apps.
Why the hell doesn’t it look like that? Fontconfig sole purpose is to store font configuration information, why are additional registries introduced?
Appearance panel would need just to create/remove symlinks in ~/.fonts.conf.d/ to files in /etc/fonts/conf.avail or create one own there. There would be 5 of those for default values of: one for hinting and hintstyle, autohint (now still not available through GUI), antialias and lcdfilter. gnome-settings-daemon wouldn’t need to publish fonts settings anywhere… If the gconf must stay, there might be a plugin for gnome-settings-daemon that would publish the gnome font settings in a Fontconfig file, instead of xrdb and XSETTINGS.
It doesn’t sound like rocket science and definitely would make the font settings more consistent. Life would be so much simpler…



This is really a great post…..