Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

udev rules make steam fail to recognize controllers #142

Open
ngraham20 opened this issue Jun 23, 2024 · 6 comments
Open

udev rules make steam fail to recognize controllers #142

ngraham20 opened this issue Jun 23, 2024 · 6 comments

Comments

@ngraham20
Copy link

I installed joycond per the instructions, but once it was installed, Steam no longer could see the controllers. This was only resolved when I uninstalled joycond manually, and specifically when I removed the udev rules that joycond creates.

@TheRamsWay
Copy link

Seems to be by design, since in 89-joycond.rules, the first 5 lines are meant to block Steam.
However, this doesn't only break Steam but also SDL's ability to merge the buttons-only and motion-only devices, for example causing Ryujinx to be unable to use motion controls on Pro Controllers. Commenting out line 3 and 5 of that file seems to let both joycond and SDL work as they should.
If I remember correctly, Steam has some settings to disable Steam Input on Nintendo controllers anyway, meaning that joycond shouldn't really need to hide them from it. They could probably just be removed.

@ngraham20
Copy link
Author

Steam has some settings to disable Steam Input on Nintendo controllers anyway

Why would you want to disable Steam Input though, isn't the fact that Steam can handle any controller a good thing?

@sp1ritCS
Copy link

sp1ritCS commented Jul 3, 2024

Why would you want to disable Steam Input though, isn't the fact that Steam can handle any controller a good thing?

I believe the reasoning is to avoid issues that occur in games that detect both the virtual steam input controller and the one from hid-nintendo/joycond, resulting in multiple connected controllers from the perspective of the game (they often don't let you disable one), even tho both of them are the same physical device.

Depending on what buttons you press during registration to joycond, it either lets steam recognize it or not. But it has issues with the gyro.

@TheRamsWay
Copy link

TheRamsWay commented Jul 3, 2024

Why would you want to disable Steam Input though, isn't the fact that Steam can handle any controller a good thing?

I think you misunderstood what I said. Steam Input isn't a good or a bad thing, but making it impossible to use directly is something that joycond seems to do intentionally, probably because of what @sp1ritCS said.
What I'm suggesting is that it shouldn't be joycond's concern whether or not Steam Input works correctly, as it's breaking other programs while doing so, and that it should be up to the user to disable Steam Input if it doesn't work.

@blaasrg
Copy link

blaasrg commented Jul 17, 2024

how do you remove the udev rules that joycond creates?

@TheRamsWay
Copy link

Edit /usr/lib/udev/rules.d/89-joycond.rules and comment out the two lines starting with KERNEL=="hidraw*" at the beginning of the file. Or delete the file but removing only those two lines seems to be enough, I haven't tested deleting the whole file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants