My first problem ever with Linux was peripherals support, about 20 years ago: it would not recognize my cheap mouse from a local company and the next day I was out to buy my first fancy input device, a Microsoft mouse that a Linux forum recommended. It was worth the money, it lasted me almost a decade and had a solid warranty.
Another problem that haunted my Linux earlier experiences was software dependent hardware. I said earlier, sorry, I still commit those mistakes, like a few years ago, I got a Sound BlasterX G6 on sale without reading the small print - you still needed a Windows device for initial setup and subsequent settings changes.
As far as current gamepads go, PlayStation’s DualSense is still a king in my book.
It connects to my Linux machines without a problem, all features I use like gyro and trackpad are detected without an issue, and Steam has ample support for configuration, including the LED lights. A friend advised me against buying them because of battery life, but I never experienced the problems he mentioned. Maybe I got a revised version?
Stick Drift - The Killer of Controllers
The problem is how fast this kind of stick starts to drift or register wrong inputs. Some, like the DualSense, lasted about a year, while Razer is at the low end, barely lasting 6 months.
I noticed that overtime I had to increase the dead zone in the settings to prevent the stick pulling to one side either when nothing is pressed, or when I release the stick after flicking to the other side.
Analog Sticks uses potentiometers to measure the position of the stick, by depending on contact between parts it can get affected by many things, from the erosion coming from use to dust particles. Opening up the controller and cleaning the sticks can be a way to extend its life, as long as the contacts are not damaged.
It was the major issue I had with every single gamepad I had in the past - well except for the DreamCast’s controller.
Enters Hall Effect
While deciding if I would replace just the sticks, I learned about replacement sticks with Hall Effect - sadly those replacement parts are not ready for DualSense yet, the options out there come with a lot of noise and need the help of PCBs to calibrate, and the results are subpar. On the other hand, you can find good ones for Steam Deck.
Contrary to regular Analog Sticks, Hall Effect sticks uses magnetic fields to measure the position. Without the need for contact, it is less susceptible to dust and erosion, and if properly made, will outlast other options.
After seeing this kind of stick being recommended in many communities, I decided to give it a go, but… which one will work with Linux?
There are many options out there, and if you are looking into options, read the small print, some companies offer the same controller with and without Hall Effect - sometimes at the same price.
I could not find any Linux articles on the subject, except for a few reviews of products, sometimes people saying it works and that it does not work on Linux with just a few months between them.
One terrible thing while looking into those controllers is the amount of fake reviews on Amazon, while this is widespread across the store, it was interesting seeing how many reviews for controllers are just the product page reworded without any meaningful information.
After reflecting a bit about all the options, I decided to give GameSir T4 Kaleid a try.
GameSir T4 Kaleid
The main reason I decided on this gamepad over others was the price. It was cheaper than any other controller with Hall Effect, and also cheaper than standard Xbox and PlayStation controllers. It also had a few product reviews saying it works on Linux.
Another positive point, it comes with a 6-axis gyro, an essential feature for me as it makes a lot of difference when playing simulators and shooters.
Lastly, it appears that you can configure it without software, just by pressing key chords on the controller. From the lights to controller modes.
The shoulder triggers also uses Hall Effect, they can be set for either hair trigger or analog modes. And the face buttons, ABXY, uses mouse-like microswitches. Shoulder buttons and D-PAD feel conventional, similar to the Xbox controller, and I did not read anything special about them.
The controller uses a cable - it is not wireless. While it is not a problem for me, it might not fit many people’s setup. It’s supposed to support 1000Hz polling rate.
Out of the box, the controller looks nice, I like seeing the PCB, but I am not a fan of RPG lights - waste of electricity. The provided cable is USB-C to USB-A braided cable 2 meters long. It is fine, but the product page says just USB-C.
On your hand, the transparent plastic feels like a cheap toy, and gets smudged easily. On the back, the part where you grip is textured to stick better to your hands - it is not as nice as the DualSense, but it grips well and the shape fits comfortably on your hands.
The buttons and sticks feel nice to touch, and you can see the vibration devices spinning. The button quality is fine, and the mouse-like click they make grew on me, it feels like an improvement from the membranes I was used to.
The analog sticks and shoulder trigger also feel nice, with a nice resistance to it, but it feels a bit less frictiony, not sure if because of the Hall Effect components, or because they are new compared to my older controllers. I will bet on the latter because they feel closer to the new Steam Deck OLED than my 6 years Logitech F310 (that was always firmer).
Plugging to your computer lights up the controller, showing the lateral RPG lights, you can disable using button chords. That was the problem number one: changing light strength or turning lights off with chords will reset when unplugged, so I had to turn off the lights every time I plugged it in.
Another light that turns on is the logo, and several colors show the current controller mode. They are 4: Android (basic input), Xinput (mimics an Xbox controller), Switch (for the Nintendo device) and Dinput (mimics a PlayStation DualShock4).
It is supposed to detect your device when you plug it in. With Linux it ended up with the Xinput color, green. It works fine for most games, I could reduce the dead zone by a lot, it helps a lot with input time in games like For Honor, and the precision is slightly better than common analog sticks.
Again, it is subjective because I do not have any new, out of the box potentiometric analog stick to compare, the newest controller I have is 1 year old DualSense my friends use when visiting. The real precision test would be to check the degradation 1 year from now.
However, there is no support for Gyro with Xinput. So I tried to use other modes to solve that issue.
Right of the bat, “Switch” mode froze my computer. After restarting and searching around, I found some people with similar experiences, while others a few months down the line did not experience that. After some tests, I discovered it was the firmware version.
Sadly, when I suspected that was the problem, I could not find a way to update the firmware without their Windows software. To make meters worse, while their manual and product page says you can download it from the website, now there is only a link for the Windows Store. And the nail in the coffin was not being able to install it by using Lutris or Bottles.
Thanks to some people’s comments around the web, I was able to find the original download version of their app download link here / alternative link, and spin a Windows machine to customize the controller.
With the software, I could set the polling rate to 1000Hz, permanently disable the RGB (or choose a better color combination if you are into this) and update the firmware.
The new firmware allowed me to set the mode to Switch from Xinput without freezing my Linux, and make use of the Gyro with one caveat. The shoulder triggers would not work as analog, a downside for racing games.
It seems that only the Dinput allows you to have both, sadly, the mode does not work on Linux with the current firmware. Debugging shows a message about failing to retrieve report id 18 -more details. I will update this post if I ever figure out how to get the Dinput working.
Handcaped by its own software.
Again, I committed the mistake of not properly reading the fine print, well, more like finding what information they don’t want us to see.
While many features can be configured through button chords, there are many more good things hidden behind their Windows App. You might want to avoid it unless you have a Windows environment to set it up to your taste and avoid counting on luck to receive it with a proper firmware.
Overall, it is a good controller and I have been enjoying it for some games. And I am not that upset with the problems because even with just Xinput it was still ~15% cheaper than other controllers with Hall Effect in my region. Probably the best cost benefit if you are willing to put the work on it.