OpenSuSE Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
x SuSE Linux 13.1-RELEASE x
x SuSE Linux 13.1-RELEASEx
joystick(4)                Kernel Interfaces Manual                joystick(4)

NAME
       joystick - Joystick input driver

SYNOPSIS
       Snipped for xorg.conf.d(5):

       Section "InputClass"
         Identifier "joystick-all"
         Driver "joystick"
         Option "MatchIsJoystick"   "on"
         Option "MatchDevicePath "/dev/input/event*"
         ...
       EndSection

DESCRIPTION
       joystick  is  an  Xorg  input driver for controlling the pointer with a
       joystick device.

       Use this driver, if you want to
          - generate cursor movement, perform button or key events to  control
          desktop and applications

          -  generate cursor key events for playing legacy games, that have no
          native joystick support

       Do not use, if you want to
          - play games, that have native joystick support

          - use XI2 applications. The evdev(4) driver will suffice  for  those
          in most cases.

       You may mix above scenarios by setting the device floating.  The driver
       reports relative cursor movement, button and key events, as well as raw
       axis values through valuators.

SUPPORTED HARDWARE
       The  joystick  input  module can be used on top of the following kernel
       devices:

       - Linux's evdev device
       - Linux's joystick device
       - BSD's usbhid device

       Every joystick supported by the kernel should be supported by the  joy-
       stick  input  driver.  The  joystick  is  assumed  to be calibrated and
       reporting axis values between -32768 and 32768.  See the  Linux  kernel
       documentation for a complete list of supported devices.

       There is no support for force feedback at the moment.

CONFIGURATION DETAILS
       Please  refer  to xorg.conf(5) for general configuration details.  This
       section only covers configuration details specific to this driver.

       The following Driver Options are supported:

       Option "Device" "string"

       Option "Path" "string"
              Specifies the device through which the joystick can be accessed.
              This option is mandatory and there is no default setting.

              In    Linux,    joysticks   are   usually   accessible   through
              /dev/input/jsX or /dev/input/eventX.

              In *BSD, joysticks are usually recognized as /dev/uhidX.

       Option "AutoRepeat" "delay rate"
              Sets the auto repeat behaviour for key  events.   delay  is  the
              time in milliseconds before a key starts repeating.  rate is the
              number of times a key repeats per second.  Default: Xorg default

       Option "DebugLevel" "integer"
              Controls the verbosity of the driver for debugging purposes. The
              higher the DebugLevel, the more output is produced.  Default: 0

       Option "MapButton<number>" "string"
              Sets  the  mapping  of  a joystick button to the desired action.
              Button counting starts with 1, Possible options are:

              none   Don't do anything

              "button=<number>"
                     Generate  a  pointer  button  event  with  button  number
                     (starting with 1).

              "axis=[<factor>]<axis>"
                     Where <axis> is one of: x, y, zx, zy

                     and  <factor>  is an optional amplifier of the axis, like
                     -, +, -5, 0.4,  1.3,  ...   Negative  values  invert  the
                     direction. Default: 1.0

              "amplify=<factor>"
                     Amplifies  the  movement  of all axes by the given factor
                     when this button is held down. Different factors  can  be
                     combined.

              "key=<scancode>[,<scancode>[,<scancode>[,<scancode>]]]
                     When  button  is pressed, a series of keydown events with
                     the specified scancodes is generated. When the button  is
                     released, matching keyup events in the opposite order are
                     generated. You can specify up to 4 scancodes per button.

                     See special section about key events below.

              "disable-mouse"

              "disable-keys"

              "disable-all"
                     Disables either  the  generation  of  mouse  events,  key
                     events  or  the generation of all X events by the driver.
                     Press button again to allow the driver to generate events
                     again.

                     You may also set the device floating from client space to
                     prevent it from generating core events.

       Option "MapAxis<number>" "string"
              Sets the mapping of the axis to the desired action. Axis  count-
              ing starts with 1, the parameter may contain:

              "mode=<string>"
                     Where <string> can be one of:

                     none, relative, accelerated, absolute

              "valuator"
                     Send  extra  valuator events for this axis. The valuators
                     will be numbered ascending, starting with 2  (valuator  0
                     and 1 are reserved for pointer movement). Please consider
                     using the evdev(4) input driver if you  are  only  inter-
                     ested in XI2 features.

                     The  range  of  the  valuators is always -32767 to 32768.
                     Neither mode nor axis needs to be set to  generate  extra
                     valuator  events.  The axis will be labelled according to
                     its physical axis number, beginning with 1 , e.g.   "Axis
                     1" for the first axis (being the 3rd valuator).  Default:
                     not set.

              "axis=[<factor>]<axis>"
                     Where <axis> is one of: x,  y,  zx,  zy,  key  (see  key-
                     low/keyhigh)

                     and  <factor>  is an optional amplifier of the axis, like
                     -, +, -5, 0.4, 1.3, ...  Negative values will invert  the
                     movement. Default: 1.0

              "keylow=<scancode>[,<scancode>[,<scancode>[,<scancode>]]]

              "keyhigh=<scancode>[,<scancode>[,<scancode>[,<scancode>]]]
                     When  the  axis is moved out of the deadzone, a series of
                     keydown events according to the direction of the movement
                     is  generated.  When the axis is released, matching keyup
                     events in opposite order will be generated. You can spec-
                     ify up to 4 scancodes for each direction.

                     keylow  defines the keys to be generated when the axis is
                     moved in negative direction (left or up), keyhigh defines
                     the  keys to be generated when the axis is moved in posi-
                     tive direction (right or down).

                     If mode is set  to  relative:  The  driver  will  emulate
                     autorepeat  according to the current value of the axis. A
                     keydown and subsequent keyup event will be  generated  in
                     short  time  intervals.  To  modify that interval and the
                     autorepeat speed, supply the "axis=[<factor>]KEY" parame-
                     ter.

                     If  mode  is set to accelerated: Keydown and keyup events
                     will be generated repeatedly. The time between a  keydown
                     and  a  keyup  event corresponds to the deflection of the
                     axis.  If the axis is deflected by 30%, the key  will  be
                     considered  to  be  down 300ms out of 1 second. The exact
                     intervals may vary and can be adjusted with  the  amplify
                     parameter.  If  the axis is deflected by 100%, there will
                     only be one keydown event, so the key is considered  down
                     all the time.  The keys will be autorepeated according to
                     the Xorg keyboard settings.

                     See special section about key events below.

              "deadzone=<number>"
                     Sets the unresponsive range  of  the  axis  to  <number>.
                     This can be between 0 and 30000.  Default: 5000

       Option "StartKeysEnabled" "boolean"
              Set  to False to disable key event generation after startup. You
              can toggle key event generation  with  the  disable-keys  button
              mapping. Default: enabled

       Option "StartMouseEnabled" "boolean"
              Set  to  False  to disable mouse event generation after startup.
              You can toggle mouse event  generation  with  the  disable-mouse
              button mapping. Default: enabled

DEFAULT CONFIGURATION
       The default configuration is as follows:

         Option "DebugLevel"        "0"
         Option "StartKeysEnabled"  "True"
         Option "StartMouseEnabled" "True"
         Option "MapButton1"        "button=1"
         Option "MapButton2"        "button=2"
         Option "MapButton3"        "button=3"
         Option "MapButton4"        "none"
         ...
         Option "MapAxis1"          "mode=relative    axis=+1x  deadzone=5000"
         Option "MapAxis2"          "mode=relative    axis=+1y  deadzone=5000"
         Option "MapAxis3"          "mode=relative    axis=+1zx deadzone=5000"
         Option "MapAxis4"          "mode=relative    axis=+1zy deadzone=5000"
         Option "MapAxis5"          "mode=accelerated axis=+1x  deadzone=5000"
         Option "MapAxis6"          "mode=accelerated axis=+1y  deadzone=5000"
         Option "MapAxis7"          "mode=none"
         ...

ACCELERATED AXIS CONFIGURATION
       Accelerated  mode should be selected, if the axis is a directional pad,
       which reports only three states: negative, center,  positive.  It  will
       result  in smoothly accelerated movement when the axis is deflected. An
       optional factor will affect the acceleration and final speed.

       This example will set up the axis  as  scrolling  vertically  inverted,
       with half the speed:
         Option "MapAxis1"     "mode=accelerated axis=-0.5zy"

       This  example  maps four buttons to the four pointer directions, so you
       can use the buttons like a d-pad. The movement will be accelerated with
       half the normal speed:
         Option "MapButton1"     "axis=+0.5x"
         Option "MapButton2"     "axis=-0.5x"
         Option "MapButton3"     "axis=+0.5y"
         Option "MapButton4"     "axis=-0.5y"

ABSOLUTE AXIS CONFIGURATION
       In  absolute axis mode, the position of the cursor will match the posi-
       tion of the configured axis, but relative to the previous  position  of
       the cursor. You can specify the range in which the cursor can move. The
       default range is the screen size.

       In this example the first axis gets a range from left to the  right  of
       the  screen.  The  second axis gets a total range of 200 pixels, 100 to
       the top and 100 to the bottom:
         Option "MapAxis1"     "mode=absolute axis=x"
         Option "MapAxis2"     "mode=absolute axis=200y"

GENERATING KEY EVENTS
       Providing a "key=<scancode>[,<scancode>[...]]" option will  generate  X
       Events  with specified scancodes. When the button/axis is released, the
       keys will be released in opposite order.

       If you want a certain KeySym,  look  up  the  matching  scancode  using
       xmodmap  -pk.   The scancodes depend on the configured keyboard layout.
       You can also use unused keycodes and map  them  to  a  KeySym  of  your
       choice using xmodmap(1).

       You  can  specify up to 4 scancodes per joystick button/axis, which can
       be used for modificators to get the KeySym you want.

       Examples:
         Option "MapButton1"     "key=64,23"
       will generate Alt_L+Tab when the button is pressed.

         Option "MapButton1"     "key=50,40"
       will generate a Shift_L+d which will result in an uppercase d.

         Option "MapButton1"     "key=65"
       will result in a space key.

         Option  "MapAxis1"      "mode=relative    keylow=113  keyhigh=114 axis=0.5key"
         Option  "MapAxis2"      "mode=relative    keylow=111  keyhigh=116"
         Option  "MapAxis3"      "mode=accelerated keylow=113  keyhigh=114"
         Option  "MapAxis4"      "mode=accelerated keylow=111  keyhigh=116"
       will map the first and third axis to the arrow keys left and right  and
       the second and fourth axis to the arrow keys up and down.

       The  keys  for  the  first  two  axes  will be generated in an interval
       according to the value of the axis. The autorepeat speed of  the  first
       axis  will  be half the speed of that of the second axis.  The keys for
       the third and fourth axis are generated once when the axis moves out of
       the  deadzone  and  when  it  moves  back into the deadzone. X.Org will
       autorepeat those keys according to current keyboard settings.

XI2 Events
       If you only care about raw valuator events instead of  using  the  joy-
       stick  to control the cursor, consider using the evdev(4) input driver.
       If you still use the joystick driver for raw events, make sure to unmap
       all axes/buttons and add the valuator option to the axes:

         Option  "MapAxis1"      "mode=none valuator"
         Option  "MapAxis2"      "mode=none valuator"
         Option  "MapAxis3"      "mode=none valuator"
         Option  "MapAxis4"      "mode=none valuator"
         ...
         Option  "MapButton1"      "button=1"
         Option  "MapButton2"      "button=2"
         Option  "MapButton3"      "button=3"
         Option  "MapButton4"      "button=4"
         Option  "MapButton5"      "button=5"
         ...

       Remember,  that  valuators  0  and 1 are reserved for pointer movement,
       additional axes will start with valuator 2.

       You might also want to set  the  device  "floating"  to  stop  it  from
       reporting core events:
         Option  "Floating"      "true"

NOTES
       It  is  not  recommended to enable the joystick input driver by default
       unless explicitely requested by the user.

       Configuration through InputClass sections is recommended in  X  servers
       1.8  and  later.  See  xorg.conf.d(5)  for  more  details.  An  example
       xorg.conf.d(5) snipped is provided in ${sourcecode}/config/50-joystick-
       all.conf

       Configuration  through  hal  fdi files is recommended in X servers 1.5,
       1.6 and 1.7. An example hal policy file is still provided in  ${source-
       code}/config/50-x11-input-joystick.fdi      to     be     placed     in
       /etc/hal/fdi/policy.

SEE ALSO
       Xorg(1), xorg.conf(5), xorg.conf.d(5), Xserver(1), X(7), xmodmap(1)

AUTHORS
       Sascha Hlusiak (2007-2012),
       Frederic Lepied (1995-1999)

X Version 11               xf86-input-joystick 1.6.2               joystick(4)

Want to link to this manual page? Use this URL:
<
http://star2.abcm.com/cgi-bin/bsdi-man?query=joystick&sektion=4&manpath=>

home | help