[PR #531] fix(uinput): make virtual pads visible to libudev consumers at hotplug #506

Open
opened 2026-10-15 13:01:05 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/wolf/pull/531
Author: @avgoor
Created: 10/6/2026
Status: 🔄 Open

Base: beta ← Head: fix/udev-js-hwdb-followup


📝 Commits (1)

  • 95b2afd fix(uinput): make virtual pads visible to libudev consumers at hotplug

📊 Changes

2 files changed (+36 additions, -24 deletions)

View changed files

📝 src/core/src/platforms/linux/uinput/joypad.cpp (+25 -24)
📝 tests/platforms/linux/inputtino.cpp (+11 -0)

📄 Description

This is an attempt to fix #530.

Chromium/Electron apps (e.g. Heroic) could not see wolf's virtual gamepads until the pad was unplugged and replugged. uinput joypads (Xbox/Switch) wrote the /run/udev/data DB entry only for the event node, but Chromium's GamepadService discovers pads via the js (joydev) node and requires its ID_INPUT_JOYSTICK property at startup enumeration.

Warning! The fix is completely vibecoded, so I don't really know if it's up to the current standards for wolf. Maybe it's worth using only as an example to get the issue properly solved. I've tested the patch with my gamepads (some noname ones) in my setup with Steam and Heroic, it works for me.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/wolf/pull/531 **Author:** [@avgoor](https://github.com/avgoor) **Created:** 10/6/2026 **Status:** 🔄 Open **Base:** `beta` ← **Head:** `fix/udev-js-hwdb-followup` --- ### 📝 Commits (1) - [`95b2afd`](https://github.com/games-on-whales/wolf/commit/95b2afd9c766109eb9fbecb7332630d6c0c1f6a6) fix(uinput): make virtual pads visible to libudev consumers at hotplug ### 📊 Changes **2 files changed** (+36 additions, -24 deletions) <details> <summary>View changed files</summary> 📝 `src/core/src/platforms/linux/uinput/joypad.cpp` (+25 -24) 📝 `tests/platforms/linux/inputtino.cpp` (+11 -0) </details> ### 📄 Description This is an attempt to fix #530. Chromium/Electron apps (e.g. Heroic) could not see wolf's virtual gamepads until the pad was unplugged and replugged. uinput joypads (Xbox/Switch) wrote the /run/udev/data DB entry only for the event node, but Chromium's GamepadService discovers pads via the js (joydev) node and requires its ID_INPUT_JOYSTICK property at startup enumeration. **Warning!** The fix is completely vibecoded, so I don't really know if it's up to the current standards for wolf. Maybe it's worth using only as an example to get the issue properly solved. I've tested the patch with my gamepads (some noname ones) in my setup with Steam and Heroic, it works for me. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/wolf#506
No description provided.