Be the Puppet Master! Control Multiple PCs with one Keyboard and Mouse

In the average IT department, geek-credibility is bound up with the number of monitors you are simultaneously using. What about going one step further, and running them on several computers at once, with just one mouse and keyboard?

Previously, I discussed how to extend your desktop across another computer’s monitor. This would be useful if you have no more video ports on your main PC but still have a few spare monitors on which you’d like to spread your workspace across. It’s also useful in repurposing an old laptop that you haven’t gotten around to properly disposing of.

Notwithstanding the above, you may find yourself in the exact opposite position; that of wanting to use your main keyboard and mouse to spread out across several independently functioning PCs. This is usually done with a physical KVM (Keyboard, Video, Mouse) switch that allows you to switch one keyboard, monitor and mouse between different computers at the mere click of a button. An example would be this CablesToGo TruLink DVI KVM switch. However, what if the secondary computers involved have their own independent monitors that you want to use? So instead of a KVM solution it’s more of a “KM” solution. Keep that in mind. This software solution does not forego the need for each computer to have its own monitor.

So what’s not to like about KVM switches? They’re lovely! “KVM switches walk in beauty, like the night. Of cloudless climes and…” Oh, but wait one moment thou budding Byron! A physical KVM switch can be a lordly pest in two ways. The first is that it costs money. Oh sure, for some departments and businesses a $100 to $400 investment is acceptable, especially for such a star member of the IT team as yourself. However in some places the denarii are kept under the watchful guard of a fierce cohort headed by the most dread centurion of all, the CFO. Any solution that is either free or involving the least possible expense is always appreciated in those environments.

A second limitation of physical KVM switches is that switching from controlling one PC to another comes at the expense of visual contact with the first PC. You can only be viewing one PC at a time since by necessity the KVM switch is connected to one main monitor (or pair of monitors if you have a fancy switch). So you may have a query window open on one PC and then need to switch to the resource monitor on another PC, but you can’t view both at the same time.

Cue the entrance of software-based KVM solutions! Of course, keep in mind that they’re more properly known as “KM” software. KM software does not transport the remote computer’s video to you, it merely transports your keyboard and mouse input to the remote machine (hence the missing “V” in the acronym) and relies on the remote machine’s ability to drive video to its own monitor.

Having said that, it’s easy to see that the following utilities only work in a somewhat peculiar set of circumstances. To reiterate, you need to have multiple PCs, each with their own monitor(s) all within a close physical proximity of each other. If you only have one monitor to share between multiple PCs, then you’re stuck pleading with your centurion for some financing and hoping that he doesn’t retaliate and unleash his fiercest legionaries to audit your department’s budget. Do not mock the pasty appearance of an accountant. They can do things with profit and loss statements that can cripple the heartiest among us.

There are a number of utilities to perform the task laid out above. For the sake of this article I’ll focus on two main titles. The first is a commercial product, and the second is FOSS (That’s “Free Open Source Software” for those of us who spend too much time around proprietary kit).

MaxiVista

Does this software sound familiar? If you read the sister article to this one titled “Monitors! Windows Extended Across Windows” you’d recall that MaxiVista was one of the tools that allowed us to utilize another PC’s monitor as an extension to our main PC. Quite a versatile tool, MaxiVista also allows us to interact with multiple PCs using one keyboard and mouse.

MaxiVista comes in several editions, the cheapest one merely allowing you to have an extended screen across another PC’s monitor. If you’d like the ability to use MaxiVista as a KM tool, you’ll need to purchase at least the mezzo edition for $10 more. Fortunately you can download a trial to see if the product works for you.

One of the glaring limitations of MaxiVista is that it only works on Microsoft Windows. For many, I’m sure that is an acceptable limitation. However, some of us have a hectic gamut of operating system polytonality humming in our cubicle. If you can live with a Microsoft-centric solution, then continue reading. If not, skip down to the section on a competing tool called Synergy.

The installation of MaxiVista is straightforward enough. Very few options present themselves during installation. There are two installers included with MaxiVista. One of them is for the primary or “server” PC. The other is for the secondary PC(s) that you’d like to be able to control in addition to your main PC. As per the previously mentioned article, they could also be the PCs that you’d like to extend the primary PC’s desktop onto. It’s worth noting that it’s as simple as a right click to go from a KM setup to an extended desktop one.

1293-screen_sharing_image_1.png

This makes it incredibly easy to be controlling the PC next to you one minute and then simply choose to extend your desktop across the secondary PC the next. Quite a handy trick you’ve kicked off long-running operations on your secondary PC but you still want the extra screen real estate. Talk about multi-purposing your equipment!

Once you’ve installed the server and client components on the PCs involved, you’ll need to edit the options on the “server” or main PC. Right click the system tray icon for MaxiVista and select “options”. Lots of options exist and many of them are left as an exercise for the reader (they’re fairly self-explanatory; promise!). The options of primary importance for us right now are on the “network” tab.

1293-screen_sharing_image_2.png

On the network tab you can choose to scan the local subnet for devices that are running the client MaxiVista software or you can manually enter the IP addresses (helpful if your clients are on a separate subnet). In my case you only see the option to add a single secondary computer because I’m using the trial version of the software which is limited to only one secondary PC.

Your next task will be to open your main PC’s display properties and arrange the MaxiVista virtual monitor. In my case, MaxiVista’s virtual monitor is display 3. I’ve arranged it on the right of my main display since that’s the physical location of the monitor connected to my secondary PC.

1293-screen_sharing_image_3.jpg

Once that bit of housekeeping is finished I can now seamlessly move my mouse and keyboard across two PCs. This is an animated gif that illustrates how MaxiVista will work in “remote control mode”.

1293-maxivista.gif

It should also be noted that MaxiVista is limited to installing only four virtual display drivers so you can only ever have up to four extended or remotely controlled displays. That includes secondary PCs with multiple monitors. If perchance you have three secondary PCs, each with two monitors, you’ll only be able to utilize two of those PCs since they combine for a total of 4 monitors. One PC with four monitors will max out your quota as well.

But what if you have multiple non-Windows machines that you’d like to remotely control? Or perhaps your ice-blooded centurion won’t even budge on the $49 USD price tag of MaxiVista’s middle tiered edition. What is a poor plebeian to do? FOSS to the rescue!

Synergy

This project started as Synergy, but then fell silent in 2006. It was forked as Synergy+ in 2009, however in more recent times Synergy and Synergy+ have been merged. The project has now gone back to its original name (no more “+” symbol) and also has a snazzy Redmine-based website. Synergy strives to make a tool that allows for the seamless transition of a user’s keyboard and mouse to another PC on virtually any modern operating system. With packages spanning the OS spectrum from Windows to OS X to Ubuntu / Debian to Fedora / RedHat (including both 32 and 64 bit for each), there aren’t many people who will be left out of the party.

1293-screen_sharing_image_4.jpg

Graphic property of its respective owners. Originally found on http://synergy-foss.org/

There is no software separation of the client and server roles. When installed, the Synergy app can act as the client or server. Setting up the server is friendly enough in the latest 1.4.2 version (it used to be a lot worse, trust me).

1293-screen_sharing_image_5.jpg

To get up and running with Synergy, you’ll need to configure the server just a little bit. On the server configuration screen, you’ll see a matrix of cells that can contain different screens. By dragging and dropping the monitor located in the upper right of the dialog box, you can add remote screens and determine which side of your main PC’s screen will be the gateway to your secondary PCs.

1293-screen_sharing_image_6.jpg

Take careful note though! When editing the options for those secondary screens, you must name them exactly the name that those computers are actually given. Not just any remote PC can connect to a Synergy server; only those that the server is expecting via their name. The input box titled “screen name” is what corresponds to the machine’s name. You can also make multiple aliases for a single machine, however that isn’t necessary.

1293-screen_sharing_image_7.jpg

Once the server is expecting a client, you can start the service on the client PC and input the server’s IP address or DNS name and click “start”.

1293-screen_sharing_image_8.jpg

If you have trouble connection your clients to your server, make sure that the server has TCP port 24800 unblocked. As you might have noticed from the pictures above, I’m running the Synergy server on a Linux machine (Fedora 14 to be precise) and the client on a Windows machine (Windows 7 Professional x64 ). I can happily sachet between PCs using the same keyboard and mouse. Today, for instance, I would take a few moments to check up on the computations the Windows 7 machine was performing and then effortlessly move back to my Fedora machine to get back to more menial tasks.

Concerned about security? Since Synergy does not have any encryption or authentication in place in the current version (with the exception of the limited “authentication” provided by the PC name restriction mentioned above) you must provide your own. If you want an encrypted connection between PCs, you can simply run an SSH server on each PC encrypt traffic on port 24800.

Synergy does provide some more exciting options, such as the ability to lock your cursor to one remote screen (think “gaming”), the ability to autostart the program, custom hot keys to quickly switch the cursor to a different screen, and more!

Is Synergy perfect? Well, no. As I use it, sometimes the cursor will disappear and I’ll be forced to blindly struggle for a bit before it reappears. However, I think that has more to do with me using some virtualization gizmos on my Fedora machines than it does a pure Synergy bug. Encouragingly, the project is alive and healthy with plenty of activity on their Redmine site logged virtually every day.

Between Maxivista and Synergy, there should be a solution to make you a little happier as well as appease the mighty centurion in the corner office with the “Trust me, I’m a comptroller” coffee mug. If not, I hear rowing in the galleys will give you a killer set of latissimus dorsi so you’ve got a career as a fitness model ahead of you!