Subpixel Font Rendering in Linux

Due to some patent issues, most of the distributions ship their freetype packages with subpixel rendering option disabled. In fact, as far as I know Ubuntu is the only one that enabled this option. If you want cleartype-like font rendering in your distro, you have to uncomment a macro in the code and  build the package yourself. But this is not enough since the newest LCD-specific FreeType APIs have not been implemented in Xft and Cairo. So you have to patch and build these packages too. I have downloaded the sources of these packages from Ubuntu  and applied the patches to Debian code. Cairo and Freetype compiled fine but Xft wouldn’t. So I used David Turner’s patch for that one. Though font rendering issues are a matter of taste, the results are miraculous in LCD displays. Here are some screenshots with and without patches, see how fonts differ in webpages.

Unpatched freetype, cairo and xft:



patched builds:



Sources and patches of freetype 2.3.7, xft 2.1.12, cairo 1.6.4 can be found here. The tar archive also includes patched versions of the packages that I have built for Debian (deb archives for i386).

To enable subpixel rendering, you have to choose subpixel smoothing from appearance preferences menu in gnome. If you are using Debian or a Debian-based distro, you can configure system-wide settings through dpkg with the following options:

sudo dpkg-reconfigure fontconfig-config




More information about patches and patents can be found in:


Debian GNU/Linux 5.0 codename Lenny

Long-awaited “Lenny” has finally been out! After 22 months of development, Debian development team announced the official release of Debian GNU/Linux 5.0 on 14th of February as planned (well, at least in American Samoa, which happens to be located in UTC-11.) and the very same day I installed and tested it on my laptop.



This is the first time that a Debian release comes with a graphical installer, though the text-based installation is still the default option. The Debian installer in the DVD that I have used offered different options like expert mode, default desktop selection, etc. The overall installation process was easy and smooth. One of the good things was having the chance to load non-free firmwares from a USB flash drive during the installation because my laptop has Intel 4965 AGN wifi, which needs some binary firmware to work.


You can also choose the mount options of the partitions while you are installing the system, no need to edit fstab. I always use relatime.


One thing to mention is that if you have an ntfs partition, you need to install ntfs-3g yourself because it is not installed automatically. So you may need to edit your fstab in that case, no big deal anyway.

What’s New

Even if Distrowatch says Lenny uses Gnome, it ships with Gnome 2.22.3.  However, some packages are still in their 2.20 version. One of those kept back packages is gnome-panel. It is a very good decision to keep gnome-panel in version 2.20 because even in Ubuntu Hardy, which ships 2.22, the panel and applets crash too often. The other important package in version 2.20 is nautilus. Gvfs is not implemented in Lenny since it is thought to be “not stable and featured enough for a stable Debian release.” So Lenny uses “patched, rock-solid version of gnome-vfs instead”.


Lenny comes with native Flash support both in desktop and in the browser. It uses swfdec to view flash files and objects but I can’t say it’s an effective decoder. The quality of flash videos with swfdec-mozilla were so low that I immediately had to switch to non-free flash plug-in.

X.Org version in Lenny  is 7.3, which brings support for input/output hotplug. Some other important novelties in base system is mlocate replacing locate, and  rsyslog replacing sysklogd/klogd.

Installation guides can be found here and release notes are here. Here is what the default desktop looks like:


Firefox Search Bar Plugins

Mozilla Firefox comes with some pre-installed search plugins and some websites provide their users with a plugin for firefox search bar. However, there are also lots of websites on the net that don’t give you any plugin to make your search easier. Sometimes I have to use Cambridge Advanced Learner’s Dictionary to look up a word that I don’t know but copying the unknown word and putting it into the search box of Cambridge Dictionary seems too painful to me, especially if I am reading a long sophisticated text. So I created some search plugins for different websites using a perl script. (See Screenshots below) Below you can find some of them. In order to use them in your firefox browser, you need to right-click and save them to your computer. Then, Windows user should put them in:

C:\Program Files\Mozilla Firefox\searchplugins\

And, Linux users should put them in:


Then, you need to restart your browser.

Cambridge Advanced Learner’s Dictionary

Tureng v2








Eksi Sozluk




Other Additional Plugins

If there are any other plugins that you need to use with your firefox browser, ask for them in comments section below.

By the way, all the credit goes to ccn. Without his script, these plugins would not exist.

Intel High Definition Audio in Linux

A great number of laptops produced after 2004, including my vaio fz 190, come with an Intel® High Definition Audio chipset. Interestingly, these chipsets have problems in both Linux and Windows. If you are using an old version of alsa, I would recommend you to upgrade it because newer alsa drivers are almost problem-free. However, sometimes even if you upgrade your alsa driver, the default setup is not enough, for example, your headphones may not be working. In that case you need to pass some extra options to make alsa driver recognize your card. I guess “model” option is the most important one here, setting it according to my sound card was enough for me. In order to pass “model” option to snd-hda-intel module, first you need to know the model of your card. You can find it out by running this command:

cat /proc/asound/card0/codec#* | grep Codec

After that, you can find the appropriate parameter for your model in alsa documentation:


If your driver is already a new one or you want to use the one shipped with your distro, you can find these configurations in:


If you don’t have any of these files, you can find the one for alsa-driver-1.0.18 here.
After finding the appropriate options for your card, you need to pass them to your alsa-base file. You can do that by typing

sudo nano /etc/modprobe.d/alsa-base

or choose your favourite text editor. Add the following line to the end of that file:

options snd-hda-intel model=MODEL

For instance mine was:

options snd-hda-intel model=vaio

Then find the applications that are using alsa by typing:

lsof /dev/snd/*

and kill them with


(you may need root priviliges for that) Unload and reload the module again by:

sudo rmmod snd_hda_intel
sudo modprobe snd-hda-intel

or if these do not work reboot your computer. Your sound should be working with no problems.

If you still have problems, please run this script and report it to the alsa-developer mailing list to get more help.

vfat mount problem in lenny gnome

I have a sony walkman that uses fat file system. I have been using Jsymphonic (0.2.1alpha) for a long time with no problems. However, when I switched to lenny, it stopped working. I have realized that my foldernames and filenames in the walkman were all in lowercase , even if I renamed them with mixed cases. So I checked hal-mtab and found the problem. Lenny gnome uses “shortname=lower” mount option with fat file system. I think this is a bug  because people would not want to see their filenames/foldernames in all lowercase letters. Mixed case would probably be the best choice.


First, go to “/usr/share/gconf/schemas/gnome-mount.schemas” and find “[shortname=lower,uid=]” and change it to “[shortname=mixed,uid=]”.

Then, open gnome configuration editor (gconf) and go to “/system/storage/default_options/vfat”. You will see that it also uses “[shortname=lower,uid=]” as mount option. So edit that key so that it looks like “[shortname=mixed,uid=]”.

And that’s all. Your fat file systems will be mounted using mixed case letters and Jsymphonic will be working perfectly again.

There is already a bug report about it.