Skip to content

Linux: Xbox Series Share button appears but does not respond #110

Description

@ReenigneArcher

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.

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions