The Steam Controller Configurator's Untapped Power
Our input APIs are full of poor assumptions, lackluster abstractions and arbitrary boundaries.  It could&#x27;ve been fixed decades ago, but nobody seems to have cared.  Instead, we&#x27;re retrofitting on top of retrofitting and it&#x27;s not clear that we&#x27;ll ever replace the lower layers with a sane API instead of just hiding the shit under yet another layer.<p>I should be able to bind any button that sends a signal my computer can understand -- to any application, any action.  It should not matter whether it&#x27;s a keyboard button, a mose button, a mose thumb button, a joystick button, or my belly button... as long as a driver can detect the signal, the code to make arbitrary buttons bindable is <i>trivial</i>, yet people have just looked at the physical objects the buttons are placed on, and then draw an API for each object, with built in assumptions.<p>This is how we get mice that also report themselves as an USB keyboard, and half the thumb buttons do not work in most applications (becaues they&#x27;re reported as mouse buttons by default and handling more than 3 or 5 mouse buttons seems to require higher intelligence) and, well, the other half overlap with keyboard keys I&#x27;d prefer to use for different functions.<p>It&#x27;s nice that someone&#x27;s working on this but I feel like this steam configurator is yet another proprietary layer, a hack on top of hacks, and so people just lazily depend on it.