Let me first state: I am unsure if I am requesting something completely impossible from the Library/IDE or the Arduino hardware here.
My feature request:
My Arduino Due creates a 0 axes, 87 button joystick. I recently switched to ArchLinux, which has an 80 button max kernel limit.
So I divided my joystick into 3 31 button ones (one game has that as a limit) and applied the USB quirks: https://github.com/MHeironimus/ArduinoJoystickLibrary/wiki/FAQ#linux-support
In /dev/input I see 3 evdev events, and three js* links.
ETS2, a native Linux game, handles the 3 identically named Due's as separate controllers perfectly.
An old, Proton-enabled game sees all three, but disallows adding more than 1 identically named controller. Manually changing the name of this controller does not work: all Due's listed listen solely to the 31 buttons on js0 or the first event regardless of which controller I choose.
A different game sees just 1 Due. Mapping, let's say button 6 on js0 to something, and then triggering button 6 on js1 or 2, crashes joystick functionality for a while. Sometimes the game recovers and partially handles input again, sometimes it does not.
Would the library or IDE, or the hardware even support a change so that virtual joysticks get designated a number in it's device name/title?
Additional context
This is the Proton-enabled game OMSI2 that made me go with 31 buttons per joystick because the developers made a mistake. This is also the game unable to index more then 1 identically named controller.

This is the Proton-enabled game The Bus unable to index more than 1.

I have been messing with Proton versions, Wine registry keys, tried to disable joydev, evdev, SDL, HIDRAW. I tried using the Joystick_Type GamePad for the second joystick and multiaxis for the third one, but that also did not work.
You might wonder: what about input remapping.
This is also an issue: AntiMicroX can not distinguish between the controllers, even though it uses (1), (2), and (3) in the tabs. It turns out that that is merely a visual distinction: adding a mapping to a button on js3, adds it to all others.
Input Remapper was the other alternative I tried. This application behaves the same as The Bus and can only see one Arduino Due and crashes instantly upon triggering a button other than one on js0.
Let me first state: I am unsure if I am requesting something completely impossible from the Library/IDE or the Arduino hardware here.
My feature request:
My Arduino Due creates a 0 axes, 87 button joystick. I recently switched to ArchLinux, which has an 80 button max kernel limit.
So I divided my joystick into 3 31 button ones (one game has that as a limit) and applied the USB quirks: https://github.com/MHeironimus/ArduinoJoystickLibrary/wiki/FAQ#linux-support
In /dev/input I see 3 evdev events, and three js* links.
ETS2, a native Linux game, handles the 3 identically named Due's as separate controllers perfectly.
An old, Proton-enabled game sees all three, but disallows adding more than 1 identically named controller. Manually changing the name of this controller does not work: all Due's listed listen solely to the 31 buttons on js0 or the first event regardless of which controller I choose.
A different game sees just 1 Due. Mapping, let's say button 6 on js0 to something, and then triggering button 6 on js1 or 2, crashes joystick functionality for a while. Sometimes the game recovers and partially handles input again, sometimes it does not.
Would the library or IDE, or the hardware even support a change so that virtual joysticks get designated a number in it's device name/title?
Additional context

This is the Proton-enabled game OMSI2 that made me go with 31 buttons per joystick because the developers made a mistake. This is also the game unable to index more then 1 identically named controller.
This is the Proton-enabled game The Bus unable to index more than 1.

I have been messing with Proton versions, Wine registry keys, tried to disable joydev, evdev, SDL, HIDRAW. I tried using the Joystick_Type GamePad for the second joystick and multiaxis for the third one, but that also did not work.
You might wonder: what about input remapping.
This is also an issue: AntiMicroX can not distinguish between the controllers, even though it uses (1), (2), and (3) in the tabs. It turns out that that is merely a visual distinction: adding a mapping to a button on js3, adds it to all others.
Input Remapper was the other alternative I tried. This application behaves the same as The Bus and can only see one Arduino Due and crashes instantly upon triggering a button other than one on js0.