            Information about the XInput extension in XFree86[tm]

                               Frédéric Lepied

                               2 November 1998

1.  Introduction

This document provides  some information  about  the XInput  extension imple-
mented in XFree86[tm].

If  you have any suggestions,  comments, fixes  or ideas regarding the XInput
extension in XFree86[tm] or about this document, send e-mail to

lepied@XFree86.Org

Bug Reports should be sent to

XFree86@XFree86.Org

Questions or anything else should be posted to the NewsGroup

comp.windows.x.i386unix

2.  Description

The XInput extension is a standard X Consortium extension. The goal of this
extension is to allow additional input  devices management to the X Window
System. The documentation could  be found in the X Consortium distribution
under xc/doc/hardcopy/Xi.

3.  XFree86 implementation

The XFree86 implementation contains 2 parts : the server part and two clients
(xsetpointer and xsetmode).

3.1  Server side

The server supports the following extended devices :

   o Joystick (only on  supported systems ie. Linux, FreeBSD and NetBSD).
     Features :

        o Relative mode.

        o 2 valuators (x and y axis).

        o 2 buttons.

   o Elographics touchscreen. Features :

        o Absolute mode.

        o 2 valuators (x and y axis).

        o 1 button.

   o Stylus on MicroTouch touchscreen. Features :

        o Absolute mode.

        o 2 valuators (x and y axis).

        o 1 button.

   o Finger on MicroTouch touchscreen. Features :

        o Absolute mode.

        o 2 valuators (x and y axis).

        o 1 button.

   o Mouse. Features :

        o Relative mode.

        o 2 valuators (x and y axis).

        o up to 4 buttons.

   o Wacom stylus. Features :

        o Absolute or relative modes.

        o 6 valuators :

            1.  X axis.

            2.  Y axis.

            3.  pressure.

            4.  X tilt.

            5.  Y tilt.

            6.  wheel.

        o 3 buttons.

        o Proximity report.

        o Motion history capability.

        o Macro/function buttons are reported as keys.

   o Wacom eraser. Features :

        o Absolute or relative modes.

        o 6 valuators :

            1.  X axis.

            2.  Y axis.

            3.  pressure.

            4.  X tilt.

            5.  Y tilt.

            6.  wheel.

        o 1 button.

        o Proximity report.

        o Motion history capability.

        o Macro/function buttons are reported as keys.

   o Wacom cursor. Features :

        o Absolute or relative modes.

        o 6 valuators :

            1.  X axis.

            2.  Y axis.

            3.  pressure.

            4.  X tilt.

            5.  Y tilt.

            6.  wheel.

        o 16 buttons.

        o Proximity report.

        o Motion history capability.

        o Macro/function buttons are reported as keys.

   o SummaSketch tablet. Features :

        o Absolute or relative modes.

        o 2 valuators (x and y axis).

        o 2 buttons stylus or 4 buttons puck.

        o Proximity report.

        o Motion history capability.

   o AceCad tablet. Features :

        o Absolute or relative modes.

        o 2 valuators (x and y axis).

        o 2 buttons stylus or 4 buttons puck.

        o Proximity report.

        o Motion history capability.

   o Calcomp DrawingBoard tablet. Features :

        o Absolute or relative modes.

        o 2 valuators (x and y axis).

        o 4 buttons stylus or 16 buttons puck.

        o Proximity report.

        o Motion history capability.

   o SWITCH virtual device. Features :

        o Absolute mode.

        o 1 valuator (device id) which reports the id of the device control-
          ling the core pointer (works with the AlwaysCore feature see bel-
          low).

   o SGI button box. Features :

        o Absolute or relative modes.

        o 8 valuators.

        o 32 buttons.

        o Motion history capability.

To  enable  an   extended  device, you  must   add   en  entry  in the
XF86Config file.   Consult   to  the XF86Config  man pages to see the
details.

The  XFree86 implementation supports  a  non  standard feature  called
AlwaysCore which enables an  XInput device to send both  core and extended
events at the same time. To enable it you have to add the AlwaysCore keyword
to the  subsection describing your  device in the XF86Config  file.  The
SWITCH virtual device reports a Motion event when another  device takes over
the control of the core pointer. The id of the new device is reported in the
first valuator of the event.

3.2  Clients

xsetpointer is used to  change the device controlling the core pointer and to
list available extended devices.

xsetmode is used to change the mode (absolute or relative) of an extended
device. The device  has to  support relative and  absolute modes and the
device must not control the core pointer.

Consult the man pages for details.

     Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/xinput.sgml,v 3.6.2.3 1999/06/30 13:00:30 hohndel Exp $

     $XConsortium: xinput.sgml /main/3 1996/10/27 11:06:13 kaleb $

