The physical mechanism that causes stick drift exists in all controllers that use resistance of electrical signals instead of something like hall effect sensors. If you have metal sliding over metal, it’s going to degrade over time. It’s very possible the early controllers had stick drift, it just wasn’t noticeable because it was so bad that every early console just had horribly large dead zones. Only the Sega Saturn and Dreamcast used hall effect joysticks back then and that never caught on. So I guarantee that with enough time, a Dual Shock controller would also develop stick drift.
And sometimes things like this are just a thing that happen when you miniaturize electronics. An xbox controller does a LOT more than an atari 2600 controller did, in less space. Cramming more stuff into less space means everything has to be tinier. and when you have abrasive metals rubbing against each other, and the metal is thinner, it’s going to wear out faster. They’ve flown too close to the sun in some cases and they wear out WAY too fast. Which is a widespread problem but not so widespread that there are no working controller. Clearly what they are doing still works.
This isn’t nearly as much of planned obsolescence as you would think. They just release a new generation of console and make it not backwards compatible with older controllers for that. This is just that as things get more complex, they become more fragile. I would much rather play Elden Ring on an xbox controller that might get stick drift than an atari 2600 joystick.
Which version of of SDDM (and presumably KDE) are you using?
One of the comments one of those threads you linked points out that the bugs you’re sharing are for has changed.
PlasmaExtras.PasswordField
has the button enabled! However, the implementation in the theme explicitly disables it.If you open up
/usr/share/sddm/themes/breeze/Login.qml
and scroll down to line 106. You’ll seerightActions: []
– this bit of code basically overrides the default behavior. It says "normally you have some actions here, but instead use this list, but [] is an empty list.So if you just comment that line out by adding
//
to the front of it… Everything should just work, since it will then revert back to using the built in value.However, the reason this was removed in the first place is in a comment on line 105:
// Disable reveal password action because SDDM does not have the breeze icon set loaded
If the icon set fails to load for whatever reason (if youre using a custom icon theme or something, i dunno why it might not be loaded), the button will fail to load again.
You can test drive the SDDM lockscreen by running
sddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/breeze/
from the terminal.And this all assumes that you’re using the default breeze theme. If you are trying to use a different theme, not sure if any of this applies.