The Multi-Pointer X Server (MPX) is a modification of the X Server. A standard X Server only provides one mouse cursor (pointer) and one keyboard focus, regardless of the number of input devices connected. MPX provides the user with multiple mouse cursors and multiple keyboard foci. Multicursor applications have been developed in the past but MPX is the first implementation of a multicursor windowing system (or a multicursor X server).
MPX devices are independent. Each cursor is a true system cursor and different pointers can operate in multiple applications simultaneously. This allows for two-handed interaction and/or collaboration on a single display. MPX is compatible to legacy applications such as the GIMP, the Firefox web browser and numerous other applications. Keyboards provide multiple keyboard foci. So you can actually type into several applications at once. Both mice and keyboards can be hot-plugged.
MPX is significantly different to solutions like cpnmouse, SDGToolkit, MIDDesktop and other toolkits or applications. It is fairly easy under most operating systems to write an application or toolkit to support multiple input devices. It is trickier to support the same for legacy applications. Supporting new and legacy applications at the same time is hard.
MPX changes the windowing system, the environment for all graphical applications. This way, legacy applications are supported and provided with extra features. New applications can use the multi-pointer facilities and thus create novel interaction methods at the same time. That is why we think that the windowing system is the correct place to support multiple input devices.
Read full article here.