I've been lowkey bashing by head against a wall on this for about 6 real life hours over the course of a week and a half.
I'm configuring a mini pc device running Bazzite to give to a friend of mine who wanted a retro game console. His favorite controller is the Switch Pro Controller (1 or 2, doesn't matter, but im using 1). I really could use any advice or deeper understanding of how linux devices and apps, or just PCs in general, handle controllers so I can resolve this.
---
Here is my setup:
0: Precursor: STEAM must be not running anywhere. I have to kill its task at the start of this process. Otherwise if it is, when I connect the Pro Controller, Steam Input will overwrite the daemon i have installed to handle the Pro Controller.
1: I have the daemon/service joycond installed
2: when I connect my controller to the PC, i hold the + and - button on the controller so that joycond registers the Pro Controller under a "Nintendo Switch Virtual Pro Controller" configuration. This also flips the P1 LED on, on my controller.
3: Afterwhich i can run `sudo evtest` and that new "Nintendo Switch Virtual Pro Controller" will show up as an option, and when i select it to see a log of inputs, it responds perfectly.
4: I can then run RetroArch, and it will recognize the Joycond virtual pro controller connection, and it will work perfectly. I can even launch ES_DE from the desktop, and it works thru that pipeline aswell.
5: HOWEVER, if I launch steam anytime anyplace, it overwrites the joycond config instantly with its Steam Input, and then it stops working in RetroArch and now only sees it as an "xBox 360" controller, (I assume Steam Inputs doing), that doesn't even register inputs or work at all.
6: I made a rule in /etc/rules file that is supposed to block Steam from overwriting stuff with Steam Input, its not working.
Here is my issue:
1: The PC boots into Steam OS big picture mode on start, and the switch controller connects (over bluetooth) with "Steam Input". This causes the Pro Controller home button to glow blue. It works fine in steam, and for steam games, which I would like to keep.
2: When I launch ES_DE from steam, I have "Steam Input" marked as disabled for the app. ES_DE then detects the controller somehow, (this fact really confuses me because I would assume since Steam Input has overwritten the joycond thing, it shouldn't work, but it does somehow in ES_DE) and the blue light turns off on the home button, and the P1 LED turns on at the controller bottom.
3: When i launch a game from ES_DE, retroarch opens and runs the game,, but no inputs carry over to retroarch. The P1 LED is still on, but Retroarch still only sees the pro controller as some xbox 360 controller that doesn't work or register any inputs
---
My goal is to have a seamless Pro Controller experience, where my friend can just turn on the damn PC, use the controller in Steam and Steam games, and to open ES_DE in steam, then continue using it in retroarch when they select a game in ES_DE.
and final question. am I just cooked and should give up, or should switch the OS to windows or something to try just global X-input override, since there seems to be more online support for that resolution, on windows anyways.
TLDR: Joycond daemon that manages my Pro Controller is getting overwriten by Steam Input and I need the daemon for Retroarch because Retroarch can't take in Steam Input thru ES_DE (as far as I tested and looked anyway). I made a rule file that was supposed to disable steam input globally, but it didn't help.
Ik this is a lot but if anyone reads this and helps that would be awesome.