Tools Synergy Lead image: ©Kheng Ho Toh, 123RF.com
©Kheng Ho Toh, 123RF.com
 

Controlling multiple systems simultaneously with Synergy

Side Effect

The many approaches to managing remote computers include VNC, Nomachine, and SSH. Synergy is a clever tool that does a bit of lateral thinking and connects multiple PCs to create a virtual desktop. By Florian Effenberger

To operate Synergy, you need at least two PCs, each with its own operating system, monitor, and functional network card. The software supports Windows 95 through Windows 7, Mac OS X as of version 10.2, and Linux with the current X server. Prebuilt packages for Windows and Mac OS X are available from the Synergy homepage [1]. An RPM file is available for Linux and can be installed on most popular distributions with tools such as Alien [2], if needed. Some distributions also offer prebuilt packages; for example, Ubuntu Universe contains a package called Synergy.

Test Case

The administrator's workplace comprises a large desktop system running Ubuntu and a small notebook running Vista on the right. To avoid constantly switching between keyboards, the administrator has decided to use Synergy. The admin will work mainly on the large PC, which is the Ubuntu system. In Synergy-speak, this is referred to as the control system; the administrator will use the keyboard and mouse on this server. The other devices are clients.

Configuration

Before you start using Synergy, you need to configure it by editing the /etc/synergy.conf or ~/.synergy.conf text file. The elementary unit is a screen: Each computer belonging to a group, whether server or client, is a screen with a precisely defined position – just like the display arrangement in a configuration with multiple monitors. For each computer, you need to enter into the configuration file the name of the screen, its aliases, and its position relative to other devices – in both directions. Listing 1 contains an example with comments for the test case. The Synergy homepage documents many additional options [3].

Listing 1: Configuration

# Define screens
section: screens
  ubuntu:
  vista:
end
# Alternative names
section: aliases
  # ubuntu -> desktop
  ubuntu:
    desktop
  # vista -> notebook
  vista:
    notebook
end
# Screen arrangement
section: left
  # vista: right of ubuntu
  ubuntu:
    right = vista
  # ubuntu: left of vista
  vista:
    left = ubuntu
end

All options in the configuration file should be in lowercase. Also, make sure you use the correct line breaks, because Synergy is fussy about them and will not use the file if they are wrong. After completing all this work, you can launch the Synergy server on Ubuntu as a normal user by typing synergys. The -f parameter will prevent Synergy from disappearing into the background.

QuickSynergy gives you an even more convenient approach to configuration. On Ubuntu, you can download the package from the Universe repository and launch it with Applications | Tools | QuickSynergy after the install. Unfortunately, the program failed to launch a working server during my test.

The Vista client, which I want to control remotely with the Ubuntu system, is even easier to configure. After the installation, you can launch Synergy directly via the Start menu, and it will come up with a neat graphical interface (Figure 1). To open a connection to the server, select the Use another computer's shared keyboard and mouse (client) option and enter the name of the computer you require. Power users might also want to configure extras like the Logging Level, AutoStart, and network details.

Synergy as a client on Windows Vista.
Figure 1: Synergy as a client on Windows Vista.

Connecting the Screens

After configuring all the clients, you can simply run synergyc server IP (or click Start on Windows) to combine the screens. The whole thing is unspectacular at first, and you can continue to work on each system in the normal way.

However, if you move the mouse on the server beyond the right edge of the screen, the mouse pointer moves onto the Vista desktop just as on a single computer with multiple displays, but here, it moves between two computers with different platforms. Keyboard input also reaches the client while the focus is on its screen (i.e., the mouse cursor is displayed there). But, that's not all – Synergy also coordinates the clipboard between the two systems. According to the developers, Synergy automatically identifies the correct character set and converts line breaks between operating systems, which is perfect for centralized copying of long text blocks and configuration files. Pressing the Scroll key disables Synergy temporarily if needed.

In the configuration file, you can set a number of additional options. Among other things, Synergy can map keys between the server and the client, configure screen areas when you do not want to be able to toggle between screens, and perform certain actions at a key press. Synergy messes up some functions, however: In our lab, the tool failed to synchronize screen savers and failed to lock all the screens centrally. According to the homepage, the Mac OS X variant of the program, in particular, is not as mature as the Linux and Windows versions.

Conclusions

Synergy offers an interesting approach to controlling multiple computers centrally without investing in additional hardware. In contrast to legacy approaches, each system keeps its own display. The program is definitely useful for owners of multiple PCs. And the cross-operating system clipboard, which removes the need to copy text files, is really convenient. One item on my Synergy wish list, however, is easier configuration on Linux.