XI2 pull warning

Peter Hutterer peter.hutterer at who-t.net
Wed May 27 22:33:11 PDT 2009

This is a pull warning for XI2 into master.

Next Thursday, Jun 4, I will pull XI2 into master. I will spend the rest of
this week ironing out issues so that the merge will be smooth. There will be
another warning email following the merge.

In the meantime, please test the xi2 branches from

=== How this will affect you ===
- ABI_XINPUT_VERSION has been updated, so your input devices will stop
  working and you will see complaints in the Xorg.log. A simple "make clean
  && make install" of the input drivers will do.
- package depencies changed (requiring inputproto
  configure will fail if you do not have inputproto updated.
You should not notice any changes in the way the server works. If you notice
breakage or change of behaviour, please notify me and/or file a bug. Only
MPX or XI2 applications are affected by this pull.

== XI2 protocol and API == 
I think the current protocol and Xlib API is good enough to start developing
applications. I have ported my old multi-pointer window manager over to XI2
and found it quite simple to write an XI2 application, especially compared
to the old XI. 
I hope changes over the next few weeks are bugfixes, more so than
API redesign. At this point, neither API nor ABI can be considered stable

So here's your chance - start developing XI2 applications and point out
issues. Do it now, while nothing is set in stone. If you come and complain
once we've released 2.0 it will be much harder to incorporate your comments.

== libXi API cleanup ==
The libXi API has seen a bit of cleanup, most notably that anything prefixed
with XI is assumed to work on a device so the superfluous "Device" in the
function and protocol names are gone.
Example: XIQueryDevicePointer -> XIQueryPointer.
Exceptions are those where I found "Device" to be required to be meaningful.
Same with constants in XI2.h, all prefixed with XI now.

Another rather major change is the switch to asciidoc for the man pages
which allows updating man pages without the pain that is docbook xml.
The man pages will be kept in sync with the implementation, please notify me
if man pages are incorrect or missing information.

== XI 2.0 ==
I have tried to keep 2.0 fairly small. It's too easy to get carried away and
then we end up with another XKB. 2.1 and future versions will be more
feature-complete for a wide variety of applications, once we have scoped out
the problems.
All events and most requests are extensible and clients are required to
ignore unknown data in events. This way we can tack on information later
without breaking existing clients.

The full protocol description can be found at:

== Features ==
XI2 provides:
- subpixel precision for window, root and valuator coordinates
- 32-bit keycodes
- passive grabs for keysyms, enter notifies, and focus in notifies
- manipulation of the device hierarchy
- simplified event selection including fake devices for event selection on
  "all devices" and "all master devices".

If you need additional features, you'll need to provide significant reason
or a patch.


More information about the xorg-devel mailing list