Hi there,
we are both heavy XEmacs users starting XEmacs under various
platforms and conditions. Unfortunately executing XEmacs under Mac
OS X makes us almost sick all the time because of its unfortunate
appearence (especially of its fonts) compared to all the other OS X
applications.
So we dug out the former Xft patch of Vladimir Vukicevic
<
http://list-archive.xemacs.org/xemacs-beta/200012/msg00089.html>
and revised it. (The Xft library, supported by XFree86, is a more
sophisticated font matching scheme that supports nice antialiased
fonts.) You can find the patch at
<
http://www-pu.informatik.uni-tuebingen.de/users/knauel/xemacs-xft/xft-xem...;.
There are also some screenshots available on Matthias's site to get a
first impression:
<
http://www.informatik.uni-freiburg.de/~neubauer/xft-xemacs>.
If you wanna build XEmacs with Xft support,
- apply the patch to XEmacs CVS version,
- run autoconf, and
- `configure' with the new option `--with-xrender'.
Then just tell XEmacs to use a Xft font and you're all set! E. g. add
something like this to your ~/.Xdefaults:
,----
| Emacs.default.attributeFont: Luxi Mono-11
| Emacs.bold.attributeFont: Luxi Mono-11:weight=bold
| Emacs.italic.attributeFont: Luxi Mono-11:slant=italic,oblique
| Emacs.bold-italic.attributeFont: Luxi Mono-11:weight=bold:slant=italic,oblique
`----
Here's an overview how our patch differs from the original patch:
- we added primitive functions for accessing and modifying XFTPattern
structs on the Emacs Lisp level
- there are almost no pixel artifacts (but still some ... :-)
- we integrated Xft fonts into x-faces.el and font.el
- Xft and core fonts can be used in parallel. XLFD's (core font
patterns) and Xft font patterns are distiinguished by a regular
expression.
Please consider this patch a draft version. There a still some issues
and lots of things that can be improved. However, we're not familiar
enough with XEmacs' internals to cope with some of the problems, so
we're hoping you as the XEmacs gurus can help us to test our patch,
answer our questions, and maybe apply our patch to the HEAD later on... ;-)
Questions/TODOs:
- How do (x-)faces.el and font.el play together? We need some
enlightenment.
- TODO: Make fontmenu.el list available Xft fonts
- TODO: Fix Xft drawing with respect to Mule
- TODO: Enhance the performance on OS X, though it already rocks on
Linux and FreeBSD. ;-)
- What are x_font_instance_truename() and
x_font_instance_properties() in objects-x.c good for? (Apparently
never used)
Matthias & Eric
--
"Excuse me --- Di Du Du Duuuuh Di Dii --- Huh Weeeheeee" (Albert King)