LizardByte / LizardByte/libvirtualhid

Linux: Chromium misremaps Xbox Series axes and triggers for virtual 045e:0b13 device

Đang mở
#84 0 bình luận 0 reaction 1 người được giao Xem trên GitHub

@LizardByte-bot đang làm issue này rồi.

Từ ngày 15/8/2026.

Ngôn ngữ chính
C++
Star
54
Fork
15
Merge trung bình
11 giờ 32 phút
Pull request đã merge (30 ngày)
34

Mô tả

Environment

  • Host OS: Linux
  • Virtual controller provider: libvirtualhid through Sunshine
  • Profile: Xbox Series
  • Browser: Chromium
  • Reported identity: Sunshine (libvirtualhid) X-Box Series Controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)
  • Tester: https://app.lizardbyte.dev/gamepad-tester/

Observed behavior

Chromium applies the following incorrect routes:

  • LT controls right-stick X.
  • RT controls LT.
  • Right-stick Y controls RT.
  • Right-stick X controls right-stick Y.

The same controller works correctly in Steam's controller tester. Firefox does not show this axis/trigger routing failure.

Source-level explanation

The Linux uinput backend deliberately presents the Xbox Series profile as Bluetooth 045e:0b13, while emitting canonical Linux/XInput-style axes:

  • ABS_X, ABS_Y
  • ABS_RX, ABS_RY
  • ABS_Z, ABS_RZ

Chromium selects its physical Xbox Series Bluetooth mapper for 045e:0b13. That mapper expects the physical Bluetooth joydev ordering rather than the ordering produced by the virtual uinput device. The reported four misroutes correspond directly to that mismatch.

Chromium source:
https://chromium.googlesource.com/chromium/src/+/HEAD/device/gamepad/gamepad_standard_mappings_linux.cc

Expected behavior

Chromium should expose standard Gamepad API controls with:

  • LT and RT on buttons 6 and 7.
  • Right-stick X/Y on axes 2 and 3.
  • Share on button 17.

Constraints

Steam compatibility is the priority and currently works. Do not reorder the Linux backend's emitted axes merely to satisfy Chromium without proving Steam and Firefox remain correct. Evaluate a consumer-safe transport identity or an exact browser/tester normalization path. Keep Windows behavior unchanged.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.