xf86-input-xwiimote(4) X.Org Nintendo Wii Remote Input Driver

SYNOPSIS

Section "InputDevice"
Identifier "devname"
Driver "xwiimote"
  ...
Option "Device" "devpath"
Option "MotionSource" "source"
  ...
Option "MPNormalization" "Int:Int:Int"
Option "MPCalibrationFactor" "Int"
Option "MPXAxis" "x" or "y" or "z"
Option "MPXScale" "Int"
  ...
Option "MapLeft" "val"
Option "MapRight" "val"
Option "MapUp" "val"
Option "MapDown" "val"
Option "MapA" "val"
Option "MapB" "val"
Option "MapPlus" "val"
Option "MapMinus" "val"
Option "MapHome" "val"
Option "MapOne" "val"
Option "MapTwo" "val"
  ...
Option "XkbRules" "rules"
Option "XkbModel" "model"
Option "XkbLayout" "layout"
Option "XkbVariant" "variant"
Option "XkbOptions" "options"
EndSection

DESCRIPTION

xwiimote is an Xorg input driver for Nintendo Wii Remotes on Linux. It is based on the xwiimote tools and kernel driver. With this driver you can use the Wii Remote as input for any X application including games. It is highly customizable but comes with sane default values.
The Wii Remote can serve as pointer and keyboard device. The Pointer capabilities are disabled by default. The buttons are mapped to sane default keys so you can directly use the Wii Remote as input device without configuring it.
It is recommended that xwiimote devices are configured through the InputClass directive (refer to xorg.conf(5)) instead of manual per-device configuration. Devices configured in the xorg.conf(5) are not hot-plug capable so use an InputClass instead. This package comes with the default configuration installed as /etc/X11/xorg.conf.d/60-xwiimotes.conf but your distribution may have installed it into other locations. Use this default to configure your Wii Remotes.

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.

The following driver Options are supported:

Option "Device" "devpath"
This specifies the device path to the input event-device of the Wii Remote. This is most often a device in /dev/input/eventX. Do not use this option unless you want to disable device hot-plug.

Option "MotionSource" "source"
The Wii Remote can be used as motion input device (like a mouse). This selects what kind of motion-emulation should be performed. source can be one of accelerometer, ir, MotionPlus or off. Default is off which means no motion-emulation is done. accelerometer means that the accelerometer is used to calculate current tilt and use this as absolute pointer input.

ir means that the IR sensor is used to detect the mouse-location. You need to place an IR emitter in front of you. The Wii Remote has a built-in camera to scan it and calculate the pointer-position from it. Only a single IR source is used by this driver. If multiple IR sources are found, the upper-left most is used.

MotionPlus means that the gyroscope of MotionPlus extensions (or Gen2.0 Devices with built-in MotionPlus) is used. You need to set MPNormalization and MPCalibrationFactor or use run-time calibration to make use of this. This does nothing if no MotionPlus is detected. With newer kernels, you can plug/replug the MotionPlus adapter during runtime and it gets detected automatically.

Option "MPNormalization" "On" or "Int:Int:Int"
Option "MPCalibrationFactor" "On" or "Int"
Option "MPXAxis" "x" or "y" or "z"
Option "MPXScale" "Int"
Option "MPYAxis" "x" or "y" or "z"
Option "MPYScale" "Int"
Option "MPZAxis" "x" or "y" or "z"
Option "MPZScale" "Int"

If running in MotionSource MotionPlus configuration, MPNormalization can be used to apply a constant offset to normalize MotionPlus data. Please use xwiishow or some similar tool from the xwiimote distribution to get these offsets. Set this to on to let the driver perform automatic normalization during startup.

The calibration factor is used to apply calibration values during runtime to keep the data smooth. A factor between 10 and 100 is normally used. If set to on, 50 will be used.

The Axis and Scale options for each axis define remappings and scaling in case the default mappings are not what you want. The Axis selector specifies which axis to use as source. So if you set MPXAxis to z, then whenever the driver wants to read the X-axis values, it gets the Z-axis instead. The Scale options specify a multiplier. The default is 1 (no scaling). The default for the axis-mappings are the trivial mappings. Note that the MP-motion-source only uses X and Z axis for movement calculations.

The following options specify keymaps for the buttons of a Wii Remote. The val field of the options must be one of the linux input-key/btn constants. You can find them in /usr/include/linux/input.h. They start with KEY_* or BTN_*. The option is case-insensitive so KEY_ENTER and Key_Enter are the same. Additional values are none, off, 0 or false to disable the given button or left-button, right-button or middle-button to emulate mouse-buttons instead of keyboard keys.

Option "MapLeft" "val"
Specify the mapping of the LEFT button of the Wii Remote. Default is KEY_LEFT

Option "MapRight" "val"
Specify the mapping of the RIGHT button of the Wii Remote. Default is KEY_RIGHT

Option "MapUp" "val"
a Specify the mapping of the UP button of the Wii Remote. Default is KEY_UP

Option "MapDown" "val"
a Specify the mapping of the DOWN button of the Wii Remote. Default is KEY_DOWN

Option "MapA" "val"
a Specify the mapping of the A button of the Wii Remote. Default is KEY_ENTER

Option "MapB" "val"
a Specify the mapping of the B button of the Wii Remote. Default is KEY_SPACE

Option "MapPlus" "val"
a Specify the mapping of the PLUS button of the Wii Remote. Default is KEY_VOLUMEUP

Option "MapMinus" "val"
a Specify the mapping of the MINUS button of the Wii Remote. Default is KEY_VOLUMEDOWN

Option "MapHome" "val"
a Specify the mapping of the HOME button of the Wii Remote. Default is KEY_ESC

Option "MapOne" "val"
a Specify the mapping of the ONE button of the Wii Remote. Default is KEY_1

Option "MapTwo" "val"
Specify the mapping of the TWO button of the Wii Remote. Default is KEY_2

The following options are standard X.org input device options which also apply to Wii Remote devices:

Option "XkbRules" "rules"
Option "XkbModel" "model"
Option "XkbLayout" "layout"
Option "XkbVariant" "variant"
Option "XkbOptions" "options"

These are the standard Xkb options that select the RMLVO parameters of the keyboard. See the Xkb man-pages for more information. Please be aware that keymaps are applied to all keys before they are sent to the X clients. So take that into account when configuring the other mappings of Wii Remotes.

AUTHORS

David Herrmann <[email protected]>
The XWiimote Project: http://dvdhrm.github.io/xwiimote
The xf86-input-xwiimote Project: http://github.com/dvdhrm/xf86-input-xwiimote