Draft: winebus: Add support for EV_BTN to udev

Adds support for new EV_BTN event that'll be used in place of EV_KEY for joysticks and maybe gamepads. This event doesn't require any mapping as it simply passes through button number as the code (starting from 1 just like HID) and it's value.

It was needed to cleanly support joysticks and simracing/simflight hardware that defines more than 80 buttons. Some HW used hacks in the drivers that assigned random usages found lower then TRIGGER_HAPPPY range.

WIP work dependent on upstream patches to LKML: https://lore.kernel.org/all/20260104213132.163904-1-tomasz.pakula.oficjalny@gmail.com/

All 128 buttons visible in Wine without usage hacks (udev bus):

Screenshot_From_2026-01-04_16-44-58

SDL PR that enables EV_BTN with SDL bus: https://github.com/libsdl-org/SDL/pull/14758

Edited by Tomasz Pakuła

Merge request reports

Loading