In Praise of Synergy

lets you easily share a single mouse and keyboard between multiple computers with different operating systems, each with its own display, without special hardware

We’re working on a Rails app at Shine that we need to test on both Internet Explorer 6 and 7. Furthermore, developing Rails kind of sucks on Windows (which is another story I promise that I’ll go into some other time), so I develop on a Mac. So I actually have 3 PCs on my desk – my laptop (which runs IE 6 and contains all my mail), an iMac, and another PC that runs IE 7. Running them all from different keyboards and mice would be a nightmare. So I hooked ’em all together using Synergy.
Now I know that I could run Parallels to get IE 7 running on the Mac, but the IE 7 PC wasn’t being used so I figured I’d just grab that – I really couldn’t be bothered setting up Parallels and on some Macs it can even be kind of slow. I also know that it’s even possible to run IE 6 and 7 on the same machine, but again, given that I had a spare box, I couldn’t be bothered doing that either. And once again, why should I be bothered when I can just hook ’em up using Synergy?

I first experienced the magic of Synergy thanks to Matt. He was running it across a Macbook Pro and a desktop PC. And I had that weird moment everybody gets when they see Synergy in action for the first time: did that guy just move his mouse pointer from one machine to the other? Did text typed into his Macbook keyboard just appear on that Windows box? What’s going on?

You gasp, you search for the hidden cables…but there are none: Synergy works across your local network. Latency is hardly ever an issue. Heck, my laptop’s wireless and it works well most of the time via that. Sometimes it can be a bit annoying if the network drops for a second, but the vast majority of the time it just works. Just a little bit of configuration when you set it all up, and then off you go.

And the best thing about Synergy? It’s free. There hasn’t been a new release since April 2006, but who cares? It works. It’s one of those weird apps (kind of like PuTTY) that is free and hasn’t changed much lately, but I still use it every day.

Then there’s the pixels: lots of pixels. If you’re a pixel junkie like me, the more screen space you have, the happier you are. And Synergy lets you take your pixel habit way beyond the standard dual-head graphics card. Three machines and monitors on your desk? With Synergy they all become one big pseudo-desktop. Not only does it make for easy testing between multiple platforms and browsers; now I can browse the web on one machine and check my mail on the other whilst developing on the Mac. Cutting and pasting between machines is generally limited to text only, but it still makes for a pretty cool setup.

Finally, if you’ve got machines with dual-head cards and multiple monitors, you can use those too. My current record is 4 monitors – 3 machines, one running dual-head – until one of the monitors was confiscated to give to somebody else (admittedly they were far more deserving than me). In theory you probably have at least 10 – although at that stage people might start to look at you funny. But who cares what other people think when you’re staring at pixel nirvana? (although sensory overload may become an issue :).

So if you need to test across multiple platforms and/or you’ve got spare machines and monitors sitting around, harness the power and the pixels: Try Synergy. You won’t be sorry.

Craig: Let me start by saying that I am in no way proposing that if you suddenly need to start working with multiple operating systems and/or multiple copies of the same operating system, you immediately go out and buy a whole bunch of hardware and hook it all together using Synergy.

However, if you’ve already got hardware sitting around and it’s already set up with the appropriate operating systems, using Synergy can help you avoid the whole overhead of having to set everything up on one box.

I’ve also found some other benefits – especially with Windows boxes. For example, as I write this one of my Windows boxes is having to be rebooted (as Windows so often does). However, instead of my entire workflow grinding to a halt whilst I wait for the reboot , I just switched to another box and kept on writing.

The same applies if you’re doing something very processor-heavy on one box, or Windows has become unstable on one box. Instead of taking down the whole system, you can switch to another machine whilst waiting for it to finish or reboot.

Foe example, I was once at a client where I was charged with setting up a new server on a Windows box. It was pretty heavy-weight software I was installing and I was having to do it repeatedly. Furthermore, it wasn’t really possible for me to do it on my existing machine I already had without completely stuffing it up – what I needed was a separate, sacrificial ‘goat’ box. And this is where Synergy came in very handy.

Finally, I’m not a VMWare expert, but I have recently been playing with an Ubuntu client installation running on VMWare for Windows. Whilst I have been incredibly impressed with what VMWare (and Ubuntu) can do, I have had problems where, having put my VMWare player window into full-screen mode on a separate monitor, when I type ‘alt-ctrl’ to switch back to Windows, the full-screen mode shuts down. This means I have to maximize it again when I want to go back to Ubuntu. I want to run stuff like Eclipse in Ubuntu, so not running in full-screen mode wouldn’t be feasible on anything but the most massive monitor.

I’ve also found the mouse to be a bit dodgy when operating VMware in fullscreen mode – sometimes it just doesn’t seem to recognize the new window size. But this could just be the particular Ubuntu client appliance I’m using – if you’ve got any comments on these issues I’d be keen to hear about them.

I used to use Synergy a lot at my previous workplace. I was running a Gentoo box (with dual heads) back then and using my windows based laptop. (Sadly, as a web developer, you have to cater for IE users) Yes, and that made development a lot less painful (web standards are a pain as it is). Like Ben, I am a fan of multi monitors and more view port space for tons of windows. Unfortunately, at my current client, we are assigned 1 monitor per developer (hint 🙂 ). I now use Compiz w/ Ubuntu to manage desktop clutter. Not as good as a multi monitor solution, but good enough to get by. Would love to have spinning cubes on two monitors.

“For example, as I write this one of my Windows boxes is having to be rebooted (as Windows so often does). However, instead of my entire workflow grinding to a halt whilst I wait for the reboot , I just switched to another box and kept on writing.”

That sounds very handy! However I must be extremely lucky because I never have to reboot my Windows machine it, OS X on the other hand…

Stop press: Here at Shine we’ve decided to put our money where our mouth is and make a donation of US$100 to the Synergy team via their website. Whether they put the money back into the project or spend it on beer, we think they’ve already done a great job!