When your development setup involves multiple machines, switching between them can break your flow. And you’re probably doing it hundreds of times a day.
Turning to a different keyboard and mouse slows you down. Each time, you’ve got to adjust your fingers to a different size, recall how to use a different layout, and then find the mouse pointer again. Ultimately, it’s like letting go of a steering wheel.
It’s not uncommon to see development setups with laptops at all kinds of angles, forcing coders to stretch, twist, even stand and reach up to type or click something in a different environment.
As you know all too well, interruptions when coding have a disproportionate impact on productivity. Major interruptions can take programmers 10–15 minutes to recover from, which makes their impact obvious. But minor interruptions can be just as bad if they’re common in your working day.
There’s no doubt that you’re most productive in front of your primary keyboard and mouse, in an ergonomic position. The ideal would be if you can stay there and work across all of your machines. Can that be achieved?
Virtual machines could be the solution: eliminate the need for additional keyboards, by eliminating the need for additional hardware.
However, the complexity of setting this up ranges from difficult to impossible (and free to I’d-rather-have-a-real-device-at-that-price), depending on the systems you need. If you can make this work as effectively as having separate, real machines, we take our hats off to you.
But if you’ve got to use actual metal, then what you need is a way to connect one keyboard and mouse to all of your devices.
The good news is this is possible, and there are two main ways of doing it.
The humble KVM switch has been linking computers since the 1980s. You connect one keyboard and mouse to the KVM, and you connect the KVM to all your computers. Now you can switch the peripherals between them at the press of a button.
It sounds like it could work, but in our experience, KVMs are either expensive or temperamental (or both). And even with unlimited budget, not all peripherals and computers are compatible, particularly when working across operating systems, or using wireless keyboards and mice. They also necessitate a lot of additional cabling, which can make using them become its own disruption. In fact, frustration with KVMs is why Symless was founded.
Clutter on our desks is distracting and inhibits creativity. Messy surroundings (like tangled cables) reduce focus and impact on productivity. To work at your best, try to keep your desk space clear, and guard it from being invaded by widgets and wires.
Synergy is a piece of software that switches your mouse and keyboard between any of the computers it’s running on. Unlike a KVM (see above), it doesn’t need any cables or buttons, and it works reliably with just about any keyboard, mouse and OS.
Synergy is available for Windows, Mac, Linux and even Raspberry Pi, in all common flavours. Just install it on each computer, and you’ll instantly be able to move your mouse between any of their screens. We automatically switch your keyboard to whichever screen your mouse is on, and activate specific key-bindings (which you can configure) for each system.
Synergy isn’t the only software solution out there, and the others are worth checking out too. When researching your options, make sure you check OS support and confirm there aren’t any lag issues. Sharing across systems is a complex problem; it took us years to work out how to make it seamless.
Working across multiple platforms will always be complex, but there’s no need to sacrifice your time or concentration just to move between them. Synergy helps multiple systems feel like a single development environment, so you can stay focused on coding the next killer app.