Skip to content

Instantly share code, notes, and snippets.

@ngmoviedo
Last active November 17, 2020 01:02
Show Gist options
  • Save ngmoviedo/505a887099b9d2b5126380045d71193a to your computer and use it in GitHub Desktop.
Save ngmoviedo/505a887099b9d2b5126380045d71193a to your computer and use it in GitHub Desktop.
Xboxdrv plug and play via udev and sustemd (for Thrustmaster GP XID)
# Configuration for Thrustmaster GP XID
[xboxdrv]
silent = true
device-name = "Thrustmaster GP XID"
mimic-xpad = true
force-feedback = 1
[xboxdrv-daemon]
dbus = disabled
[evdev-absmap]
ABS_X=x1
ABS_Y=y1
ABS_RZ=x2
ABS_Z=y2
ABS_HAT0X=dpad_x
ABS_HAT0Y=dpad_y
[evdev-keymap]
BTN_TOP=x
BTN_TRIGGER=y
BTN_THUMB2=a
BTN_THUMB=b
BTN_BASE3=back
BTN_BASE4=start
BTN_BASE=lb
BTN_BASE2=rb
BTN_TOP2=lt
BTN_PINKIE=rt
BTN_BASE5=tl
BTN_BASE6=tr
ENV{ID_VENDOR_ID}=="044f", ENV{ID_MODEL_ID}=="b326", ACTION=="add", RUN+="/usr/bin/systemctl start xboxdrv"
ACTION=="remove", ENV{ID_MODEL_FROM_DATABASE}="Gamepad GP XID", RUN+="/usr/bin/systemctl stop xboxdrv"

Requeriments: xboxdrv systemd

  1. Copy xboxdrv.service where systemd services are stored. On Arch: /lib/systemd/system/
  2. Copy 99-xboxdrv.rules where udev rules are stored. On Arch: /etc/udev/rules.d/ Needs to be modified if you use a different gamepad.
  3. Copy .xboxdrv to your home folder and modify it to fit your needs. It should work for Thrustmaster GP XID, but can be adapted to other controllers.
[Unit]
Description=Xbox controller driver daemon
Documentation=man:xboxdrv(1)
[Service]
Type=forking
User=root
PIDFile=/var/run/xboxdrv.pid
ExecStart=/usr/bin/xboxdrv --daemon --detach --pid-file /var/run/xboxdrv.pid -c $HOME/.xboxdrv --detach-kernel-driver --deadzone 4000 --deadzone-trigger 10%
[Install]
WantedBy=multi-user.target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment