Owner

Current status

Detailed Description

XI2 provides a number of features over the current X Input Extension 1.5:

Explicit support for the master/slave device hierarchy. In X servers supporting XI2 there are two general types of devices - master devices and slave devices. Slave devices (SDs) usually represent a physical input device connected to the host computer. Master devices (MDs) are virtual input devices that are controlled by the physical input devices. Master devices appear as master pointers (i.e. a visible cursor) and master keyboards (i.e. a keyboard focus). Each time an SD generates an event, this event is passed through the MD to the respective application.

Support for multiple master devices. XI2 provides applications with the ability to create additional pairs of master devices (i.e one cursor and one keyboard focus). Through dynamic reattachment of SDs applications can control which physical device controls which visible cursor/keyboard focus. This allows multiple co-located users to collaborate on a single screen.

Support for 32 bit keycodes. Many multimedia keys cannot be processed in current X servers as the core protocol limits keycodes to a maximum of 255. Applications built against XI2 may receive keycodes up to 32 bit.

Benefit to Fedora

XI2 allows the development of novel user interfaces, for example bi-manual input or co-located collaborative applications.

Scope

Requires upstream development and release (planned for xorg-x11-server 1.7).

Test Plan

User Experience

XI2 has no effect on the traditional desktop interface. Only applications that make use of the new APIs gain benefits.
Users who explicitly create additional master devices (e.g. using the xinput tool) may be able to use their traditional desktop in a multi-user fashion to a limited extent.

Dependencies

xorg-x11-server-1.7

libXi-2

Contingency Plan

If XI2 is not ready for 1.7 or xorg-x11-server-1.7 is not ready in time for F-12, we stick with the current version 1.6.

Documentation

Peter has written a series of extensive blog posts about the new possibilities of XI2: