Friday, December 26 2003

I finally tried Matt’s setup, where he has a single keyboard and mouse that can travel from his Powerbook’s display to his PC. I remember when he explained it to me (or I should say tried to) it seemed to be incredibly complicated. I couldn’t wrap my head around what he was actually doing.

Yesterday, I downloaded Win2VNC and instantly it all made sense (and worked). I have three computers on my desk, each with their own display. From left to right, I have a generic PC with it’s own monitor, a Toshiba laptop with it’s own display, and a 17" iMac, with it’s own built in display. There’s no way a KVM switch would work to make it possible for me to use one keyboard and mouse to command each machine. Win2VNC, however, makes it possible.

On my generic PC I set up a VNC server, and on my iMac I do the same. My Toshiba laptop, which sits in the middle, runs two instances of Win2VNC. Win2VNC is essentially a VNC client, except that it sits right on the edge of the screen you’re running it on. It’s almost like you have a connection to a VNC server through the standard VNC client, and you’ve pushed it all the way to the edge of the screen, so that all but a one pixel column is on the edge of your screen. Normally, once you pushed your mouse over to that side of the screen, it would run out of room to travel, but Win2VNC allows it to travel off the screen, which makes it show up on the host machine you’re connected to.

It all sounds very complicated, but really, it’s slam dunk easy. If you have two computers nearby with a display each, you really owe it to yourself to give it a try. It’s truly fantastic to see my mouse cursor move across three different screens of three different computers, all of which are completely autonomous.

It has some obvious advantages and disadvantages though. You’re not able to drag a window from one app to the other (although, it seems like it could be done*). You are, however, able to take advantage of multiple CPUs. When one machine is hunkered down, the other is ready and waiting to do whatever you want it to. That aspect is quite refreshing.

  • It seems like you could have an uber-VNC client, that acted as both client and host, and would allow you to display the window/app/whatever on the connected machines. Sort of like a networked video card or something. Because all VNC does when it displays another machine’s desktop is draw a bitmap of that desktop, it could put some smarts into it and simply draw individual windows. If I’m not mistaken, I think there are some X Windows apps that can pull this off.