If you have read my twitter bio, then you know that I love Linux and Macs and that I don’t mind using Windows when I must. In fact, many techies fall into some variation of that niche. Both at work and home, this means that we frequently have more than one computer. I found myself regularly running Linux and Windows side-by-side, and eventually added an iMac to that setup to test the limits power drain for one cubical.

From left to right, my setup was an iMac -> XP laptop (+LCD with extended display from XP laptop) -> LCD for Linux. To avoid clutter, I did what most people did and connected everything to a KVM (keyboard – video – mouse) switch. Because I actually used all of these displays to multitask, I only used the KVM to share the keyboard and mouse. At least that is what I did before I found Synergy on SourceForge.

Synergy is a client/server application that allows one computer to share a keyboard and mouse between several computers, supporting UNIX, Linux, Windows and Mac OSX. The application contains both the client and server applications, so you pick the computer to run in “server” mode, storing the configurations and sharing the keyboard/mouse. Every other computer will run the client and connect to the server.

Based on the defined relationships, as the cursor leaves one monitor, it will appear on another computer’s monitor, as if they were one computer with multiple displays. To make it even better, copy/paste functions follow the mouse. Simply by moving the cursor off the side of my iMac, I move it onto my XP laptop. I can then copy text, move the cursor back from my laptop to my iMac and paste that text into an application. This can be extended to multiple computers on multiple OS’s.

Here is a video demonstrating Synergy (not mine)

<MISSING VIDEO>

Now the configuration can be interesting. In the server configuration (a file on UNIX, Linux and Mac but done within a GUI on Windows), you first define each of the computers to be used. The next step is to define the location of each computer’s screen, or at least how you want the screen layout to work. For instance, using my work layout listed above, my server config file would look like this:

section: aliases
mac:
imac.mvaughn.us
laptop:
laptop.mvaughn.us
linux:
opensuse.mvaughn.us
end

section: links
mac:
right = laptop
laptop:
left = mac
right = linux
linux:
left = laptop
end

I assigned aliases to each of my computers, and linked those back to the fully qualified domain names (remember, this works over the network).  The tricky part here is to define ALL of your relationships. If only stated that the laptop was to the right of the mac, moving my cursor off the right side of the mac would make it appear on the left edge of the laptop screen…but I would not be able to move the cursor left to get back on the mac screen. That is why I also had to define that the mac is to the left of the laptop.

As you saw in the video demonstration, this can not only be used for side-by-side displays, but it can also go up or down to work with stacked displays. Many datacenters have a Network Operations Center (NOC), with a wall of large displays with some type of monitoring software showing the health of the infrastructure (this is the room that resembled the NORAD from War Games or NASA Mission Control). Imagine one computer in the back of the room, and any time the mouse leaves the top of that monitor it begins controlling input for the computers feeding the overhead displays. When an issue pops up, one person can quickly navigate all of the monitoring tools (being displayed from multiple computers) to drill in and correlate the data to better determine what is going on. In that type of scenario, Synergy makes the transition from desktop convenience to enterprise tool.

I strongly encourage you to spend a few minutes looking at this tool. The website is at http://synergy2.sourceforge.net, and it has some very good tutorials and other documents to help get you up and running. You’ll find a ton of additional features that I did not even touch on here.

Of all the tools I have stumbled across over the years, I would rate this as one of the most useful. Free tool, minimal investment in getting it setup, and it provides real value on a daily basis.

**For added convenience, put a wireless keyboard and mouse on the computer running in server mode and you can easily begin to think of all your computers as one seamless resource.