This is just insane…
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 (
~/.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…