XORG-XWIIMOTE(4)

๐Ÿ’– XORG-XWIIMOTE(4) โ€” the xf86-input-xwiimote tea ๐Ÿ’–

okay so bestie, this is the manual page for xf86-input-xwiimote, and it lives in the X Version 11 section of the X manual pages. It's giving "Nintendo Wii Remote as an X input device" and honestly? iconic. Let's get into it ๐ŸŽ€


โœจ NAME โœจ

xf86-input-xwiimote โ€” the 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 ๐ŸŒธ

So xwiimote is an Xorg input driver for Nintendo Wii Remotes on Linux, fr fr. It's built on top of the xwiimote tools and the 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, which is the best of both worlds ngl.

The Wii Remote can serve as a pointer and a 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 an input device without configuring anything โ€” no setup era, we're already in our main character era ๐Ÿ’….

lowkey important: 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 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 the configuration details specific to this driver, iykyk ๐Ÿซถ.

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. Like, seriously, it kills the hot-plug vibe ๐Ÿ’€.
  • Option "MotionSource" "source" โ€” the Wii Remote can be used as a 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 โ€” plug and play, slay ๐Ÿ”ฅ.
  • 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" โ€” specify the mapping of the UP button of the Wii Remote. Default is KEY_UP
  • Option "MapDown" "val" โ€” specify the mapping of the DOWN button of the Wii Remote. Default is KEY_DOWN
  • Option "MapA" "val" โ€” specify the mapping of the A button of the Wii Remote. Default is KEY_ENTER
  • Option "MapB" "val" โ€” specify the mapping of the B button of the Wii Remote. Default is KEY_SPACE
  • Option "MapPlus" "val" โ€” specify the mapping of the PLUS button of the Wii Remote. Default is KEY_VOLUMEUP
  • Option "MapMinus" "val" โ€” specify the mapping of the MINUS button of the Wii Remote. Default is KEY_VOLUMEDOWN
  • Option "MapHome" "val" โ€” specify the mapping of the HOME button of the Wii Remote. Default is KEY_ESC
  • Option "MapOne" "val" โ€” 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 ๐Ÿ’œ


๐ŸŒˆ SEE ALSO ๐ŸŒˆ

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


And that's the whole page, bestie ๐Ÿซถ This one's a David Herrmann production, part of the xf86-input-xwiimote project, and it's filed under XORG-XWIIMOTE(4). Go forth and vibe with your Wii Remote ๐Ÿ’…โœจ๐ŸŽ€