The current way of doing it through the interface editor it would take nearly forever defining something for every key and be very tedious.
Perhaps something similar to Loduwjik's Keystate library?
client/KeyDown(key)
if(key&(CTRL|Q))
src<<"You are holding Ctrl+Q."
client/KeyUp(key)
if(key&(CTRL|Q))
src<<"You are no longer holding Ctrl+Q."
Something similar to that would be great. =P
I'm confused as to why BYOND Staff didn't consider to make some of their new interface changes more... procedure-based. Not just KeyUp() and KeyDown, but also events like OnChange(window,control,variable,old_value,new_value).
-- Data
Because usually the game is controlling the interface, not vice-versa. In those other times, it's more efficient to do it client-side rather than sending a network event for every little thing.
As far as the keyboard stuff goes-- once we have it so that macros (and menus.controls) can be added at runtime, you should be able to accomplish what you want.