Windows

Share one keyboard and mouse with multiple machines without a KVM

The Synergy open source application allows you to share a keyboard and mouse between Windows, Mac, and Linux computers and saves you the cost of a KVM.

There are three monitors on my desk, two of which are attached to one computer and one monitor that is attached to another computer. I have two keyboards and two mice on my desk, and switching back and forth between those keyboards caused me to have all sorts of back problems. Sure, I could use a KVM, but I didn't have one handy, so how could I lose one keyboard/mouse combo? I didn't think it was going to be possible, until I found an incredibly simple and free solution called Synergy.

Synergy is an easy to set up open source application that allows you to share a keyboard and mouse between multiple networked computers. The software allows you to share a single keyboard and mouse between Windows, Mac, and Linux computers.

What you need to use Synergy

  • At least two computers with separate monitors
  • A network connection (both machines on the same network)
  • The Synergy software

Installing and using Synergy

For this tutorial, I demonstrate how to use Synergy to share a keyboard and mouse between a Windows 7 machine and a Ubuntu Linux machine.

Install the Synergy software on both the Windows and the Linux machines. The Windows installation is simple: download the Windows .exe file, double-click it, and walk through the wizard. Follow these steps for the Linux installation:

  1. Download the installation file for Ubuntu.
  2. Open a terminal window.
  3. Change into the directory the file was downloaded into.
  4. Issue the command sudo dpkg -i synergy-XXX-Linux-xxx.deb (XXX is the release number and xxx is your system's architecture).
  5. Type your sudo password.
  6. Hit the Enter key.

When the installation for both is complete, you should start the software. When you do this, the main Synergy window will open. You have to set one instance up as the server and one as the client; we'll set up the Windows machine as the server and the Linux machine as the client.

Let's open the Windows Synergy application by going to Start | All Programs | Synergy. When the app opens, it will automatically go to the system tray. Right-click the Synergy icon (the blue and green circle) and select Show. From the new window (Figure A) make sure Server is checked. Figure A

The log window is a real-time update of what is happening during the connection phase. (Click the image to enlarge.)
Then click the Configure Server button in Figure A. From the Screens And Links tab in the new Server Configuration window that opens (Figure B), click the monitor icon in the upper right corner and drag it next to the center square. If the client monitor is to the right of the server, drag the client monitor to the square to the right of the server monitor. Figure B

You can also configure hotkeys and polling from the other tabs. (Click the image to enlarge.)

Once the client icon is in place, double-click the icon and rename it. You must rename the client with the hostname of the actual client computer. When the client is configured, click the OK button and then click the Start button on the main window.

Now, over to the client machine. On Ubuntu, open the Dash and type synergy. Click the application launcher. The Synergy icon will appear in the notification area. Right-click the icon and select Show. From the main window (Figure C), do the following:

  1. Select Client.
  2. Enter the IP address of the computer acting as the Synergy server.
  3. Click the Apply button.
  4. Click the Start button.

Figure C

If you're unsure of the client's host name, it's right here. (Click the image to enlarge.)

You should be able to grab the mouse and keyboard attached to the server machine and move it across to the client machine. After you give this amazing little app a try, report back and let us know if it makes your life easier.

About

Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website getjackd.net.

12 comments
steamIngenious
steamIngenious

to plant a single keylogger to track everything you do across all of your machines!! Thanks Synergy!

jshd17
jshd17

Very easy set up and works like a dream, thank you.

cjguite
cjguite

I have been using synergy for years, but in an opposite config from Jack's. Linux main with 2 monitors and a windows box to the side (usually mint with KDE or openSUSE). then also an old lubuntu box with a 42 inch TV way off to the left that just runs a rdesktop session to a windows server running our network status map. The flexibility of synergy is if you use a text config. You can make a wall of irregularly sized monitors on different workstations all flow together like using a single desktop that has independent resource areas. I haven't used 'mouse without borders', but looking at the site ------------------- Mouse without Borders is a prototype that makes you the captain of your computer fleet by allowing you to control up to four computers from a single mouse and keyboard. This means that with Mouse without Borders you can copy text or drag and drop files across computers. ------------------ The benefit of synergy over this solution is no machine count limitation, and cross-platform. Both allow shared clipboard, synergy can also do shared screensaver/screen lock. Your 'common use' with most people just want their windows laptop next to their windows desktop, the Microsoft product would probably be fine. but anything more and synergy is greatness. EDIT> about the client/server synergy setup: you only configure on one machine, the one with the keyboard/mouse, set up how you want your monitors to act, then just set all the clients to point at it. for clients It is as easy as a startup task that runs '%path%synergyc SERVERNAME' (synergyc is client synergys is server)

SquelchQuelch
SquelchQuelch

Mouse Without Borders from Microsoft Garage is easier to install, free and doesn't require a client/server type of setup.

sysop-dr
sysop-dr

We tried this before but with the version we tried, and some of us used, you had to unlock each system with its own keyboard and mouse then reconnect each time.

CharlieSpencer
CharlieSpencer

Assuming I'm dealing with Windows systems at both ends, what are the advantages over Window's built-in Remote Desktop Connection? Its big advantage (and that of a KVM) is that you don't have to install anything on the client.

HRH_JimBob
HRH_JimBob

Synergy is a great too, however, if you use VMware Workstation (I use version 8) you will not be able to capture your keyboard and mouse input into VMware while the Synergy service is running.

nick.bolton.uk
nick.bolton.uk

As well as not being free*, Mouse Without Borders only works on Windows. Synergy on the other hand is genuinely free, and works on Windows, Mac OS X, and Linux. * Mouse Without Borders is not free because the source code cannot be viewed or modified freely by anyone -- not to confuse this with "free as in free beer", which as it happens Synergy also is, contrary to what you implied.

bratwizard
bratwizard

Yes, that's one of my issues with it. I also agree with the folks who suggest it would be a terrific place for a key-logger. I tried it out a year or so ago and thought it was neat and probably useful to some degree. But you have to maintain a regular keyboard / mouse on each system to log in, AND to do anything while in the UAC admin mode. Apparently it doesn't work then either.

steamIngenious
steamIngenious

that Synergy is logging keys with this program. Rather that compromising a Windows system that uses Synergy and replacing bits of the program (open source!) would be a convenient way to log keystrokes on all systems that are connected to it.

bratwizard
bratwizard

Well, on the bright side, at least now we're able to provide hackers with a uniform API... :-)

Editor's Picks