This project uses evdev input system Linux provides to support motion input by devices whose drivers have exposed such functionality.
Its main goal is to reduce amount of motion providers, giving a unified solution for all devices whose drivers expose motion in standardized way.
Below is the list of devices with their support status.
Please note that ability to support device does not really depend on us and it's up to driver to provide correct motion interface.
hid-nintendo
- Nintendo Switch's JoyCons and ProCon (Note: not in mainline kernel yet, needs dkms module as of now)hid-sony
- DualShock 3 and 4 controllers (DS3 lacks gyro)hid-playstation
- DualSense controller (Note: not in mainline kernel yet as of now)
hid-udraw-ps3
,wacom_wac
- THQ PS3 uDraw, Wacom 27QHD tablets (nobody was high enough to try and control games with motion from those devices yet, they also lack gyros)
hid-wiimote
- WiiMote's driver does not expose correctly marked device that can be used directly (check out linuxmotehook)
This project depends on few common software packages. The following command can install build-time requirements on Ubuntu and derived distributives:
sudo apt install libevdev-dev libudev-dev libglibmm-2.4-dev nlohmann-json3-dev zlib1g-dev
You'll also need CMake and a C++ compiler (like gcc), but you probably already have them.
Basic usage is as follows:
evdevhook [config file]
Check out config_templates
for useful configs and information on how to create your own if needed. Run without arguments to see what motion devices are connected to your system.