Synergy: A Software KVM


For years at the places I worked, I used more than one computer at a time. Usually my personal Mac laptop and a Windows desktop. The key piece of software that makes me work with more than one device is a piece of software called Synergy.

Synergy is a software KVM switch (Keyboard-Video-Mouse) but without the video. Instead, it allows you to work on one computer, move the mouse to one side of the screen, and start working on the computer next to it. All of which connected by the local network to control mouse and keyboard.

It doesn’t matter what OS the computers are using. Once they’re set up with Synergy, you use one keyboard and mouse to run as many computers as you wish. Have one computer with more than one screen? Synergy adjusts flawlessly. Even more amazing is that text-only copy and paste works across the computers!

The bugger is getting the system set up. Right now the project is recovering from a bit of neglect as well as a lack of user-centered focus on design. As you’ll read on, we’re now at a point where the setbacks are worked on. I invite you to use Synergy now as it’s stable. Just a bit curious to set up with Windows as the “server” (the computer with the physical keyboard & mouse).

As wonderful this software is, the development story was questionable in the late 2000’s. The maintainer for the original project at Synergy.sf.net went AWOL. New operating systems, namely Windows Vista & 7, required maintenance on the software. There were a few groups trying to make the software work, but a project named Synergy++ came out on top as the successor to the project providing a good chunk of maintenance to the Synergy code. Eventually the project moved to it’s new home, Synergy-FOSS. In the past few days they released the first release under FOSS, brining Synergy back to awesome status.

They’re far from done however. The biggest problem Synergy has for usability is a huge interface problem. As it stands, Synergy’s configuration of screens depends on either hand-editing a text file, or a GUI interface that didn’t take human beings into account.

“0 to 100% of the ‘left’ of ‘Screen A’ goes to 0 to 100% of ‘Screen B’” is the language you needed to figure out for arranging screens. Meaning you have to set up the reverse of what you intended to configure. When I set up a server on a Windows box, I have to draw out the screens on a sheet of paper to get it working. It’s a nightmare as someone who’s done it before and almost impossible for someone who hasn’t.

A while ago someone developed a Mac GUI to Synergy called SynergyKM. It uses the Synergy binaries but wrapped in a GUI and other tie-ins to make it work as a native Mac application. This includes a menu bar allowing you to switch profiles and turn it on and off. This is a boon to me when I have a home and office configuration. Most importantly, the server configuration is easy once you know the machine names of your computers.

Put the computer screen where you want it to be and hit “Apply Now”. Done. While the screens are all iMacs, it’s just cosmetic as one’s a Windows box.

The bad news is that SynergyKM as a project isn’t developed anymore. The good thing is that there’s a workaround to update SynergyKM with newer Synergy binaries. I use this with the new 1.3.6 Synergy-FOSS binaries.

Synergy-FOSS is planning on a Mac GUI for 1.4.1. I can’t find screenshots or early copies of this, so I can’t comment on how that’s going. But I’m hoping they took some pages from the SynergyKM playbook, using it for the PC as well. Still, using 1.3.6 is great with a few minor but recoverable hangups.

Once the 1.4 Synergy comes out of beta, Synergy will hopefully realize a level of usability for more people to use!