« Subtle change to Firefox 2 | Floppy disk, we salute you » |
Link: http://sourceforge.net/projects/synergy2/
Truly the internet is a wonderful place; if you have a need, there's probably someone out there with just the thing to resolve it. Sometimes it's even free. Such is the case with Synergy2.
Synergy2 goes after a very specific need. In this case it's people with multiple monitors on their desks connected to multiple computers who want to keep all screens visible all the time but use only one keyboard and mouse.
At work that describes my set-up. I have two computers I use: one is my principal machine for development work and the second is dedicated to testing. As I'm frequently jumping from one to the other, a KVM wasn't really what I wanted as I also needed to refer to one while working on the other. However, as they're next to each other, I would frequently find myself using the wrong mouse and keyboard for the screen I was looking at; not the most useful of results.
Anyway, while discussing this problem with a friend, I was pointed at a Sourceforge project called Synergy2 as being a possible solution. Basically it listens to mouse and keyboard events, creates a virtual desktop onto which it divides the computers, and uses a client/server architecture to pass the events onto the appropriate computer. For example, one computer is configured as a server and the other as a client (there can be more than one client); the client is set to have its screen off to the left of the server. When the mouse is moved off the far left of the server, the client picks it up and acts as it the mouse is local to the computer. When pointer is moved back off to the right of its screen, it's transferred back to the server. The keyboard maintains context with whatever the active window is.
The mouse and keyboard on the client machine remain active which is good as there are certain key combinations (like CTRL-ALT-DELETE) that do not get passed through. The client mouse cannot move onto the server's screen. It's also handy when connecting to a VPN that disconnects you from your local network (like Cisco or Nortel) and thus also from your remote input device!
It works very smoothly once the configurations are sorted out. They're done via a slightly obscure GUI interface on the server with some minimal configuration on the client. One thing that caught me is that in addition to telling the client where it is in relation to the server, you need to set up the inverse. Initially, when I would move my pointer over to the client, I would then be unable to move it back...
There's also a OSX port for the software but I've not had a chance to see what happens when operating system screens.
On the iffy side, there's no security at all so I wouldn't want to add this to a machine on an unsecured network. Given how specific the setup actually is this may not be a problem: the client connects to the server rather than the other way around and receives commands rather than sending them so I'm having a hard time conceiving of an attack that would be able to do anything.
Anyway, it works really well and I do recommend Synergy2 should you have the rather specific requirements for it.