In our article earlier this week looking at the status of X.Org 7.4, one of the features originally planned for integration in this X Server release was MPX, or Multi-Pointer X. While it's been in development for over two years and has been at an experimental state, it's been featured in popular YouTube videos as this is the technology on Linux that allows multiple keyboards and mice to be attached to a single system and MPX allows these input devices to function independently on the same windowing system. For those of you interested in this desktop technology, it's been announced that MPX will finally be merged into the mainline X.Org tree later this month.
Multi-Pointer X was developed by Peter Hutterer at the University of South Australia as part of his PhD project, with development work starting in 2005. Unlike some other implementations, Multi-Pointer X allows many existing applications to continue to function without any fundamental changes. However, when applications become aware of multiple pointers, they are then able to take advantage of the multiple input support. In a traditional desktop, MPX just means you can have multiple users running different applications all on the same desktop simultaneously. Peter announced it last night on the xorg mailing list that he plans to merge MPX to master in the last week of May.
As pointed out in the mailing list message, Daniel Stone is currently cleaning up XKB (the X Keyboard Extension) which is a prerequisite for merging MPX and creating XKB-MPX. In addition to the XKB changes, also needing changes for Multi-Pointer X support are x11proto, xxtproto, inputproto, libXi, libX11, libXext, xinput, and the xserver. As another change, XI (the X Input Extension) will be bumped to version 2.0 with this merge.
For those using a single keyboard and mouse, running Multi-Pointer X shouldn't yield any differences. One of the current limitations for MPX is that support for tablets has been dropped, but that may reappear soon. On the plus side, one recent change to MPX is that it allows switching between hardware and software rendered cursors. The cursor is hardware accelerated when there is a single cursor, but when multiple cursors are attached, the server will dynamically switch to software acceleration.
For those interested in more information on Multi-Pointer X, it's available from their project website. With MPX being merged to master, it should be an exciting time soon for Linux distributions such as Ubuntu 8.10 "Intrepid Ibex". Once Multi-Pointer X has been merged to master, we'll be sure to let you know and we'll likely publish our usage experiences on it with a small tutorial.