What is Synergy? It’s a program that lets you share a virtual desktop between two different computers. With one mouse and keyboard, you can control two computers, and even move your mouse from one desktop to the other. It’s almost like the computers are welded together. I’ll demonstrate. This is what my desk at home looks like when my desk is clean:
On the left-hand monitor I have a Windows XP system running. On the right-hand monitor I run Ubuntu 7.04 (Feisty Fawn). If I move my mouse off my Windows (left) monitor to the right, it shows up on the Ubuntu (right) monitor and vice-versa. Plus cut-and-paste works between the machines as well.
Here’s how to configure Synergy with two computers. Let’s assume that you have two home machines called “windowspc” and “ubuntu”. We’ll put the Windows machine on the left and the Ubuntu machine on the right. One of the two machines will run as the Synergy server and the other will run as a Synergy client. I picked the Ubuntu machine to be the server.
- Install Synergy on both Ubuntu and Windows
Ubuntu: Run the command “sudo apt-get install synergy”
Windows: Download the .exe program from SourceForge.
- As root on the Ubuntu machine, create an /etc/synergy.conf file with the command “sudo vi /etc/synergy.conf”
left = windowspc
right = ubuntu
screenSaverSync = false
# My KVM uses Scroll Lock to switch screens, so set the
# hotkey to lock the cursor to the screen to something else
keystroke(f12) = lockCursorToScreen(toggle)
There are several things to note in this configuration file:
- If one of your machines doesn’t have a DNS name, you can use the IP address of that machine. The “aliases” section lets you do that in a clean way. To find your IP address on Windows XP, do Start->Run, enter cmd, and type “ipconfig /all”. On Linux/Ubuntu, use “ifconfig” to find your machines’s IP address.
- In the “links” section, you have to define both behaviors: going offscreen-left on the Ubuntu (right) machine, and going offscreen-right on the Windows (left) machine. In theory you can create really weird mappings, but keeping it simple is usually best.
- The “screenSaverSync = false” command says not to link the screensavers of the two machines.
- Synergy normally uses the “Scroll Lock” key as a toggle that prevents your mouse from leaving the screen. I have a KVM switch that uses the Scroll Lock key, so I redefined the “lock Cursor to Screen” key to a harmless button (f12).
- Make sure that the Ubuntu configuration file is world-readable. Run the command “sudo chmod a+r /etc/synergy.conf” to do that.
- Next, test the server and client and make sure that everything works. On the Ubuntu server, run “
synergys -f --config /etc/synergy.conf” (that’s one dash in front of the ‘f’ and two dashes in front of the ‘config’). The “-f” option means “run Synergy in the foreground” and it lets you see debugging and other Synergy messages. Note that the command is “synergys” because the ‘s’ stands for server. There’s also a synergyc to run the client.
On the Windows client, run Synergy. You’ll need to enter the name or IP address of the Ubuntu Synergy server and then click Test. The Windows program will look like this:
If you’re using a KVM switch, don’t forget to shift your mouse/keyboard back to the Synergy server running on Ubuntu. The mouse/keyboard will be routed through Synergy to your Windows PC, so your KVM switch has to be set to the Synergy server.
- If Synergy works fine in test mode, it’s time to run it for real. On the Ubuntu server, run the command “
synergys --config /etc/synergy.conf” with two dashes in front of ‘config’. That’s the same command that you ran before, except remove the “-f” option to run in the foreground. On the Windows computer, just click “Start” on the Synergy window.
- Finally, make Synergy run on both machines on start-up. On Windows, there’s an “Autostart” button. Click the button and choose to start Synergy either when you log in or when the computer boots up. If you have sufficient Administrator access rights, I’d set Synergy to run when the computer starts:
On the Ubuntu server, click System->Preferences->Sessions (or on more recent versions of Ubuntu, click System->Preferences->Startup Applications) and then click Add and make a startup program (I called it “Synergy Server”) that runs the command “
/usr/bin/synergys --config /etc/synergy.conf“. Again, that’s two dashes in front of the word “config.”
I hope this guide helps. Once you get Synergy going, it’s incredibly cool to copy some text on the Ubuntu machine, mouse over to the Windows machine, and then paste that text on Windows.
If you want to dig into Synergy more, here are some helpful links:
Setting up and running Synergy
Setting Synergy to run automatically
Details on the configuration file format for Synergy
Frequently Asked Questions (FAQ) about Synergy
One final tip: If you’re using a KVM switch, remember which computer your keyboard/mouse is driving. That bit me a couple times.
Update: Note to myself. I defined F12 as the “lockCursorToScreen” key in the config file above. On a Microsoft Natural Ergonomic Keyboard 4000, you might have to press the “F lock” or “Flock” button and then F12 if you accidentally locked your cursor to one screen.