XEmacs -- Emacs: The Next Generation
     Searching XEmacs
Quick Links About XEmacs Getting XEmacs Customizing XEmacs Troubleshooting XEmacs Developing XEmacs

XEmacs on the GTK platform

Bill Perry <wmperry@aventail.com>

XEmacs has been ported to the GTK platform. The basic text editor still uses native X11 features to implement buffer redisplay and so on. However, it is now possible to use the GTK and GNOME widgets (such as dialogs and toolbars) to implement GUI components in XEmacs.


GTK XEmacs is fairly stable as a branch from 21.1. It is achieving some popularity on Linux, and is being distributed by one or more of the Linux distributions as an alternative to FSFmacs and XEmacs.

There is no 21.2 code base (release track) with GTK merged in yet.

The GTK support will not be default in the release. Right now GTK is ``cool'' but is not supported by lots of code that uses it. I'm hoping for an avalanche of extension and customization, but that will take fairly hardened ``out-of-the-box-config? Just Say No'' hacker types at first. (This is open to discussion, but preliminary discussion showed the Review Board is pretty much unanimously against defaulting to --with-gtk=yes in the release. Your opinions are welcomed on xemacs-beta@xemacs.org.)

It probably will not be default in the betas, either. (Again open to discussion, but there is almost no support for it on the Board.)

Bill Perry promised a merge by February 1. (To be precise, he said it was feasible and hasn't retracted that statement.)

Bill says that the basic port to 21.2 is done, but it core dumps more or less immediately. He believes it can be stable by March 1. He proposes it as a configure option for the public release. Making it the default is too big a change on short notice; GTK is not a superset of the normal X11 features, instead it is a variant implementation, like Motif, and further lacks certain features of the normal X11 and Motif platforms. (The most important is the ability to support multiple display servers from the same XEmacs process.)

How can I try it out?

If you want to help Bill with the port (he has a tree of code that builds but doesn't quite run as of last report, some weeks ago), mail him directly. He has been very busy and not too active in the last month.

To get GTK support, use the --with-gtk=yes argument to configure with source code that supports GTK.

At the moment, if you want to work with ancillary support like actually using the GTK widgets to make Custom look nicer and stuff like that, check out the xemacs module with -r gtk-xemacs from cvs.xemacs.org. This currently gives you a 21.1 XEmacs with GTK support.

Open bugs

Probably lots. See c.e.x and xemacs-beta.

Other open issues

According to Bill:

  • probable state by next March
  • open issues you know about

Well, right now there is no status of the GTK code. I've got a half-assed version running to the point of coredumping here, and haven't had a chance to figure out why. I could try to take some time off of work to fix it up early next year though, so could try to make a march 1st deadline.

I would probably need semi-detailed help from andy about the widget code, and perhaps ben about some of the Xt code and native dialogs - if I can get him on the phone. I haven't talked with him in quite a while - is he unable to type again, or has something more serious gone wrong?

Also, I know that Bill sees a relationship between GTK and the native widgets, and I wonder if there might be a relationship between the portable dumper and external modules. Any comments on issues like that would also be valuable.

One thing I'd like to do is also break out the foreign function call interface and make it a standalone chunk of code that GTK just extends instead of having an incestuous relationship like they do now.


To be added.

Closed bugs

To be added.


Conform with <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Automatically validated by PSGML