Friday, January 04, 2008

Synergy -- Sharing a single keyboard and mouse

Synergy is a nifty little software package I just started using. It hasn't been very active for over a year, but what it provides is EXACTLY what I've needed for a long, long time.

My office desk at home is a corner/L-shaped desk with "hidden" drawers for the keyboard. I hate these hidden keyboards (or at least mine!) because my hand can't fit into the crack to grab the mouse to use it effectively. I do consider myself a fast and efficient typer, but I don't really follow a good form; therefore, reaching into a crevice at an odd angle and trying to get my bearing on a hidden keyboard is quite a challenge.

About the only thing I use my desktop for is for editing my digital photos (Canon 40D, in case you were wondering), editing some simple video of the family, and of course, playing my music from iTunes.

I work at home about 60% of the time and have a nice laptop. There are many times when I want to switch over to my desktop and do a simple quick task such as just changing the song, etc. But I'm lazy and dread scooting back my chair, pulling out the keyboard and mouse, changing the song, and then putting everything back into place.

Solution: Synergy! Synergy allows you to set up screen edges to control multiple other computers. You specify one keyboard and mouse that controls them all. Best of all, it runs on just about any OS, including Mac OS 10.2+.

I run Ubuntu 7.10 Gutsy Gibbon on laptop and Windows, so these steps are more tailored for a linux server, but it looks very trivial to set up a Windows Synergy server, too.

Step 1: Determine which computer will act as the controller ("server" in Synergy)

Step 2: Download and install Synergy on all computers you want to control.
For Ubuntu, it is as easy as "sudo apt-get install synergy"

For Windows, just run the executable.

Step 3: Configure the server
My server will be Ubuntu. The config file is located in my $HOME directory:
$ cat .synergy.conf
section: screens
section: links
right = desktop
left = ulaptop

What the config file shows is 1) what servers/clients you have and 2) how they fit together.

"section:screens" shows that I have only two computers: my server (ulaptop) and one client (desktop).

"section:links" shows where the displays are located in respect to each other. For example, for my laptop, the desktop is on the right. Vice versa, for my desktop, my laptop is on the left.

To configure a Windows Synergy server, launch Synergy and select the "Share this computer's keyboard and mouse (server)" option and then click the "Configure..." button.

These settings just tell Synergy which edges of which screens will cause transfer of the mouse and keyboard to the other computer.

Step 4: Start the server
For linux, $ synergys

For Windows, launch Synergy and select "Share this computer's keyboard and mouse (server)" option.

Step 5: Start the clients
Specify the IP address of the Synergy server. There is a test mode on the Windows client which will indicate if a successful connection is made.

Step 6: Install synergy client as a service
Optionally, you can click the "AutoStart..." button and configure Synergy as either a log-in service or a system service for Windows clients.

That's it! Took me about 10 minutes the first time I tried it and now LOVE it!


Andy O said...

So other than the fact that you're a geek and this is free, is there a reason you didn't consider just buying a KVM switch?

Dustin said...

Yeah, I'm a cheap geek. Plus, no need for any cables or key-combos. Just move that little cursor off the side of the screen and whoila!