Open-source KVM software
Go to file
crs 9dabd425a5 Added check for the screen saver actually being active before
entering the loop waiting for it to deactivate.  The failure
to check was causing the screen saver code to kick in when
the screen saver timeout occurred, even if the screen saver
wasn't enabled (because Windows still sends the screen saver
activating message for no good reason when the screen saver
is disabled).
2003-03-21 19:16:37 +00:00
cmd Fixed icons. 2003-03-21 19:14:10 +00:00
config Changes to support building on solaris, irix, and darwin. Also 2002-12-25 10:35:59 +00:00
dist removed PORTING from binary distribution. 2002-09-02 17:49:05 +00:00
doc Moved CPrimaryScreen and CSecondaryScreen to the lib/synergy 2003-01-05 21:48:54 +00:00
examples added EXTRA_* files to get `make dist' doing the right thing. 2002-07-31 16:27:06 +00:00
lib Added check for the screen saver actually being active before 2003-03-21 19:16:37 +00:00
nodist Added ability to filter out filespec prefixes and removed @... 2002-12-25 19:20:12 +00:00
acinclude.m4 Fixed error in configure for Darwin. 2003-01-16 22:55:07 +00:00
all.dsp Ported recent changes to win32 and fixed CRLF problems with project 2002-10-29 22:07:55 +00:00
AUTHORS changed formatting and other documentation edits. 2002-08-02 17:53:23 +00:00
BUGS Documentation update. 2002-12-25 23:49:42 +00:00
ChangeLog Updates for version 1.0.3. 2003-02-17 16:20:49 +00:00
configure.in Changed version to 1.0.5. 2003-02-22 15:04:09 +00:00
COPYING added files for release. 2002-08-01 18:07:48 +00:00
FAQ Added info about using SSH for authentication and encryption. 2003-02-01 18:10:43 +00:00
HISTORY changed formatting and other documentation edits. 2002-08-02 17:53:23 +00:00
INSTALL Added info about using SSH for authentication and encryption. 2003-02-01 18:10:43 +00:00
Makefile.am Added a dist-pkg target to put the binary distribution files into 2003-01-18 10:49:13 +00:00
NEWS Updates for version 1.0.3. 2003-02-17 16:20:49 +00:00
PORTING Moved CPrimaryScreen and CSecondaryScreen to the lib/synergy 2003-01-05 21:48:54 +00:00
README Added info about using SSH for authentication and encryption. 2003-02-01 18:10:43 +00:00
synergy.dsw Refactored some platform dependent code into a new library, 2003-01-04 22:01:32 +00:00
TODO Added info about using SSH for authentication and encryption. 2003-02-01 18:10:43 +00:00

Synergy
=======

synergy: [noun] a mutually advantageous conjunction of distinct elements

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.  It's intended for users
with multiple computers on their desk since each system uses its
own display.

Redirecting the mouse and keyboard is as simple as moving the mouse
off the edge of your screen.  Synergy also merges the clipboards of
all the systems into one, allowing cut-and-paste between systems.
Furthermore, it synchronizes screen savers so they all start and stop
together and, if screen locking is enabled, only one screen requires
a password to unlock them all.

Synergy is open source and released under the GNU Public License (GPL).

The synergy home page is:
http://synergy2.sourceforge.net/

The synergy project page is:
http://sourceforge.net/projects/synergy2/

Report bugs to:
http://sourceforge.net/tracker/?func=add&group_id=59275&atid=490467


Please see the following files for more information:
AUTHORS   -- The list of synergy's authors
BUGS      -- A list of known bugs and limitations
COPYING   -- The license synergy is release under
FAQ       -- Frequently asked questions about synergy
HISTORY   -- A brief history of synergy
INSTALL   -- Detailed build and installation instructions
NEWS      -- News about the synergy project
PORTING   -- Porting guide for developers
TODO      -- List of things to add to synergy


System Requirements
-------------------

* All operating systems:
  keyboard,
  mouse,
  TCP/IP networking;

* Microsoft Windows 95, Windows 98, Windows Me (the Windows 96 family);

* Microsoft Windows NT, Windows 2000, Windows XP (the Windows NT family);

* Unix:
  X Windows version 11 revision 4 or up with the XTEST extension
    (use `xdpyinfo | grep XTEST' to check for XTEST).

In this document, "Unix" means any of the following:  Linux, Solaris,
Irix.


Installation
------------

See INSTALL for detailed build and installation instructions.


Quick Start
-----------
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.

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.  The Windows NT
family, starting with NT 4 with service pack 3, is the best choice
for the primary screen but Unix is good too.  (This is based on the
known bugs;  see BUGS for more details.)

Second, you install the software.  Choose the appropriate package
and install it.  On Windows you should unzip the files into the
`Program Files' directory;  all the files will be put into a new
directory named `Synergy' under `Program Files'.  You must install
the software on all the computers that will share the mouse and
keyboard.

Third, you configure and start the server.
  Windows
  -------
  Run `synergy' by double clicking on it.  This brings up a dialog.
  Configure the server:

  * Click the `Server' radio button
  * Click `Add' to add the server to the `Screens' list
	* Enter the name of server (the computer name is recommended)
	* Enter other names the server is known by
	* Click OK
  * Use `Add' to add your other computers
  * Use the controls under `Layout' to link screens together
	* Click (once) on the server's name in the `Screens' list
	* Choose the screen to the left of the server
      * Use `---' if there is no screen to the left of the server
	* Choose the screens to the right, above and below the server
	* Repeat the above steps for all the other screens
  * Enter the server's screen name next to `Screen Name'
	* This defaults to the computer's name (recommended)

  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 a dialog box telling you synergy is about to quit;
  read the log messages to determine the problem then correct it and try
  `Test' again.

  Unix
  ----
  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 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.

  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,
  correct any problems, and start it again.

Finally, start the clients.
  Windows
  -------
  Run `synergy' on the client by double clicking on it.  Configure the
  client:

  * Click the `Client' radio button
  * Enter the server's computer name in `Server Host Name'
	* Do not use any of the server's screen names, unless one of those
    	is also the computer name
  * Enter the client's screen name next to `Screen Name'
	* This defaults to the computer's name (recommended)
	* This must be one of the names in the server's `Screens' list
  * Click `Test'

  If an error occurs you'll get a dialog box telling you synergy is
  about to quit;  read the log messages to determine the problem then
  correct it and try `Test' again.

  Unix
  ----

  To start a client, enter the following:

	synergyc -f <server-host-name>

  where `<server-host-name>' is replaced by the name of the computer
  running the synergy server.  If an error is reported use ctrl+c to
  stop synergy, fix the error, and try again.

Both the client and server should immediately report the connection
or an error.  If successful, you should now be able to move the
mouse off the appropriate edge of your server's screen and have it
appear on the client's screen.  Use the mouse and keyboard normally
except use the edge of the screens to jump to other screens.  You
can also cut-and-paste across computers.  Currently, only text
transfers between computers.  Start the remaining clients.

Once the configuration is verified, see the instructions in INSTALL
under `Starting Automatically on ...' for details on running synergy
in the background and on starting synergy automatically when you start
your computers.


Tips and Tricks
---------------
* Be aware that not all keystrokes can be handled by synergy.  In
  particular, ctrl+alt+del is not handled.  You cannot use synergy
  to log into a Windows NT family system that requires the user to
  press ctrl+alt+del to log on.  You'll need to keep that computer's
  keyboard handy in order to log on.

* To work around the lack of ctrl+alt+del, you can configure Windows
  2000 and XP to not require ctrl+alt+del to log on using the System
  control panel.  If you're the only user of an NT system you might
  want to enable auto-logon.  In any case, you should keep each
  computer's keyboard handy, perhaps under the desk or on top of the
  computer itself.  If the system supports USB you should also be able
  to attach/detach a keyboard as necessary.

* A screen can be its own neighbor.  That allows a screen to "wrap".
  For example, if a configuration linked the left and right sides of
  a screen to itself then moving off the left of the screen would put
  the mouse at the right of the screen and vice versa.

* You cannot switch screens when a key or mouse button is pressed.

* You cannot switch screens when the scroll lock it toggled on.  Use
  this to prevent unintentional switching.

* Turn off mouse driven virtual desktop switching on X windows.  It
  will interfere with synergy.  Use keyboard shortcuts instead.

* Synergy's screen saver synchronization works best with xscreensaver
  under X windows.  Synergy works better with xscreensaver if it is
  using one of the screen saver extensions.  Prior to xscreensaver 4.0
  you can use `-mit-extension', `-sgi-extension', or `-xidle-extension'
  command line options to enable an extension (assuming your server has
  the extension).  Starting with 4.0 you must enable the corresponding
  option in your .xscreensaver file.

* Synergy automatically converts newlines in clipboard text (Unix
  expects \n to end each line while Windows expects \r\n).

* Clients can be started and stopped at any time.  When a screen is
  not connected, the mouse will jump over that screen as if the mouse
  had moved all the way across it and jumped to the next screen.

* A client's keyboard and mouse are fully functional while synergy is
  running.  You can use them in case synergy locks up.

* Strong authentication and encryption is available by using SSH.  See
  the INSTALL file for more information.  Synergy does not otherwise
  provide secure communications and it should not be used on or over
  untrusted networks.


Bug Reports
-----------

Synergy is being improved all the time but we can only fix problems
that we know about.  Please let us know of any problems you encounter,
including confusing or unhelpful documentation.  File reports at:

  http://sourceforge.net/tracker/?func=add&group_id=59275&atid=490467