From 82ff6dbbf28e72badfa67f5f87bdc37fc5957ff9 Mon Sep 17 00:00:00 2001 From: Andre <200930841+Andre-Bzk@users.noreply.github.com> Date: Mon, 11 May 2026 17:29:54 +0200 Subject: [PATCH] feat: switch gamepad reader to Linux evdev BTN_* codes The Joystick API (/dev/input/js*) numbers buttons depending on driver and connection type. Xbox One controllers via Bluetooth with a Share button shifted X from button number 2 to 3, silently breaking the mapping. The evdev interface provides standardized BTN_* codes (BTN_SOUTH=A, BTN_NORTH=X, etc.) that remain consistent across Xbox, PlayStation, and Nintendo controllers over both USB and Bluetooth. js* devices remain the discovery path, while /sys/class/input/jsN is used to resolve the corresponding event* device. If the /sys lookup fails, JoystickFallbackReader falls back to the old Joystick API. --- CLAUDE.md | 21 +- README.md | 28 ++- package.json | 2 +- screenshots/browse.jpg | Bin 0 -> 215491 bytes screenshots/channelscreen.jpg | Bin 0 -> 121982 bytes screenshots/chapter.jpg | Bin 0 -> 97247 bytes screenshots/follow.jpg | Bin 0 -> 104708 bytes screenshots/player_overlay.jpg | Bin 0 -> 233047 bytes src/main/input/gamepadReader.ts | 351 +++++++++++++++++++++++++------- 9 files changed, 306 insertions(+), 96 deletions(-) create mode 100644 screenshots/browse.jpg create mode 100644 screenshots/channelscreen.jpg create mode 100644 screenshots/chapter.jpg create mode 100644 screenshots/follow.jpg create mode 100644 screenshots/player_overlay.jpg diff --git a/CLAUDE.md b/CLAUDE.md index 8166392..c8ae022 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -10,6 +10,7 @@ Twitch-Client für das Steam Deck. Electron + React, gamepad-navigierbar, Big-Sc |---|---| | Framework | Electron 33, electron-vite, React 18, TypeScript 5.5 | | Playback | hls.js 1.6 (HTML5 `