Running Synergy

Synergy lets you use one keyboard and mouse across multiple computers. To do so it requires that all the computers are connected to each other via TCP/IP networking. Most systems come with this installed.

Step 1 - Choose a server

The first step is to pick which keyboard and mouse you want to share. The computer with that keyboard and mouse is called the "primary screen" and it runs the synergy server. All of the other computers are "secondary screens" and run the synergy client.

Step 2 - Install the software

Second, you install the software. Choose the appropriate package and install it. For example, on Windows you would run SynergyInstaller. You must install the software on all the computers that will share the mouse and keyboard.

Step 3 - Configure and start the server

Next you configure the server. You'll tell synergy the name of the primary and secondary screens, which screens are next to which, and choose desired options. On Windows there's a dialog box for setting the configuration. On other systems you'll create a simple text file.

Note that when you tell synergy that screen A is to the left of screen B this does not imply that B is to the right of A. You must explicitly indicate both relations. If you don't do both then when you're running synergy you'll find you're unable to leave one of the screens.

Windows
On Windows run synergy by double clicking on the synergy file. This brings up a dialog. Configure the server:

Now click Test. The server will start and you'll see a console window with log messages telling you about synergy's progress. If an error occurs you'll get one or more dialog boxes telling you what the errors are; read the errors to determine the problem then correct them and try Test again.

Unix or Mac OS X
Create a text file named synergy.conf with the following:

    section: screens
       screen1:
       screen2:
    end
    section: links
       screen1:
           right = screen2
       screen2:
           left = screen1
    end
Replace each occurrence of screen1 with the host name of the primary screen computer (as reported by the hostname program) and screen2 with the host name of a secondary screen computer. In the above example, screen2 is to the right of screen1 and screen1 is to the left of screen2. If necessary you should replace right and left with left, right, up, or down. If you have more than two computers you can add those too: add each computer's host name in the screens section and add the appropriate links. See the configuration guide for more configuration possibilities.

Now start the server. Normally synergy wants to run "in the background." It detaches from the terminal and doesn't have a visible window, effectively disappearing from view. Until you're sure your configuration works, you should start synergy "in the foreground" using the -f command line option.

    synergys -f --config synergy.conf
Check the reported messages for errors. Use ctrl+c to stop synergy if it didn't stop automatically, correct any problems, and start it again.

Step 4 - Start the clients

Next you start the client on each computer that will share the server's keyboard and mouse.

Windows
On Windows run synergy by double clicking on the synergy file. This brings up a dialog. Configure the client:

Now click Test.

Unix or Mac OS X
To start a client, enter the following:

    synergyc -f server-host-name
where server-host-name is replaced by the host name of the computer running the synergy server.

Step 5 - Test

Clients should immediately report a successful connection or one or more error messages. Here are the typical problems and possible solutions:

If you get the error "Xlib: No protocol specified" you're probably running synergy as root while logged in as another user. X11 may prevent this for security reasons. Either run synergy as the same user that's logged in or (not recommended) use "xhost +" to allow anyone to connect to the display.

When successful you should be able to move the mouse off the appropriate edges of your server's screen and have it appear on a client screen. Try to move the mouse to each screen and check all the configured links. Check the mouse buttons and wheel and try the keyboard on each client. You can also cut-and-paste text, HTML, and images across computers (HTML and images are not supported on OS X yet).

Step 6 - Run

Once everything works correctly, stop all the clients then the server. Then start the server with the Start button on Windows and without the -f option on Unix and Mac OS X. Finally start the clients similarly.

You can also configure synergy to start automatically when your computer starts or when you log in. See the autostart guide for more information.

Command Line Options Guide

Common Command Line Options
The following options are supported by synergys and synergyc.

 -d, --debug level   use debugging level level
  --daemon run as a daemon (Unix) or background (Windows)
 -f, --no-daemon run in the foreground
 -n, --name name use name instead of the hostname
  --restart automatically restart on failures
 -1, --no-restart do not restart on failure
 -h, --help print help and exit
  --version print version information and exit

Debug levels are from highest to lowest: FATAL, ERROR, WARNING, NOTE, INFO, DEBUG, DEBUG1, and DEBUG2. Only messages at or above the given level are logged. Messages are logged to a terminal window when running in the foreground. Unix logs messages to syslog when running as a daemon. The Windows NT family logs messages to the event log when running as a service. The Windows 95 family shows FATAL log messages in a message box and others in a terminal window when running as a service.

The --name option lets the client or server use a name other than its hostname for its screen. This name is used when checking the configuration.

Neither the client nor server will automatically restart if an error occurs that is sure to happen every time. For example, the server will exit immediately if it can't find itself in the configuration. On X11 both the client and server will also terminate if the connection to the X server is lost (usually because it died).

Server Command Line Options

    synergys [options]
The server accepts the common options and:

 -a, --address address   listen for connections on address address
 -c, --config pathname   read configuration from pathname

address has one of the following forms:

    hostname
    :port
    hostname:port
hostname is a hostname or IP address of a network interface on the server system (e.g. somehost or 192.168.1.100). port is a port number from 1 to 65535. hostname defaults to the system's hostname and port defaults to 24800.

Client Command Line Options

    synergyc [options] address[:port]
address is the hostname or IP address of the server and port is the optional network port on the server to connect to. The client accepts the common options and:

   --camp   retry connection to server until successful
   --no-camp   try connection to server only once