Topic: HOWTO: Font rendering like ubuntu
Hello.
If you don't like font rendering OTB in Statler (and Debian Squeeze) you could use this howto to make it's look like in ubuntu.
I've made archive with all needed packages compiled.
You can grab it here http://dl.dropbox.com/u/1815897/debian_squeeze/debs.tgz (548Kb)
If you need some additional packages(like *-dev, *-dbg, *-doc) here is all the packages
http://dl.dropbox.com/u/1815897/debian_
bs_all.tgz (2.8Mb)
Here is step by step instruction how to make this packages by yourself.
First of all, i get patches from this links
http://aur.archlinux.org/packages.php?ID=17327
http://aur.archlinux.org/packages.php?ID=17157
It is Arch Linux packages with similar purpose.
I put all needed patches in this atchive http://dl.dropbox.com/u/1815897/debian_
atches.tgz
Edit /etc/apt/sources.list, uncomment line
deb-src http://ftp.de.debian.org/debian/ squeeze main contrib non-freeInstall packages needed to compile
sudo aptitude install build-essential devscripts fakeroot
sudo aptitude build-dep cairo xftGo to folder, where you want to make all work. Call it "work"
Unpack patches.tgz. Folder should look like this:
./
../
./patches
Run this command
mkdir cairo xft debsPackage libcairo
Get source packages and patch it:
cd ./cairo
apt-get source cairo
cd ./cairo-*
cp ../../patches/cairo-patches/* ./debian/patches/
patch -p1 -i ./debian/patches/cairo-respect-fontconfig.patch
patch -p1 -i ./debian/patches/04_lcd_filter.patch
patch -p1 -i ./debian/patches/06_Xlib-Xcb-Hand-off-EXTEND_PAD-to-XRender.patch
dch -l kxLast line is adding suffix to packages. In this case i've choose kx (from my nickname). You could choose another suffix. Feel free to change this.
Compile packges and copy it to debs folder:
dpkg-buildpackage -rfakeroot -us -uc
cp ../*deb ../../debs/Package libxft
cd ./xft
apt-get source xft
cd ./xft-*
cp ../../patches/xft-patches/* ./debian/patches/
patch -p1 -i ./debian/patches/100-libXft-2.1.10-lcd-filter-3.patch
dch -l kxCompile packges and copy it to debs folder:
dpkg-buildpackage -rfakeroot -us -uc
cp ../*deb ../../debs/And final stage - remove unneeded and install packages:
cd ../../debs/
rm ./*.udeb ./*-dev*.deb ./*-dbg*.deb ./*-doc*.deb
dpkg -i ./*.debModify ~/.fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="antialias" mode="assign"><bool>true</bool></edit>
<edit name="autohint" mode="assign"><bool>false</bool></edit>
<edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
<edit name="hinting" mode="assign"><bool>true</bool></edit>
<edit name="rgba" mode="assign"><const>rgb</const></edit>
<!-- lcdnone, lcddefault, lcdlight, lcdlegacy -->
<edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
<edit name="dpi" mode="assign"><double>96</double></edit>
</match>
</fontconfig>Main line of this config is
<edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
it's set ubuntu-like font render
Here you can set preffered dpi:
<edit name="dpi" mode="assign"><double>96</double></edit>Feel free to change any option as you like.
Here is what we have before patches
And after.
Screens with my customized .fonts.conf (look for it at the end of article) and ttf-droid as default font.
And some more customization:
I've installed ttf-droid package from ubuntu
http://mirrors.kernel.org/ubuntu/pool/u
u1_all.deb
And set it to default font for my system
~/.fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="antialias" mode="assign"><bool>true</bool></edit>
<edit name="autohint" mode="assign"><bool>false</bool></edit>
<edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
<edit name="hinting" mode="assign"><bool>true</bool></edit>
<edit name="rgba" mode="assign"><const>rgb</const></edit>
<!-- lcdnone, lcddefault, lcdlight, lcdlegacy -->
<edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
<edit name="dpi" mode="assign">
<double>96</double>
</edit>
</match>
<!-- Replace Clean font with sans-serif -->
<match target="pattern" name="family" >
<test name="family" qual="any" >
<string>Clean</string>
</test>
<edit mode="assign" name="family" >
<string>sans-serif</string>
</edit>
</match>
<!-- Replace Fixed font with monospace -->
<match target="pattern" name="family" >
<test name="family" qual="any" >
<string>Fixed</string>
</test>
<edit mode="assign" name="family" >
<string>monospace</string>
</edit>
</match>
<!-- Replace Nimbus family font with default --
<match target="pattern" name="family" >
<test name="family" qual="any" >
<string>Nimbus Sans L</string>
</test>
<edit mode="assign" name="family" >
<string>sans-serif</string>
</edit>
</match>
<match target="pattern" name="family" >
<test name="family" qual="any" >
<string>Nimbus Roman No9 L</string>
</test>
<edit mode="assign" name="family" >
<string>serif</string>
</edit>
</match>
<match target="pattern" name="family" >
<test name="family" qual="any" >
<string>Nimbus Mono L</string>
</test>
<edit mode="assign" name="family" >
<string>monospace</string>
</edit>
</match>
<!-- No embedded bitmaps -->
<match target="font">
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
<alias binding="same">
<family>sans-serif</family>
<prefer>
<family>Droid Sans</family>
</prefer>
</alias>
<alias binding="same">
<family>serif</family>
<prefer>
<family>Droid Serif</family>
</prefer>
</alias>
<alias binding="same">
<family>monospace</family>
<prefer>
<family>Droid Sans Mono</family>
</prefer>
</alias>
<alias binding="same">
<family>Helvetica</family>
<prefer>
<family>Droid Sans</family>
<family>Liberation Sans</family>
</prefer>
</alias>
<alias binding="same">
<family>Times</family>
<prefer>
<family>Droid Serif</family>
<family>Liberation Serif</family>
</prefer>
</alias>
<alias binding="same">
<family>Courier</family>
<prefer>
<family>Droid Sans Mono</family>
<family>Liberation Mono</family>
</prefer>
</alias>
<!-- Set default font -->
<alias>
<family>Droid Serif</family>
<family>Liberation Serif</family>
<default><family>serif</family></default>
</alias>
<alias>
<family>Droid Sans</family>
<family>Liberation Sans</family>
<default><family>sans-serif</family></default>
</alias>
<alias>
<family>Droid Sans Mono</family>
<family>Liberation Mono</family>
<default><family>monospace</family></default>
</alias>
<alias>
<family>serif</family>
<prefer><family>Droid Serif</family></prefer>
<prefer><family>Liberation Serif</family></prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer><family>Droid Sans</family></prefer>
<prefer><family>Liberation Sans</family></prefer>
</alias>
<alias>
<family>monospace</family>
<prefer><family>Droid Sans Mono</family></prefer>
<prefer><family>Liberation Mono</family></prefer>
</alias>
</fontconfig>I hope this howto will be usefull.
Feel free to correct my mistakes.
UPD: updated libcairo package with current squeeze version.
User chillicampari made some experiments and result is here
And his ~/.fonts.conf with comments
http://crunchbanglinux.org/pastebin/607
Last edited by kodx (2010-05-01 17:01:38)




