As part of my quest for "perfect" fonts in Linux on my LCD monitor, I stumbled across some patches that David Turner of freetype.org put out in 2006. They modify cairo and libXft to use significantly better subpixel rendering techniques. The patches I found to work were from Jaganath's page. I started getting annoyed when I would update Fedora and these libraries would be overwritten, requiring me to download, patch and recompile updated source code. So, I figured out how to make RPM packages instead, which suprisingly took very little time to figure out and are much more portable and generally easy to deal with. In many cases, the rendering now looks superior to any other OS I've seen. Jim Bevenhall's page provides similar packages.
For Fedora 11, I have redesigned how the packages work. They used to replace the original packages. Now, they use ldconfig to override the existing packages. This makes installation and uninstallation a breeze, and Fedora updates to the original packages shouldn't stop the modified packages from working. I chose the suffix "freeworld" because it seemed like that is the agreed upon suffix in the FOSS world for stuff like this. I am no longer providing the freetype packages, as those are already available at rpmfusion.org. Once you install rpmfusion, you would do this:
yum install freetype-freeworld.i586yum install freetype-freeworld.x86_64 (if you are running x64, I recommend installing both)Then, download these packages and in the download directory do:
yum install *.rpm
Keep in mind that the cairo packages also have an additional tweak to make them respect fontconfig settings (~/.fonts.conf and/or /etc/fonts/local.conf). This means that hinting type, antialiasing, etc. must be configured through those files, not through gnome-appearance-properties.
Sample Image:

« Fedora 12 – KDE4 Smooth Tasks Packages Available Font Testing Page »

Thanks Moony.
Now to apply them.
After looking @ Ubuntu Fonts, Thats the sole reason I want to move there.
But this may help. I prefer the technical innovation the Fedora has
Fedora 13 packages are available now!!!
Hi, thanks for the packages, maybe you should consider using this expr
"${A1%${1#?}}" = "${A2%${A2#?}}"
instead of
"${A1:0:1}" = "${A2:0:1}"
for the sake of compatibility, I had problem with the latter way of getting sub string.
Cheers.
The patched packages do work well, but the real benefit for me was using your great local.conf. I never even knew it was possible to disable embedded bitmaps, for instance. Thanks for sharing all this!
Thanks a lot!!!
Hey your SRPMs are out of date, you also don't enable xcb support unfortunately for cairo
.
Yes, they may be out of date, sorry. The only thing I did to the cairo RPM was to make it respect fontconfig settings. So, maybe I need to just redownload the Fedora src.rpm and build with that. Does the default Fedora cairo enable xcb? What the heck is xcb anyways?
I (think) I found a small bug in your F13 packages. Banshee was not respecting my font settings and looking in your older posts and comments about LD_PRELOAD, I realized that the LD_PRELOAD variable gets the following:
$ echo $LD_PRELOAD
/usr/lib/libXft-freeworld/libXft.so.2:/usr/lib/libXft-freeworld/libXft.so.2:/usr/lib/cairo-freeworld/libcairo.so.2:
but it should be (as libXft-freeworld appears twice, but freetype-freeworld is not there):
$ echo $LD_PRELOAD
/usr/lib/freetype-freeworld/libfreetype.so.6:/usr/lib/libXft-freeworld/libXft.so.2:/usr/lib/cairo-freeworld/libcairo.so.2
I am not really sure of how this works but it works for me. Maybe my solution is not 100% correct, tweak it as needed.
And, THANKS for your packages, you are the reason I am using Fedora
Hmmm…. not sure why it does that. LD_PRELOAD can be goofy in my experience. Do you have the rpmfusion freetype-freeworld packages installed? I believe they are supposed to implement the LD_PRELOAD functionality.
Yes, I have them installed, and installed them all at the same time. Everything works perfectly but this LD_PRELOAD repetition problem.
Completely ignoring how and when the LD_PRELOAD is modified with your packages, could that be that LD_PRELOAD is ignoring the current path and replacing it for the new with repetition? If you say that freetype-freeworld does that, it is being overwritten somewhere… It is also fishy that libXft-freeworld appears twice.
OK, after doing some tests to better report the problem, I realized the following:
.
freetype-freeworld does NOT modify my LD_PRELOAD, so the part where I was assuming LD_PRELOAD was being overwritten is wrong.
libXft-freeworld includes "/usr/lib/libXft-freeworld/libXft.so.2" twice. This should be a bug, although a very very minor one, as I don't see it makes anything work wrong.
My question is now, is freetype-freeworld really supposed to include "/usr/lib/freetype-freeworld/libfreetype.so.6" in LD_PRELOAD? If it is not, could that be included via either [libXft/cairo]-freeworld? IIRC, it was in older releases of your packages (or, at least, Banshee fonts looked normal before installing F13), and your June 13, 2009 update states that:
"Also, the cairo packages include LD_PRELOAD functionality for the freetype from rpmfusion.org, as I assume anyone installing these packages also will be installing the modified freetype (otherwise it's pretty pointless )"
Again, thanks for your efforts. It is not that difficult to change the variable by myself, but I really wanted to give a little back to you and make this an even more perfect for everyone
After moving local.conf to the directory /etc/fonts, I have not found Terminus font in Terminal and other applications..He's gone..I've tried to reinstall packages, but nothing..when I deleted local.conf, font was avaliable..What should I do, to use Terminus with local.conf correct? Thank you
Ahhh…. I think I know what this is. There is a part near the top that disables bitmap fonts. You should be able to find and remove it. The version of Terminus I use is TTF based, not bitmap based, so it still worked for me. Pretty sure that is the problem though, and let me know if that doesn’t work.
Yeah, thanks ! I've removed some 'Directives' in local.conf, and Terminus now avaliable!
Another one qustion, that I wanted to ask, is how can I remove some 'rainbow' around liberation fonts? I use .Xresources and local.conf, but small text has much 'rainbow'.