I use a single monitor, keyboard, mouse for both work and personal and need to switch between these pain free. I haven't come across a seamless solution as most of the software ones rely on mulitiple displays. My current solution is 3 button press on each device (monitor, keyboard, mouse) to switch.
Also, is it possible for one device to keylog when the keyboard is switched to the other?