I think if the intent is to build the best couch gaming experience in Linux you’d be better off building from scratch rather than forking or contributing to other software with the option to import/sync with GameHub or Lutris etc.
I can’t speak for all but I have been dying for something like this for a while and would gladly donate to such a product. I think you have a really well layed out plan that includes everything a user could want from this type of experience. Best of luck to you!
Also maybe checkout AntimicroX to see how that capture and use controller inputs. I use it often and have never though of it as a keylogger. Could maybe even just have it as an optimal dependency.
Pretty sure https://github.com/AntiMicroX/antimicrox works on wayland now, so it's possible. Don't know the details though.
My main issue is the lack of VRR, though. And I also run a lot of old games on wine that change the resolution, so modesetting (or faked modesetting as in proton) needs to be supported in wine if it isn't already. There are definitely gaps in Wayland still.
Well the Deck isn't out yet but if it works on Linux now so it will definitely work on the Deck when using a mouse and keyboard.
And Blizzard has actually done some work to make their games run well in Wine.
Does WoW have controller support though? I only use Battle.net for Starcraft and I think lack of controller support could be the only potential problem. If it doesn't work out of the box, there's a nifty program called AntiMicroX that remaps controller inputs to what the game expects.
AntiMicroX is a graphical program used to map gamepad keys to keyboard, mouse, scripts and macros. You can use this program to control any desktop application with a gamepad on Linux. It can be also used for generating SDL2 configuration (useful for mapping atypical gamepads to generic ones like xbox360).
Link for repo:
https://github.com/AntiMicroX/antimicroX
Flathub/Flatpak:
flatpak install flathub io.github.antimicrox.antimicrox
https://github.com/chrippa/ds4drv does it for DS4s. Maybe it can be adapted for DS3s. I would stay in userspace, it ought to be less turbulent. Not sure if ds4drv
has turbo button functionality, but it ought to be implementable. https://github.com/AntiMicroX/antimicrox/search?q=turbo seems to have something like that.
Remember to share your results.
If you still can't get it to work, try this program. https://github.com/AntiMicroX/antimicroX It lets you map joycon controls to keyboard controls. Just follow the flatpak installation section in the readme than reboot and open the app.
Haven't tried that one so not sure how to actually fix.. that said, have you confirmed it is picked up by wine?
From wine pfx dir, run WINEPREFIX="$(pwd)" wine64 control
( or using ... wine control
if you installed as 32-bit prefix). Most of the time I have used this was actually for trying to disable hard-coded controller mapping so I could use a gamepad-to-keyboard rebinding tool (btw for anyone interested in disabling controller, wine control
didn't work for that for me; instead search for Enable SDL
or see my notes on it on github). That could at least rule out whether wine see the controller or not.
Worst case, if you can't get it, you could always use the excellent antimicrox to remap to keyboard / mouse.
You should not use x360ce, it's obsolete and buggy on Linux. On Linux I'm using antimicrox, it's worth to try https://github.com/AntiMicroX/antimicrox
It's a native application.
I just found a solution for Bluetooth it's not really perfect but it works. First connect your switch controller to the HID in your Bluetooth settings. You shouldn't get any response from your controller but that's OK. When I said you don't get a controller input its not necessarily true. Afaik most programs just don't see it. Next install a program called AntiMicro. This program allows you to assign keys to your controller input and this software does see your controller's input. Here the link for the git hub page scroll down for the downloads. Here a link to a video that gives a full in depth explanation of the program.