diff --git a/readme/development.md b/readme/development.md index 1f04520d..dccb1916 100644 --- a/readme/development.md +++ b/readme/development.md @@ -123,6 +123,41 @@ just need to be commited. Communication to the service always happens via `key-mapper-control` +## Unsupported Devices + +Either open up an issue or debug it yourself and make a pull request. + +You will need to work with the devices capabilities. You can get those using + +``` +sudo evtest +``` + +**It tries or doesn't try to map ABS_X/ABS_Y** + +Is the device a gamepad? Does the GUI show joystick configurations? +- if yes, no: adjust `is_gamepad` to loosen up the constraints +- if no, yes: adjust `is_gamepad` to tighten up the constraints +Try to do it in such a way that other devices won't break. Also see +readme/capabilities.md + +**It won't offer mapping a button** + +Modify `should_map_event_as_btn` + +**The cursor won't move anymore** + +Can be difficult. Depending on capabilities the display server might not +treat events as cursor movements anymore. e.g. mice with EV_ABS capabilities +won't move the cursor. Or key-mapper removed the EV_ABS capabilities. +Or due to weird stuff a new capability appears out of nowhere (ABS_VOLUME). + +At some point this won't be a problem anymore when key-mapper creates a new +device for all injected keys for non-keyboards, as well as for generated +EV_REL events for gamepads. + +Modify `_modify_capabilities` to get it to work. + ## Resources - [Guidelines for device capabilities](https://www.kernel.org/doc/Documentation/input/event-codes.txt)