For a project which did not exist one year ago, X.Org has come a long way.
In early 2004, X.Org became the landing place for the bulk of the
X Window System development community after XFree86 imploded over longstanding
disagreements and an abrupt licensing change. The X.Org version of the X
Window System is now shipped by most major distributors, while XFree86
sinks into relative obscurity. More importantly, X.Org has become the
focus for a reinvigorated and excited development team which is bringing
new life to a long neglected - but crucial - piece of free software
The X11R6.8 release (not formally announced as of this writing, but due any time now)
will be, for most users, the
first look at what is happening in X.Org; it is the first X.Org release
with significant new functionality. While much of the new code in 6.8 is
not yet ready for truly widespread use, this release should still result in
more attractive and more functional desktops for Linux users.
The 6.8 release does not, yet, incorporate one of the project's major
goals: splitting the release into a modular distribution made up of several
packages. An X release is a big
thing, consisting of the X server, fonts, libraries, applications, and
more. Someday it will be possible to get an upgraded server without
pulling down all the rest, but not quite yet.
A great deal of software has been updated in this release. There are new
versions of FreeType2, Xprint,
Mesa, DRI, and lots of driver updates. The core of this release, however,
is in the addition of four new protocol extensions. The X11 protocol was,
from the beginning, designed to incorporate extensions and evolve over
time. X.Org 6.8 has made use of this extensibility to add a number of new
- The XFixes
extension is really just a collection of protocol cleanups; it was
designed to avoid the need for any driver changes. The changes are
relatively boring to those who do not program X clients: notification
events for selection changes, cursor image tracking, the promotion of
Region objects to first-class status, etc.
- XDamage is a
new mechanism for informing clients when parts of a window have
been modified. This mechanism is more flexible than the old "expose
events" mechanism, and it allows clients other than the owner of a
window to monitor for changes. Unlike exposures, "damage" can be
reported as a result of almost any sort of drawing operation.
- The Composite
extension allows a client to reroute the rendering of a window
hierarchy into off-screen storage. That client then
takes responsibility for arranging for those windows to be rendered
on-screen, possibly transforming them in the process. This extension enables a
separate "compositing manager" process to add drop shadows, window
translucency, and other interesting visual effects.
This extension is turned off by default in the 6.8 release, for two
reasons. The first is that the performance of desktops using
compositing tends to be poor when using drivers which do not support
compositing in the Render extension. Composite is also likely to
see incompatible protocol changes before it stabilizes. The main reason for
releasing Composite at this time is to make it possible for
application developers to start playing with it and see how well it
works for the larger development community.
- The final new extension is the X Event Interception
Extension (XEvIE). Like Composite, XEvIE allows another client to
interpose itself between the user and the application; XEvIE works on
the input side however. A client using XEvIE can request that all
keyboard and mouse events be sent to it; that client can then modify
these events, if need be, before passing them on to the application.
The immediate use for this extension is accessibility applications -
screen magnifiers are a common example - which need to take actions in
response to user events. Future uses include handwriting recognition
and projects like Looking Glass
XEvIE, too, is off by default, and will almost certainly change in
future X releases.
Some screenshots from
the 6.8 release are available.
Where to from here? The next major X.Org release is likely to be called
X11R7, and, with luck, it will be a modular release. There will probably
be significant changes to Composite and XEvIE in response to current, known
problems and feedback received from wider testing. The input subsystem is
due for a rework to make it properly responsive to hotplug events, among
What actually goes into the next X.Org release will depend on what actually
gets done between now and then. Predicting future free software releases
is always a risky proposition. What is clear, however, is that the fun has
returned to X development, and we will be seeing interesting things on our
desktops in the coming years.
to post comments)