Ovo je pomalo nesrećan problem koji sam imao sa FreeBSD-om 4.6-RELEASE i njegovim XFree-jem 4.2. Naime, XFree odskora podržava antialiasing fontova (umekšavanje ivica slova korišćenjem nijansi sive boje radi bolje čitljivosti na uređajima niske rezolucije, tj. monitorima) preko Xft ekstenzije i FreeType2 biblioteke. Novi XFree takođe podržava renderovanje TrueType fontova bez potrebe za dodatnim softverom.
Kada sam konačno kupio novu grafičku karticu (ATI Radeon 7000) koja mi je omogućila da se igram sa novim X-om, naravno, prvo što sam želeo da uradim je bilo da podesim lepe umekšane fontove u X-u, što sa XFree-jem 3.3.6 nije bilo moguće. Prvo sam instalirao port x11-fonts/webfonts, koji sadrži fontove koji su raspoloživi za besplatan download na Microsoftovom sajtu (Times New Roman, Arial, Verdana, Trebuchet...). Port ih je instalirao u direktorijum /usr/X11R6/lib/X11/fonts/webfonts/. Zatim sam editovao /etc/X11/XF86Config da se uverim da je linija
FontPath "/usr/X11R6/lib/X11/fonts/webfonts/"
na svom mestu u "Files" sekciji. O istom trošku sam proverio da li su u "Module" sekciji učitani moduli za FreeType i Type1 (FreeType2 biblioteku sam inače instalirao iz portova, još pri instalaciji sistema):
Load "type1"
Load "freetype"
Pošto je naizgled bilo sve u redu, stisnuo sam palčeve i podigao X. TrueType fontovi su zaista bili tu. Podigao sam KDE, u Kontrolnom Centru uključio "Use AntiAliasing" opciju za fontove, i restartovao KDE. Međutim sad dolazi nezgodan deo. Naime, antialiasinga nije bilo. Koristeći xfontsel i xmag alate sam proverio i uverio se da su samo tri-četiri fonta (Luxi familija) imali umekšane ivice. AA je očigledno radio, ali "selektivno". Proverio sam još jednom konfiguracione fajlove, prevrnuo web tražeći rešenje, ali nigde nisam našao ništa o problemu sa AA na FreeBSD-u.
Prošlo je nekoliko nedelja od toga, u međuvremenu sam malo bacio to u zapećak, mada mi je problem bio zapisan u ~/TODO listi. Onda sam jedno veče seo, i zainatio se da ga rešim.
Rešenje se pokazalo kao jednostavno, ali nažalost, ne baš očigledno. Naime, Xft rendering ekstenzija pri startovanju čita fajl /usr/X11R6/lib/X11/XftConfig, koji u default instalaciji izgleda ovako:
Code:
# $XFree86: xc/lib/Xft/XftConfig.cpp,v 1.8 2001/11/21 23:41:12 keithp Exp $
dir "/usr/X11R6/lib/X11/fonts/Type1"
#
# alias 'fixed' for 'mono'
#
match any family == "fixed" edit family =+ "mono";
# $XFree86: xc/lib/Xft/XftConfig.cpp,v 1.8 2001/11/21 23:41:12 keithp Exp $
dir "/usr/X11R6/lib/X11/fonts/Type1"
#
# alias 'fixed' for 'mono'
#
match any family == "fixed" edit family =+ "mono";
Potrebno je bilo dodati sve direktorijume sa fontovima koje želimo da renderuje (i umekšava) Xft ekstenzija, ovako:
Code:
# $XFree86: xc/lib/Xft/XftConfig.cpp,v 1.8 2001/11/21 23:41:12 keithp Exp $
dir "/usr/X11R6/lib/X11/fonts/Type1"
dir "/usr/X11R6/lib/X11/fonts/webfonts"
dir "/usr/X11R6/lib/X11/fonts/100dpi"
dir "/usr/X11R6/lib/X11/fonts/75dpi"
#
# alias 'fixed' for 'mono'
#
match any family == "fixed" edit family =+ "mono";
# $XFree86: xc/lib/Xft/XftConfig.cpp,v 1.8 2001/11/21 23:41:12 keithp Exp $
dir "/usr/X11R6/lib/X11/fonts/Type1"
dir "/usr/X11R6/lib/X11/fonts/webfonts"
dir "/usr/X11R6/lib/X11/fonts/100dpi"
dir "/usr/X11R6/lib/X11/fonts/75dpi"
#
# alias 'fixed' for 'mono'
#
match any family == "fixed" edit family =+ "mono";
Izmena je bila jako sitna, ali ne očigledna (jedan od razloga zašto pišem ovo, da bih pomogao nekome ko bude imao isti problem da ne luta), i posle nje mi je ne samo proradio AA na svim fontovima, već su i neki problemi sa prikazom određenih karaktera u fontovima (ćirilica u KDE-u, na primer) nestali.
I naravno, screenshot posle uspešno obavljenog posla. KDE 3.0.2, Mosfet Liquid style, font je uglavnom Tahoma TTF.
[img]http://www.elitesecurity.org/poruka.php?Action=getfile&MessageID=94064[/img]