I made one for gamepad first for my game and later a mouse control schematics for it too. Keyboard utilize the nearly the same schematic as gamepad does but with the significant difference of customization. It's is actually pretty hard initially since I have to slowly iron out the bugs and make it smooth to use with little prior experience but all later changes (including mouse implementation) is done in a few days due to better understanding of how to design a gameplay flowchart (as in if the player press this, this does what? sort of thing).
Controls schemes aren't that hard to do considering most games don't suddenly change their gameplay and most don't do RPG. Obviously, fighting and brawl games have to include timers and arrays into their control functions and events to allow combos.
To display controls in your UI is pretty simple via keeping track of dictionary keys value which tell you what keyboard keys are set to what and then use a text font with a sprite to display that "name" that you set for that value. (Keyboard keycodes are kept in numbers, while you can get most of their names using StringFromKeyCode, some are undesirable so you will want to set the string for those yourself)
I am not sure if a universal control scheme is desirable or not since every game have different standards of UI and different uniform controls schemes for ease of gameplay.
Would be more advisable to rather create generic control schemes for specific types of game than a single one.