OK I was able to resolve the issues I was having, but I'm not still not quite sure why. What I mean is that the method I have used for years no longer works, and the method that previously gave undesired results is now the only way to achieve the desired results.
Traditionally, disabling hinting, autohinting and antialiasing resulted in Windows 98/XP-style font rendering as long as the BCI was enabled in Freetype2. This continues to work for GTK applications, but fails in QT apps, Firefox 3.5 and Opera. The latter applications display horrible font hinting (broken letters, etc.) when these settings are in place.
To generate the Windows 98/XP font rendering now, I have to enable hinting, set the hintstyle to hintfull, and then disable autohinting and antialiasing. With these settings all applications appear to render properly. Previously this resulted in poorly hinted characters, even when the Bytecode Interpreter was compiled into Freetype2.
So...I don't what has changed, but I'm just glad it's working.
Could you please post your .fonts.conf ? I have this issue yet, and it is very unpleaseful.
Thanks
Traditionally, disabling hinting, autohinting and antialiasing resulted in Windows 98/XP-style font rendering as long as the BCI was enabled in Freetype2. This continues to work for GTK applications, but fails in QT apps, Firefox 3.5 and Opera. The latter applications display horrible font hinting (broken letters, etc.) when these settings are in place.
To generate the Windows 98/XP font rendering now, I have to enable hinting, set the hintstyle to hintfull, and then disable autohinting and antialiasing. With these settings all applications appear to render properly. Previously this resulted in poorly hinted characters, even when the Bytecode Interpreter was compiled into Freetype2.
So...I don't what has changed, but I'm just glad it's working.
]]><?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="antialias" mode="assign"><bool>false</bool></edit>
<edit name="autohint" mode="assign"><bool>false</bool></edit>
<edit name="hinting" mode="assign"><bool>true</bool></edit>
<edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
<edit name="rgba" mode="assign"><const>rgb</const></edit>
</match>
</fontconfig>
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="antialias" mode="assign"><bool>false</bool></edit>
<edit name="autohint" mode="assign"><bool>false</bool></edit>
<edit name="hinting" mode="assign"><bool>false</bool></edit>
<edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
<edit name="rgba" mode="assign"><const>none</const></edit>
</match>
</fontconfig>
Note that hinting is still being applied to the fonts even though it has been disabled in fontconfig.
Applying the above rules to the system-wide /etc/fonts/conf.d location produces the exact same result. Here's what is linked there now (and I've moved everything out of here too and it made no difference):
$ ls -l /etc/fonts/conf.d/
total 4
lrwxrwxrwx 1 root root 39 2009-06-13 11:08 20-fix-globaladvance.conf -> ../conf.avail/20-fix-globaladvance.conf
lrwxrwxrwx 1 root root 39 2009-06-13 11:08 20-unhint-small-vera.conf -> ../conf.avail/20-unhint-small-vera.conf
lrwxrwxrwx 1 root root 42 2009-06-13 11:08 29-replace-bitmap-fonts.conf -> ../conf.avail/29-replace-bitmap-fonts.conf
lrwxrwxrwx 1 root root 36 2009-06-13 11:08 30-metric-aliases.conf -> ../conf.avail/30-metric-aliases.conf
lrwxrwxrwx 1 root root 33 2009-06-13 11:08 30-urw-aliases.conf -> ../conf.avail/30-urw-aliases.conf
lrwxrwxrwx 1 root root 30 2009-06-13 11:08 40-nonlatin.conf -> ../conf.avail/40-nonlatin.conf
lrwxrwxrwx 1 root root 27 2009-06-13 11:08 45-latin.conf -> ../conf.avail/45-latin.conf
lrwxrwxrwx 1 root root 31 2009-06-13 11:08 49-sansserif.conf -> ../conf.avail/49-sansserif.conf
lrwxrwxrwx 1 root root 26 2009-06-13 11:08 50-user.conf -> ../conf.avail/50-user.conf
lrwxrwxrwx 1 root root 27 2009-06-13 11:08 51-local.conf -> ../conf.avail/51-local.conf
lrwxrwxrwx 1 root root 27 2009-06-13 11:08 60-latin.conf -> ../conf.avail/60-latin.conf
lrwxrwxrwx 1 root root 35 2009-06-13 11:08 65-fonts-persian.conf -> ../conf.avail/65-fonts-persian.conf
lrwxrwxrwx 1 root root 30 2009-06-13 11:08 65-nonlatin.conf -> ../conf.avail/65-nonlatin.conf
lrwxrwxrwx 1 root root 29 2009-06-13 11:08 69-unifont.conf -> ../conf.avail/69-unifont.conf
lrwxrwxrwx 1 root root 31 2009-06-13 11:08 80-delicious.conf -> ../conf.avail/80-delicious.conf
lrwxrwxrwx 1 root root 31 2009-06-13 11:08 90-synthetic.conf -> ../conf.avail/90-synthetic.conf
-rw-r--r-- 1 root root 959 2008-07-06 15:08 README
I run a minimal X desktop (dwm). No gnome-settings-daemon. No font settings declared in .Xdefaults either. I manage everything via ~/.fonts.conf and every other application looks great.
]]>I can't reproduce your problem. ~/.fonts.conf works correctly for me (with all the flexibility it allows), in firefox 3, 3.5 and other apps.
Yeah that's frustrating for sure. For peace of mind (so that I know it's at least possible), can you post a screenshot of your own FF 3.5 displaying aliased/non-hinted fonts. It should appear very near to what I have posted above in my FF 3.0 example (ala classic Windows 98 font appearance).
There's some firefox-specific options for you to play with:
gfx.use_text_smoothing_setting
browser.display.auto_quality_min_font_size
gfx.use_text_smoothing_setting: false
browser.display.auto_quality_min_font_size: 20
Both were the same as they were in FF 3.0. Toggling the former made no difference and neither did increasing the min_font_size to 40.
]]>There's some firefox-specific options for you to play with:
gfx.use_text_smoothing_setting
browser.display.auto_quality_min_font_size
In the meantime I'm back with FF 3.0.
]]>thayer
seems that in /etc/fonts/conf.d no 10-hinting-full.conf, or there are any other hinting-conf files.
That's true, I don't want hinting period, nor antialiasing. I tried dropping 10-unhinting.conf into conf.d but that didn't work either. Then I tried creating my own rule in conf.d containing the following (it also failed to make a difference):
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Disable hinting -->
<match target="font">
<edit name="hinting" mode="assign"><bool>false</bool></edit>
<edit name="autohint" mode="assign"><bool>false</bool></edit>
<edit name="antialias" mode="assign"><bool>false</bool></edit>
</match>
</fontconfig>
Removing ~/.fonts.conf does make the fonts legible, albeit with antialiasing and hinting enabled (which I do not want). It looks like Firefox is forcing hinting regardless of how Fontconfig is configured. As you can see from my screenshot above, bold fonts appear normal. That's because I specifically antialias and hint bold fonts and fonts exceeding a certain size via ~/.fonts.conf . All other fonts should appear aliased and unhinted.
]]>