Synergy is a useful wee utility that allows you to share a single keyboard and mouse across multiple machines - kind of a software equivalent to a KVM switch, but for keyboard and mouse only. This is very useful if you have two or more machines located next to each other. While I’ve used it to link two Windows XP machines, Synergy has support for a wide range of operating systems, including Macintosh, Linux (and other Unix variants) and the Windows 9x series.

Here’s a walkthrough of how I set up Synergy to share my keyboard and mouse between two Windows systems.


Synergy is an open source project that can be downloaded from sourceforge The current release dates from 2006 but don’t let this discourage you, as it works well. Note though that I haven’t used this with Windows Vista or Windows 7, so proceed at your own risk.


In Synergy terms, a server is a computer providing a keyboard and mouse that are made available to other machines over the network. Conversely, a client is a machine subscribing to the keyboard and mouse provided by a server.


Server Installation

To begin, install Synergy on the machine that has the keyboard and mouse you want to share across multiple systems. This machine will be your server.

Once installed, start Synergy:

Select the option “Share this computers keyboard and mouse” and press Configure.

The Screens and Links dialog isn’t pretty, but it does the job pretty well.

You need to set up a screen for each computer. Each screen corresponds to the desktop of one machine. Note that even if a machine has dual monitors, you only need to set up one screen.

Normal practice seems to be to name each screen for the computer that uses it - in my example above, you can see L09-020, my laptop, and D08-006, my desktop.

Once you have the screens set up, the next step is to join the screens together with links. An easy trap here is that each edge is one-way - you need to configure both directions for a seamless experience.

Client Installation

Using the same installer, set up Synergy on each client machine. This time, select “Use another computers shared keyboard and mouse” and enter the host name of your server machine. If you didn’t name each screen for the connecting computer as suggested above, you’ll also need to press Advanced and configure the name of your chosen screen.


If you want Synergy to start automatically when the machine starts, press the AutoStart button and select an appropriate option. Configuring a Synergy client to start automatically on machine startup allows you to log on using the server - a useful trick.


Network traffic between a Synergy server and its clients is unencrypted, and there is no authentication of clients. If your machines are connected to a secure firewalled network, this poses a minor risk - but if your network is open, Synergy is probably not for you.


blog comments powered by Disqus
Next Post
The Pragmatic Programmers have a Magazine  06 Jul 2009
Prior Post
Scoped Values  18 Jun 2009
Related Posts
Using Constructors  27 Feb 2023
An Inconvenient API  18 Feb 2023
Method Archetypes  11 Sep 2022
A bash puzzle, solved  02 Jul 2022
A bash puzzle  25 Jun 2022
Improve your troubleshooting by aggregating errors  11 Jun 2022
Improve your troubleshooting by wrapping errors  28 May 2022
Keep your promises  14 May 2022
When are you done?  18 Apr 2022
Fixing GitHub Authentication  28 Nov 2021
June 2009