AA-Fonts unter KDE 2.1.1
Vorwort
Ich beschreibe hier nicht, wie schön sie aussehen, das kennt jeder von Winblows, sondern wie man sie herbeizaubert. Das Ganze bezieht sich auf ein Sourcen-basiertes System ohne RPM oder ähnliches. Warum, ist ganz einfach: Ich benutze RPM und dergleichen nicht, hab's noch nicht mal installiert. Außerdem muß man bei den Paketen immer drauf hoffen, daß der jeweilige Distributor an die AA-Fonts gedacht hat. Und das tun die wenigsten... darum also von Hand.
Das Ganze funktioniert nur bei Qt-basierten Apps. GTK-Apps (wie Xchat z.B.) oder Motif-Apps (Netscape) profitieren davon nicht!
Was braucht man?
XFree86 R6.4.0.2 ftp://ftp.xfree86.org/pub/XFree86/4.0.2/ Davon runterladen: X402src-1.tgz X402src-2.tgz X402src-3.tgz XFree86R6.4.0.3 (ist nur ein 185 K großer Patch) ftp://ftp.xfree86.org/pub/XFree86/4.0.3/patches/4.0.2-4.0.3.diff.gz Qt 2.3.0 ftp://ftp.trolltech.com/pub/qt/source/qt-x11-2.3.0.tar.gz KDE-2.1.1 ftp://ftp.kde.org/pub/kde/stable/2.1.1/distribution/tar/generic/src/ Man braucht mindestens: kdesupport-2.1.1.tar.bz2 kdelibs-2.1.1.tar.bz2 kdebase-2.1.1.tar.bz2
Wer ein vollständiges KDE haben will, sollte sich ruhig alle Pakete runterladen, von den kde-i18n-XX-2.1.1.tar.bz2 braucht man nur das/die der Sprache/n, die man unterstützt haben will. Also in den meisten Fällen kde-i18n-de-2.1.1.tar.bz2.
Welche Systeme sind geeignet?
Alle, bei denen ein
$ xdpyinfo
ein RENDER zum Vorschein bringt (das sind die meisten).
Wie wird's gemacht?
Ich gehe davon aus, daß alle folgenden Schritte von Root ausgeführt werden.
X installieren
Zuerst wird XFree86R6.4.0.2 entpackt
# cd /usr/local/src # tar -zxvf /pfad/zu/X402src-1.tgz # tar -zxvf /pfad/zu/X402src-2.tgz # tar -zxvf /pfad/zu/X402src-3.tgz
Das erzeugt ein Unterverzeichnis xc in /usr/local/src.
Jetzt der 4.0.3-Patch:
# cp /pfad/zu/4.0.2-4.0.3.diff.gz /usr/local/src # gzip -d /usr/local/src/4.0.2-4.0.3.diff.gz # cd /usr/local/src/xc # patch -Np1 -i ../4.0.2-4.0.3.diff
Damit ist der Patch auf 4.0.3 erledigt.
Jetzt muß zur Vorbereitung die Freetype2-Engine installiert werden, die zu X dazu gehört. Sie befindet sich im Verzeichnis /usr/local/src/xc/extras/freetype2
# cd /usr/local/src/xc/extras/freetype2 # make setup # make # make install
Damit ist Freetype2 in /usr/local installiert. Nun müssen wir X noch mitteilen, daß wir Freetype2 installiert haben. Das geschieht, in dem wir diese Information in die Datei /usr/local/src/xc/config/cf/host.def eintragen:
# echo "#define Freetype2Dir /usr/local" \ >> /usr/local/src/xc/config/cf/host.def
Jetzt können wir X compilieren:
# cd /usr/local/src/xc # make World
(man achte auf das große W). Das dauert jetzt je nach Rechner zwischen ner halben und einigen Stunden... X spuckt jede Menge Warnmeldungen aus während es compiliert. Das stört aber nicht weiter. Wenn X fertig ist, kann man es mit
# make install
installieren. Nun noch schnell die man-Pages von X installiert:
# make install.man
und fertig ist X. War net so schwer, oder? Dauert halt nur ewig.
Nun noch einige kleine Einstellungen vornehmen:
In der /etc/X11/XF86Config sollten folgende Zeilen stehen:
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" # FontPath "unix/:7100" FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled" # FontPath "/usr/X11R6/lib/X11/fonts/truetype" # FontPath "/usr/X11R6/lib/X11/fonts/ttf" # FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/X11R6/lib/X11/fonts/local" FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled" Fontpath "/usr/X11R6/lib/X11/fonts/Speedo" ModulePath "/usr/X11R6/lib/modules" EndSection
Evtl. vorhandene andere Font-Server (hier: "unix/:7100") werden auskommentiert. Ebenso die Type1- und evtl. schon vorhandenen TrueType-Schriften! Zu denen kommen wir gleich. Nun noch darauf achten, daß folgendes geladen wird:
Load "type1" Load "freetype"
Fertig. XF86Config speichern.
Nun zu den Type1- und TrueType-Schriften:
Man braucht dazu einige TTF-Fonts: http://keithp.com/~keithp/fonts/truetype.tar.gz
# cd /usr/X11R6/lib/X11/fonts # tar -zxvf /pfad/zu/truetype.tar.gz
Das gibt ein /usr/X11R6/lib/X11/fonts/truetype Verzeichnis.
Nun benennt man die /usr/X11R6/lib/X11/XftConfig um nach /usr/X11R6/lib/X11/XftConfig.old.
# mv /usr/X11R6/lib/X11/XftConfig /usr/X11R6/lib/X11/XftConfig.old
und ersetzt sie durch diese:
# # XftConfig # # Use with Type1 and TrueType fonts # dir "/usr/X11R6/lib/X11/fonts/Type1" dir "/usr/X11R6/lib/X11/fonts/truetype" # Wer schon mal den TTF-Tipp von PL umgesetzt hat, kommentiert noch # dir "/usr/X11R6/lib/X11/fonts/ttf" # aus. # # alias 'fixed' for 'mono' # match any family == "fixed" edit family =+ "mono"; # #Check users config file # includeif "~/.xftconfig" # # Substitute TrueType fonts for Type1 versions # match any family == "Times" edit family += "Times New Roman"; match any family == "Helvetica" edit family += "Verdana"; match any family == "Courier" edit family += "Courier New"; # # Use TrueType fonts for defaults # match any family == "serif" edit family += "Times New Roman"; match any family == "sans" edit family += "Verdana"; # # Use monotype.com (andale) face where possible # match any family == "mono" all slant == roman all weight < bold edit family += "monotype.com"; # # otherwise, use courier # match any family == "mono" edit family += "Courier New"; # # Alias between XLFD families and font file family name, prefer local fonts # match any family == "Charter" edit family += "Bitstream Charter"; match any family == "Bitstream Charter" edit family =+ "Charter"; match any family == "Lucidux Serif" edit family += "LuciduxSerif"; match any family == "LuciduxSerif" edit family =+ "Lucidux Serif"; match any family == "Lucidux Sans" edit family += "LuciduxSans"; match any family == "LuciduxSans" edit family =+ "Lucidux Sans"; match any family == "Lucidux Mono" edit family += "LuciduxMono"; match any family == "LuciduxMono" edit family =+ "Lucidux Mono"; # # TrueType font aliases # match any family == "Comic Sans" edit family += "Comic Sans MS"; match any family == "Comic Sans MS" edit family =+ "Comic Sans"; match any family == "Trebuchet" edit family += "Trebuchet MS"; match any family == "Trebuchet MS" edit family =+ "Trebuchet"; match any family == "Monotype" edit family =+ "Monotype.com"; match any family == "Andale Mono" edit family += "Monotype.com"; match any family == "Monotype.com" edit family =+ "Andale Mono"; # Ende XftConfig
Fertig.
Qt installieren
Das dauert net ganz so lange wie X ... :-)
Qt soll in /usr/qt Platz finden. Dort entpacken wir es auch gleich:
# cd /usr # tar -zxvf /pfad/zu/qt-x11-2.3.0.tar.gz
Das gibt ein Unterverzeichnis /usr/qt-x11-2.3.0, das wir mit
# mv /usr/qt-x11-2.3.0 /usr/qt
in qt umbenennen. Jetzt geht's ans Compilieren von Qt. Wer schon ein installiertes KDE hat, kann das Qt mitteilen, dann werden die entsprechenden Widgets für den Qt-Designer erstellt. Das kann man aber getrost weglassen, es sei denn, man möchte Anwendungen für KDE entwickeln.
# cd /usr/qt # export QTDIR=/usr/qt # export KDEDIR=/pfad/zu/kde (meist: /usr) # ./configure -gif -thread -system-jpeg -kde -xft
- -gif ist für den gif-support
- -thread bildet eine threaded Qt (macht am meisten Sinn auf SMP-Maschinen)
- -system-jpeg verwendet die System-eigene libjpeg
- -kde sagt ihm, die o.g. Widgets mit zu erstellen
- -xft Das ist unsere Option! Sie ist für das AA zuständig.
Wenn das ./configure fertig ist, kann man Qt mit
# make
compilieren. Danach ist's auch schon fertig. Wir belassen die Sourcen auch im Verzeichnis, weil sie für das Compilieren von KDE nötig sind.

