From Fedora Project Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Input Device Properties

Summary

With X server 1.6, input devices provide a generic mechanism to change driver settings at runtime. The same mechanism may be used by applications to store information directly on device.

Owner

Current status

  • Targeted release: Fedora 11
  • Last updated: 2009-04-09
  • Percentage of completion: 100%

Detailed Description

X server 1.6 (as shipped in F11) provides new X Protocol requests to list, change and query input device properties. Properties as information exchange mechanism have a long tradition: they are used extensively on windows to provide information exchange between applications (including the window manager). For example, even closing a window is usually performed through setting properties. With the RandR extension, properties became available on output devices, and now, with server 1.6 and the X Input Extension 1.5, such properties are now available on input devices as well.

Input device properties provide two benefits for applications and users:

  • Properties initialized and recognized by the driver or the server can be used to modify device settings at run-time.
  • Properties initialized by an application can be used to store information globally on a device. This information is available through a generic interface to all other applications and can thus be used to annotate devices.

Run-time manageable device properties reduce the need for configuration in the xorg.conf/HAL's fdi files and supersede custom mechanisms such as synaptics's SHM mechanism.

Benefit to Fedora

Run-time manageable device properties reduce the need for configuration in the xorg.conf/HAL's fdi files and supersede custom mechanisms such as synaptics's SHM areas. They further allow for easily extendable GUI configuration tools and for new ways of exchanging device-related information between applications.

Scope

Requires rebasing to X.Org X11 server 1.6.

How To Test

  • Install xorg-x11-server-1.6.0-1 or higher
  • Install xorg-x11-apps (for the xinput tool)
  • Use xinput to query and modify the properties on your input device
    • xinput --list --short - lists all input devices
    • xinput --list-props <device name> - lists the properties for the given device (you can substitute the name with the device ID)
    • xinput --set-int-prop <device name> <property name> <format> <value> [<value> <value> ...] - changes an integer property to the given value(s). For example, xinput --set-int-prop "USB Mouse" "Evdev Wheel Emulation" 8 1 sets the wheel emulation property (8 bit format) on the usb mouse to the value 1.

The properties are driver-dependent, so far evdev and synaptics export their available settings as properties. The man pages of the respective drivers list all available properties and their formats.

User Experience

This is a low-level interface that has no direct impact on the user. However, some tools are being converted to use input properties instead of custom mechanisms, and a generic tool ('xinput') is available to enable users to change properties in the absence of GUI tools. The drivers xorg-x11-drv-evdev and xorg-x11-drv-synaptics expose configuration settings as properties and can thus be configured at runtime.

The GNOME Mouse capplet has gained a 'Touchpad' tabbed section that allows to configure basic aspects of synaptics touchpads by means of input device properties.

Screenshot-Mouse Preferences.png

Dependencies

  • xorg-x11-server 1.6 (RCs already in rawhide)
  • libXi 1.2 (already in rawhide)

For run-time configuration of drivers:

  • evdev 2.1 (in F10)
  • synaptics 1.0 (already in rawhide)

Contingency Plan

  • none, this feature comes built-in with server 1.6

Documentation

Release Notes

The new X server 1.6 includes Input Device Properties, a new mechanism to store information on input devices. This new API allows for run-time configuration of drivers as well as enabling applications to globally store information on an input device.

The drivers xorg-x11-drv-evdev and xorg-x11-drv-synaptics already expose configuration settings as properties and can thus be configured at runtime. The GNOME mouse capplet makes use of this to allow basic touchpad configuration.