Skip to content

[IMPORTANT feature request]: Support multiple input_device, input_device_display_name, input_vendor_id, and input_product_id variables #16907

@davidhedlund

Description

@davidhedlund

input_device (linuxraw)

To avoid the need for uploading and maintaining multiple copies of files for linuxraw, which uses input_device to identify the controller, I propose the following:

  • Implement input_device_alt1 and input_device_display_name_alt1
  • Implement input_device_alt2 and input_device_display_name_alt2

After implementation, this can be incorporated into the android and udev autoconfiguration files as well, to significantly enhance their ability to utilize input_device as fallback when the vendor or product ID is unavailable. This feature is unnecessary for sdl2 autoconfig files because they use the same input_device value for both USB and Bluetooth across all Linux kernel versions.

Placed USB lines before Bluetooth lines in the examples below, as the input_device USB name more clearly identifies the hardware device.

Nintendo Switch Pro Controller

  • Device Index for Linux 5.19, and 6.2.0:
    • USB: Nintendo Switch Pro Controller
    • Bluetooth: Nintendo Switch Pro Controller
  • Device Index for Linux 6.8.0:
    • USB: Nintendo Co., Ltd. Pro Controller
    • Bluetooth: Pro Controller

Current

Nintendo Switch Pro Controller.cfg

input_driver = "linuxraw"
input_device = "Nintendo Switch Pro Controller"
input_device_display_name = "Nintendo Switch Pro Controller (Bluetooth/USB)"

Nintendo Co., Ltd. Pro Controller.cfg

input_driver = "linuxraw"
input_device = "Nintendo Co., Ltd. Pro Controller"
input_device_display_name = "Nintendo Switch Pro Controller (USB)"

Pro Controller.cfg

input_driver = "linuxraw"
input_device = "Pro Controller"
input_device_display_name = "Nintendo Switch Pro Controller (Bluetooth)"

Proposed merge

Nintendo Switch Pro Controller.cfg

input_driver = "linuxraw"
input_device = "Nintendo Switch Pro Controller"
input_device_display_name = "Nintendo Switch Pro Controller (Bluetooth/USB)"
input_device_alt1 = "Nintendo Co., Ltd. Pro Controller"
input_device_display_name_alt1 = "Nintendo Switch Pro Controller (USB)"
input_device_alt2 = "Pro Controller"
input_device_display_name_alt2 = "Nintendo Switch Pro Controller (Bluetooth)"

Nintendo Switch Pro Controller (non-HID)

  • Device Index for Linux 5.15:
    • USB[1]: Nintendo Switch Pro Controller
    • Bluetooth: Pro Controller

Notes:

  • 1: Only Bluetooth is avalible for the non-HID version. So there is no need to merge anything.

Sony DualSense

  • Device Index for all Linux versions:
    • USB: Sony Interactive Entertainment DualSense Wireless Controller
    • Bluetooth: DualSense Wireless Controller

Current

Sony Interactive Entertainment DualSense Wireless Controller.cfg

input_driver = "linuxraw"
input_device = "Sony Interactive Entertainment DualSense Wireless Controller"
input_device_display_name = "Sony DualSense (USB)"

DualSense Wireless Controller.cfg

input_driver = "linuxraw"
input_device = "DualSense Wireless Controller"
input_device_display_name = "Sony DualSense (BlueTooth)"

Proposed merge

Sony Interactive Entertainment DualSense Wireless Controller.cfg

input_driver = "linuxraw"
input_device = "Sony Interactive Entertainment DualSense Wireless Controller"
input_device_display_name = "Sony DualSense (USB)"
input_device_alt1 = "DualSense Wireless Controller"
input_device_display_name_alt1 = "Sony DualSense (BlueTooth)"

Sony DualShock 4 v2

  • Device Index for all Linux versions:
    • USB: Sony Interactive Entertainment Wireless Controller
    • Bluetooth: Wireless Controller

Current

Sony Interactive Entertainment Wireless Controller.cfg

input_driver = "linuxraw"
input_device = "Sony Interactive Entertainment Wireless Controller"
input_device_display_name = "Sony DualShock 4 v2 Controller (USB)"

Wireless Controller.cfg

input_driver = "linuxraw"
input_device = "Wireless Controller"
input_device_display_name = "Sony DualShock 4 v2 Controller (BlueTooth)"

Proposed merge

Sony Interactive Entertainment Wireless Controller.cfg

input_driver = "linuxraw"
input_device = "Sony Interactive Entertainment Wireless Controller"
input_device_display_name = "Sony DualShock 4 v2 Controller (USB)"
input_device_alt1 = "Wireless Controller"
input_device_display_name_alt1 = "Sony DualShock 4 v2 Controller (BlueTooth)"

input_vendor_id, and input_product_id (android, udev, sdl2)

  • Implement input_vendor_id_alt1 and input_vendor_product_alt1 so we can:
    • Merge DualShock 4 versions 1 and 2 — this task has been on my agenda.
    • Merge Microsoft X-Box pad versions 1 (US) and 2 (US) — thank you for highlighting this.

DualShock 4 v1 and v2

android

Merge Sony Computer Entertainment Wireless Controller.cfg (v1) and Wireless Controller.cfg (v2)

Current

DualShock 4 v1: Sony Computer Entertainment Wireless Controller.cfg

input_driver = "android"
input_device = "Sony Computer Entertainment Wireless Controller"
input_device_display_name = "Sony DualShock 4 Controller v1"
input_vendor_id = "1356"
input_product_id = "1476"

DualShock 4 v2: Wireless Controller.cfg

input_driver = "android"
input_device = "Wireless Controller"
input_device_display_name = "Sony DualShock 4 v2 Controller"
input_vendor_id = "1356"
input_product_id = "2508"

Proposed merge

DualShock 4.cfg

input_driver = "android"
input_device = "Wireless Controller"
input_device_display_name = "Sony DualShock 4 v2 Controller"
input_vendor_id = "1356"
input_product_id = "2508"
input_device_alt1 = "Sony Computer Entertainment Wireless Controller"
input_device_display_name_alt1 = "Sony DualShock 4 Controller v1"
input_vendor_id_alt1 = "1356"
input_product_id_alt1 = "1476"

sdl2

Merge PS4 Controller (v1).cfg (v1) and PS4 Controller.cfg (v2)

Current

DualShock 4 v1: PS4 Controller (v1).cfg

input_driver = "sdl2"
input_device = "PS4 Controller"
input_device_display_name = "PlayStation 4 (PS4) Sony DualShock 4 v1 Controller"
input_vendor_id = "1356"
input_product_id = "1476"

DualShock 4 v2: PS4 Controller.cfg

input_driver = "sdl2"
input_device = "PS4 Controller"
input_device_display_name = "PlayStation 4 (PS4) Sony DualShock 4 v2 Controller"
input_vendor_id = "1356"
input_product_id = "2508"

Proposed merge

PS4 Controller.cfg

input_driver = "sdl2"
input_device = "PS4 Controller"
input_device_display_name = "PlayStation 4 (PS4) Sony DualShock 4 v2 Controller"
input_vendor_id = "1356"
input_product_id = "2508"
input_device_alt1 = "PS4 Controller"
input_device_display_name_alt1 = "PlayStation 4 (PS4) Sony DualShock 4 v1 Controller"
input_vendor_id_alt1 = "1356"
input_product_id_alt1 = "1476"

udev

Merge Sony Computer Entertainment Wireless Controller.cfg (v1) and Sony Interactive Entertainment Wireless Controller.cfg (v2)

Current

DualShock 4 v1: Sony Computer Entertainment Wireless Controller.cfg

input_driver = "udev"
input_device = "Sony Computer Entertainment Wireless Controller"
input_vendor_id = "1356"
input_product_id = "1476"

DualShock 4 v2: Sony Interactive Entertainment Wireless Controller.cfg

input_device = "Sony Interactive Entertainment Wireless Controller"
input_device_display_name = "Sony DualShock 4 v2 Controller"
input_driver = "udev"
input_vendor_id = "1356"
input_product_id = "2508"

Proposed merge

Sony Computer and Interactive Entertainment Wireless Controller.cfg

input_device = "Sony Interactive Entertainment Wireless Controller"
input_device_display_name = "Sony DualShock 4 v2 Controller"
input_driver = "udev"
input_vendor_id = "1356"
input_product_id = "2508"
input_device_alt1 = "Sony Computer Entertainment Wireless Controller"
input_device_display_name_alt1 = "Sony DualShock 4 v1 Controller"
input_vendor_id_alt1 = "1356"
input_product_id_alt1 = "1476"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions