My real "tutorial" was created today ! ... i just provide a quick answer to those wanted to support in games the most commonly used international keyboards layout.
I edit this tutorial to give also "good WASD" like keys for "DSK" Dvorak Simplified Settings Keyboard but i really think this keyboard is pretty unused.
If you want to give your game a really good keyboard management you can ask the player to choose between different pre-defined keyboard settings and activate the good managing "group" .... it's also available if you want to use gamepad with or instead using keyboard and so on.
Another way is to let the user choose all "triggers" for each actions using several devices. For keyboard i've not found a C2 plugin managing keyboard user define keys ... so also store/load user key settings and managing conflicts when a player want to choose a already used key for another action.
So i really think creating a unified all input device plugin is a very hard work ... the problem here is that devices can't do the same thing using the same "way" ... so if i can move more slowly pressing "up" and "down" at the same time .... a gamepad could not do this using only the standard 8-dir pad and a joystick can do this but slowly moving "up" ... so each devices need specific triggers for each actions. In fact it's perhaps more difficult to bring your game a good device management than creating the real game core ! ...