Summary
The Xbox Series Share button is exposed by the Linux uinput/evdev backend, but
pressing it does not register in Steam's controller tester.
This is the Linux-specific counterpart to #106. That issue covers the separate
Windows Virtual HID Driver behavior, where Steam does not expose the Share
button at all.
Tested path
- Client: Moonlight Qt
- Host application: Sunshine
- Host OS: CachyOS Linux
- Virtual profile: Xbox Series
- Test application: Steam controller tester
Standard buttons, sticks, triggers, and rumble work. Steam displays the Share
button on Linux, but its state does not change when the physical Share button is
pressed.
Current implementation
The uinput backend maps GamepadButton::misc1 for the Xbox Series profile to
KEY_RECORD and emits that evdev key state. The end-to-end result suggests that
the event code, virtual-device identity, or consumer mapping is not sufficient
for Steam/SDL to recognize the Xbox Series Share input.
Relevant code:
src/platform/linux/uhid_backend.cpp: uinput_misc1_button()
src/platform/linux/uhid_backend.cpp: UinputGamepad::emit_button_state()
Expected behavior
The Xbox Series Share button should register as the Share/capture input in
Steam and other Linux gamepad consumers.
Acceptance criteria
- Pressing and releasing
GamepadButton::misc1 registers as the Xbox Series
Share/capture input on Linux.
- Existing Xbox Series buttons and axes retain their current mappings.
- Automated Linux backend coverage verifies the chosen evdev or HID mapping.
- Public compatibility documentation is updated after the fix is validated.
Summary
The Xbox Series Share button is exposed by the Linux uinput/evdev backend, but
pressing it does not register in Steam's controller tester.
This is the Linux-specific counterpart to #106. That issue covers the separate
Windows Virtual HID Driver behavior, where Steam does not expose the Share
button at all.
Tested path
Standard buttons, sticks, triggers, and rumble work. Steam displays the Share
button on Linux, but its state does not change when the physical Share button is
pressed.
Current implementation
The uinput backend maps
GamepadButton::misc1for the Xbox Series profile toKEY_RECORDand emits that evdev key state. The end-to-end result suggests thatthe event code, virtual-device identity, or consumer mapping is not sufficient
for Steam/SDL to recognize the Xbox Series Share input.
Relevant code:
src/platform/linux/uhid_backend.cpp:uinput_misc1_button()src/platform/linux/uhid_backend.cpp:UinputGamepad::emit_button_state()Expected behavior
The Xbox Series Share button should register as the Share/capture input in
Steam and other Linux gamepad consumers.
Acceptance criteria
GamepadButton::misc1registers as the Xbox SeriesShare/capture input on Linux.