This would be a nice extension of the current implementation:
case kUser1 ... kUser9: if (KeyMacros.Get(key)) { cRemote::PutMacro(key); key = kNone; } break;
eg. if there is no macro assigned to that key, keep the key code for plugins and other extensions.
(the code is not tested, don't blame be if it doesn't work...)
Looks good to me
I'll try it out...
Works under skincurses - will try the OSD tonight.....