Awesome stuff! I updated the CloneKey entry in the wiki and added a link to ClonedKeys.
Your two upcoming features will get rid of my horribly hacked version (I use SDFC instead of WASD to move). Currently I send a keystroke to each client when the front window changes and the client changes which action page they are using. It gets the job done but is a hastle to setup and maintain. Depending on how you plan to do the key mapping I think I can get rid of all that and greatly simplify my setup.
One feature that I hacked is to send a keypress when the selected client changes. (in MonitorHandler() under kEventClassApplication look for the kEventAppFrontSwitched event kind then send the keystrokes if everything matches up) Right now I send a different key combo for each selected client (^1,^2,^3...) but I plan on changing that to sending one key combo (the same for everyone) to just the new front application.
Another feature that I wanted, but couldn't get to work in C++ was to switch from one client to a specific one of my 5 with a keypress (also triggering an action in the clients). Right now, I'm using ControllerMate and a bit of Ruby with appscript to switch clients by using ps and grep to find the process ID. Ugly, but a lot faster then I was expecting it to be.
While I can hardcode what I want to do, I'm on the wrong side of the learning curve for Mac UI code. :P Keep up the good work!
Connect With Us