Alright so I been daily driving Linux for a couple months now and it’s been pretty smooth going.
Today I felt nostalgic and wanted to play Dark Souls 2. And it absolutely didn’t recognize my controller. This is the first time I had such an issue with the Steam Controller and I didn’t know what to do.
Tried the usual suspects but nothing, and i had to give up. I tried googling, found no results, uninstalled. But I wasn’t happy, so I googled again and found the solution.
Apparently my Keychron keyboard is the issue? So quick exception added and it works. Still wondering why this isn’t an issue in any other game tho…
Thanks for drawing attention to this. I’ve been having issues with finicky gamepad hotplugging of late and I suspect this is the cause.
Back when I was on windows, Elden Ring wouldn’t recognize my controller. No matter what I did, nothing worked and I was going insane. Eventually I used steam input to make my controller make keyboard inputs, worked pretty well. I was able to get through a lot of the game that way until it beat the willpower out of me and I stopped playing lol
Can you explain what you mean by added a quick exception?
I have the same problem on the same game due to the same hardware.
I came up with a bulky solution, which is to launch a script that disconnects my keyboard for a bit; just to allow enough time to launch DS2. Then it reconnects the keyboard so normal function is resumed
Can you expand on your solutions so I can see if its better?
If anyone is interested in my super basic scripts, let me know and I’ll share them.
First do
lsusb | grep -i keychronand then plug the ID that it returns into the following launch options for the game on Steam:
SDL_GAMECONTROLLER_IGNORE_DEVICES=0x<ID>/0x<ID> %command%
The first ID is probably going to be 3434 since that’s the manufacturer ID for Keychron.Thank you; thats a much better solution than mine.
And keyboard works fine if you need it also
It’s quite common thing for keyboards, see this as an example.
Yep, I had to do this for my Ducky TKL keyboard.
See if you can tell if your box is reading your keyboard as a joypad. Mine was doing that and it would take 1st player slot on some games like rain world. It was also picking up my puck as a virtual Xbox controller for some reason. You can set it in like udev to not recognize it like that. Not sure if thats the issue but I had something similar with my qmk kbd75 rev2 and thats what I had to do.
Yea apparently according to the Steam guide I found Keychron keyboards are detected as joysticks so it would take priority over the SC.
What confuses me tho is why especially this brand and why only in this game?
Eh I guess don’t look a gifted horse in the launch options or somethingLol its the microcontroller used I think? For whatever reason it registers in udev as a joypad as well as a keyboard. Its a simple edit in udev to get it fixed but I only did it once in my life so its not in my memory. If you want I can paste my udev edit when I get home tonight.
Thanks but I can figure it out myself. (Prolly am gonna forget about this tho until it becomes an issue again).
Feel free to hit me up when it does bother you again. I didnt fix mine until I had to.
Could you post your solution here when you get the time? Don’t have the issue, but would love to know how udev was used to solve the issue for if I ever encounter the problem myself.
Sure but it is per device, I am basically telling my system “this is not a joypad”. Its just a rule in udev. You’d need to get these values from your own device. Each vendor and product will have one.
# KBD75 Rev2 SUBSYSTEM=="input", ATTRS{idVendor}=="4b42", ATTRS{idProduct}=="6061", ENV{ID_INPUT_JOYSTICK}=""Thank you for the example. I have the same keyboard brand too so definitely nice to have. I think I can use lsusb to find my values.
At least on the Hall effects boards you can literally use them as a controller/joystick.
I recall running into this issue as well. Ended up just unplugging my keyboard before booting up the game lol.
My understanding is that it isn’t a linux problem, but a problem with Dark Souls 2 specifically. Like I’m pretty sure Windows users encounter this too.
I’m a Windows user (though I’m Linux curious) and this seems like a common issue in From Soft games. Sekiro prefers to use my cheap USB foot pedal as controller one over anything.
Is it a magnetic switch Keychron? They have a feature where it can work as analogue input because it can sense how deep the keys are pressed, and it may be emulating a gamepad to do this and taking priority over your main controller
No lol I wish. At least then I could understand why this happens. Although as another commenter pointed out Keychron might be using the same chips for all keyboards so maybe mine has the functionality built in despite not being magnetic and that might be the issue.
Hello, I have had a “similar” issue. In my case a program didn’t recognise my controller as the first one because my motherboard’s led controller (!!!) pretended to be a controller.
One very good and useful thing you can do is:
- Verify that is really the problem, use
udevadm info <device path>and see if it hasID_INPUT_JOYSTIC=1or something similar. - Write an udev rule to unset the variable (e.g.
ID_INPUT_JOYSTIC=) to remove the 1 without actually setting it to 0 - Send the rule to systemd in an issue so they add it to a list of known hardware quirks. This way everyone with your keyboard will get the fix
- Verify that is really the problem, use
Peripherals can be finicky on Linux since drivers like to fight for priority.
Slightly related: if you’re using Wayland you may also want to make rule exceptions for controllers/remote input. That pop up box is annoying to track down and re-confirm every 15 minutes when you’re not in the same room.
Once it’s sorted it’s smooth sailing though and no surprise 30 minute restarts a la Windows :)
On KDE so that popup box isn’t a problem anymore. It would ask if the SC is allowed to remote control every time I connected it but with KDE 6.7 I think it rembers that now and it’s no issue anymore.
I had a similar weird thing with deltarune. Steam controller was listed as second controller on launch(first was steam deck controls), but when booting the controls got swapped. Deltarune was expecting to use the second controller instead of the first though? Had to swap them manually in the steam OS menu but worked fine after that. Very odd.
I have not had any issues of significance. Certainly not more than I had with windows. I don’t use a controller though or anything. Im a pretty vanilla user.
I’ve had a whole set of weird issues with controllers, not long ago I had 2 games “break” my controller configs in 2 different ways =w=
Never had anything that took long to fix thankfully, but I can definitely relate on some level lol








