Provided by: xserver-xorg-core_21.1.13-2ubuntu1_amd64 bug

NAME

       inputtest - An X.Org input driver for testing

SYNOPSIS

       Section "InputDevice"
         Identifier "devname"
         Driver "inputtest"
         Option "SocketPath"   "path"
         ...
       EndSection

DESCRIPTION

       inputtest  is  an  Xorg  input  driver that passes events received over a socket on to the
       server as input events. It supports the full set of the xf86 driver APIs exposed by  Xorg.
       The  primary  use  cases  of  this input driver are various integration tests that need to
       interface with the input subsystem.

CONFIGURATION DETAILS

       Please refer to xorg.conf(5) for general configuration details and for options that can be
       used  with  all input drivers.  This section only covers configuration details specific to
       this driver.

       External process can communicate with the input driver via a named socket that is  created
       after  the  driver  is  initialized.  The  paths  to the socket is passed via input driver
       options.

       The following driver Options are supported:

       Option "SocketPath" "string"
              Sets the path where the driver will create a named socket.  Any  existing  file  at
              that location will be removed.

       Option "DeviceType" "string"
              Sets the type of the device to be emulated.

              Keyboard Initializes a keyboard device.

              Pointer Initializes a relative-mode pointer device. It will have four valuators - a
              "Rel X" valuator at axis 0 and a "Rel Y" valuator at axis 1.  A  horizontal  scroll
              valuator  will  be  set up at axis 2.  A vertical scroll valuator will be set up at
              axis 3.

              PointerAbsolute Initializes an absolute-mode pointer  device.  It  will  have  four
              valuators  -  an  "Abs  X" valuator at axis 0 and an "Abs Y" valuator at axis 1.  A
              horizontal scroll valuator will be set up at axis 2.  A  vertical  scroll  valuator
              will be set up at axis 3.

              PointerAbsoluteProximity Initializes an absolute-mode pointer device with proximity
              support.  The valuators are initialized in the  same  way  as  for  PointerAbsolute
              type.

              Touch Initializes a touch device.  It will have 5 valuators: an "Abs MT Position X"
              at axis 0, an "Abs MT Position Y" valuator at axis 1, a horizontal scroll  valuator
              on  axis  2, a vertical scroll valuator on axis 3 and an "Abs MT Pressure" valuator
              at axis 4.

       Option "TouchCount" "int"
              Sets the maximum number of simultaneous touches for touch devices.

       Option "PointerButtonCount" "int"
              Sets the maximum number of buttons in pointer devices.

       Option "PointerHasPressure" "bool"
              Selects whether "Abs Pressure" is available at the axis 4 in pointer devices.

INTERFACE WITH THE DRIVER

       The communication with the driver is a  binary  protocol  defined  in  include/xf86-input-
       inputtest-protocol.h

       At the beginning, the client process that communicates with the driver must connect to the
       socket that is created by the driver at SocketPath.  Once the connection  is  established,
       it  must  write  a  xf86ITEventClientVersion  event and read a xf86ITResponseServerVersion
       response where the driver specifies the protocol version supported by it. If this  version
       is lower than requested by the client, then the driver will disconnect.

       After  receiving  xf86ITResponseServerVersion  message  the  client may send events to the
       driver. Each event is an instance of one of the xf86ITEvent*  structs.  The  length  field
       defines the full length of the struct in bytes and the event field defines the type of the
       struct.

       The responses from the server follow the same structure. Each response is an  instance  of
       one of the xf86ITResponse* structs. The length field defines the full length of the struct
       in bytes and the event field defines the type of the struct.

       The synchronization with Xorg is performed via xf86ITEventWaitForSync event. After sending
       such         event,         the         client         must        read        of        a
       xf86ITResponseSyncFinishedeventfromthesocketwithoutsendingadditional      events.      The
       completion  of the read operation indicates that Xorg has fully processed all input events
       sent to it so far.

AUTHORS

       Povilas Kanapickas <povilas@radix.lt>

SEE ALSO

       Xorg(1), xorg.conf(5), Xserver(1), X(7)