(add input device properties feature page) |
|||
(12 intermediate revisions by 4 users not shown) | |||
Line 6: | Line 6: | ||
== Owner == | == Owner == | ||
* Name: [[ | * Name: [[Peter Hutterer]] | ||
* email: peter DOT hutterer AT redhat DOT com | |||
== Current status == | == Current status == | ||
* Targeted release: [[Releases/11| Fedora 11]] | * Targeted release: [[Releases/11| Fedora 11]] | ||
* Last updated: | * Last updated: 2009-04-09 | ||
* Percentage of completion: | * Percentage of completion: 100% | ||
== Detailed Description == | == Detailed Description == | ||
X server 1.6 (as shipped in F11) provides new | 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. | 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. | ||
Line 32: | Line 33: | ||
Requires rebasing to X.Org X11 server 1.6. | Requires rebasing to X.Org X11 server 1.6. | ||
== Test | == 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 == | == 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. | 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. | |||
[[Image:Screenshot-Mouse Preferences.png]] | |||
== Dependencies == | == Dependencies == | ||
Line 44: | Line 56: | ||
* xorg-x11-server 1.6 (RCs already in rawhide) | * xorg-x11-server 1.6 (RCs already in rawhide) | ||
* libXi 1.2 (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 == | == Contingency Plan == | ||
Line 56: | Line 72: | ||
== Release Notes == | == Release Notes == | ||
The new X server 1.6 includes Input Device Properties, a new mechanism to | 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. | |||
[[Category: | [[Category:FeatureAcceptedF11]] | ||
[[Category:QA approved feature pages]] |
Latest revision as of 15:52, 9 April 2009
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
- Name: Peter Hutterer
- email: peter DOT hutterer AT redhat DOT com
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.
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
- http://who-t.blogspot.com/2008/10/device-properties-have-landed.html
- XChangeDeviceProperty (3)
- XGetDeviceProperty (3)
- XDeleteDeviceProperty (3)
- XListDeviceProperties (3)
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.