dvorak or more regional ones like bépo
The way you describe it is quite genius as it’d allow the OS to automatically remap shortcuts to stay on the same physical keys when the layout is something other than qwerty by simply mapping the keys twice.
I’d like to expand your idea with virtual shortcuts for common operations. Instead of declaring C
to mean copy, the applications would assign the copy operation to the “common copy key” which would then be controlled by the OS.
It’d likely be C
by default but the user would be able to change it in one common place for all applications.
What I meant is those virtual shortcuts are all you get, at all. The application declares the shortcuts with an optional suggested key binding for it, but it’s up to the OS to ultimately handle the keys and tell the application which shortcut is called for.
That’s exactly what Steam Input does: the game specifies actions like “player movement”, “jump”, “fire”, “look” and Steam just sends those values to the game. The game doesn’t have to implement mouse, keyboard or controller inputs at all, Steam does it all for you. In return, the game can run with controllers we’ll make 10 years from now, and the player can finally just map every single button to their liking, universally. It’s so much easier to deal with when thinking of “Ok, so A is jump” rather than “So I want to press A to jump which is X in the game”.
Applications shouldn’t have to care about how you input stuff, it’s ugly and complex, leave it to the operating environment to figure that out for you.
I was being unclear; I meant the optional suggested keybinding would be bound to virtual keys for common actions.
The goal of that is to rebind common actions globally. Without this, you’d have to change each application’s individual “copy” action to your preferred shortcut. You’d do so in the OS rather than the app but you’d still have to do it for each app individually.
Alternatively, there could be a set of pre-defined common actions that applications would simply use rather than defining their own action. I think that’s what you mean.