Updated documentation. Converted most documation to HTML.
This commit is contained in:
parent
1623701fc9
commit
4be61c3817
7
AUTHORS
7
AUTHORS
|
@ -1,7 +0,0 @@
|
||||||
Synergy Authors
|
|
||||||
===============
|
|
||||||
|
|
||||||
Chris Schoeneman <crs23@bigfoot.com> -- Creator, owner, X11, Win32
|
|
||||||
Ryan Breen <ryan@ryanbreen.com> -- Initial Mac OS X port
|
|
||||||
Guido Poschta <moolder@gmx.net> -- Windows installer
|
|
||||||
Bertrand Landry Hetu <bertrand@landryhetu.com> -- Mac OS X port
|
|
12
BUGS
12
BUGS
|
@ -1,12 +0,0 @@
|
||||||
Known Bugs in Synergy
|
|
||||||
=====================
|
|
||||||
|
|
||||||
View known bugs at:
|
|
||||||
http://sourceforge.net/tracker/?group_id=59275&atid=490467
|
|
||||||
|
|
||||||
Report bugs at:
|
|
||||||
http://sourceforge.net/tracker/?group_id=59275&atid=490467
|
|
||||||
|
|
||||||
When reporting bugs, please include the version of the operating
|
|
||||||
system you're using (on the server and relevant clients) and what
|
|
||||||
locales you use.
|
|
199
FAQ
199
FAQ
|
@ -1,199 +0,0 @@
|
||||||
Synergy Frequently Asked Questions
|
|
||||||
==================================
|
|
||||||
|
|
||||||
Questions
|
|
||||||
---------
|
|
||||||
1. Why doesn't ctrl+alt+del work on secondary screens?
|
|
||||||
2. Can the server and client be using different operating systems?
|
|
||||||
3. What's the difference between synergy and x2x, x2vnc, etc?
|
|
||||||
4. What does "Cannot initialize hook library" mean?
|
|
||||||
5. What security/encryption does synergy provide?
|
|
||||||
6. What should I call my screens in the configuration?
|
|
||||||
7. Why do my CapsLock and NumLock keys act funny?
|
|
||||||
8. Can synergy share the display in addition to the mouse and keyboard?
|
|
||||||
9. Can synergy do drag and drop between computers?
|
|
||||||
10. Do AltGr or Mode-Switch or ISO_Level3_Shift work?
|
|
||||||
11. Why isn't synergy ported to platform XYZ?
|
|
||||||
12. My client can't connect. What's wrong?
|
|
||||||
13. Linking fails on Solaris. What's wrong?
|
|
||||||
14. The screen saver never starts. Why not?
|
|
||||||
15. I can't switch screens anymore for no apparent reason. Why?
|
|
||||||
16. I get the error 'Xlib: No protocol specified'. Why?
|
|
||||||
17. The cursor goes to secondary screen but won't come back. Why?
|
|
||||||
18. The cursor wraps from one edge of the screen to the opposite. Why?
|
|
||||||
|
|
||||||
Answers
|
|
||||||
-------
|
|
||||||
1. Why doesn't ctrl+alt+del work on secondary screens?
|
|
||||||
|
|
||||||
Synergy isn't able to capture ctrl+alt+del on PC compatible
|
|
||||||
systems because it's handled completely differently than
|
|
||||||
other keystrokes. However, when the mouse is on a client
|
|
||||||
screen, pressing ctrl+alt+pause will simulate ctrl+alt+del
|
|
||||||
on the client. (A client running on Windows NT, 2000, or XP
|
|
||||||
must be running as a service for this to work.)
|
|
||||||
|
|
||||||
2. Can the server and client be using different operating systems?
|
|
||||||
|
|
||||||
Yes. The synergy network protocol is platform neutral so
|
|
||||||
synergy doesn't care what operating systems are running on
|
|
||||||
the server and clients.
|
|
||||||
|
|
||||||
3. What's the difference between synergy and x2x, x2vnc, etc?
|
|
||||||
|
|
||||||
Unlike x2x, synergy supports any number of computers and
|
|
||||||
it doesn't require X on Microsoft Windows platforms. It
|
|
||||||
also has more advanced clipboard support and synchronizes
|
|
||||||
screensavers. x2vnc is also limited to two computers,
|
|
||||||
requires the separate vnc package, and is really only
|
|
||||||
appropriate for using an X system to control a non-X system.
|
|
||||||
However, the right tool for the job is whatever tool works
|
|
||||||
best for you.
|
|
||||||
|
|
||||||
4. What does "Cannot initialize hook library" mean?
|
|
||||||
|
|
||||||
This error can occur on a synergy server running on a
|
|
||||||
Microsoft Windows operating system. It means that synergy
|
|
||||||
is already running or possibly was not shut down properly.
|
|
||||||
If it's running then first end the synergy task. If it's
|
|
||||||
not then try logging off and back on or rebooting then
|
|
||||||
starting synergy again.
|
|
||||||
|
|
||||||
5. What security/encryption does synergy provide?
|
|
||||||
|
|
||||||
Synergy provides no built-in encryption or authentication.
|
|
||||||
Given that, synergy should not be used on or over any untrusted
|
|
||||||
network, especially the Internet. It's generally fine for home
|
|
||||||
networks. Future versions may provide built-in encryption and
|
|
||||||
authentication.
|
|
||||||
|
|
||||||
Strong encryption and authentication is available through SSH
|
|
||||||
(secure shell). Run the SSH daemon (i.e. server) on the same
|
|
||||||
computer that you run the synergy server. It requires no
|
|
||||||
special configuration to support synergy. On each synergy
|
|
||||||
client system, run SSH with port forwarding:
|
|
||||||
|
|
||||||
ssh -f -N -L 24800:<server-hostname>:24800 <server-hostname>
|
|
||||||
|
|
||||||
where <server-hostname> is the name of the SSH/synergy server.
|
|
||||||
Once ssh authenticates itself, start the synergy client
|
|
||||||
normally except use `localhost' or `127.0.0.1' as the server's
|
|
||||||
address. SSH will then encrypt all communication on behalf of
|
|
||||||
synergy. Authentication is handled by the SSH authentication.
|
|
||||||
|
|
||||||
A free implementation of SSH for Linux and many Unix systems
|
|
||||||
called OpenSSH is available from http://www.openssh.com/. For
|
|
||||||
Windows there's a port of OpenSSH using Cygwin
|
|
||||||
(http://www.cygwin.com/).
|
|
||||||
|
|
||||||
6. What should I call my screens in the configuration?
|
|
||||||
|
|
||||||
You can use any unique name in the configuration file for each
|
|
||||||
screen but it's easiest to use the hostname of the computer.
|
|
||||||
That's the computer name not including the domain. For example,
|
|
||||||
a computer with the fully qualified domain name `xyz.foo.com' has
|
|
||||||
the hostname `xyz'. There should also be an alias for `xyz' to
|
|
||||||
`xyz.foo.com'. If you don't use the computer's hostname, you
|
|
||||||
have to tell synergy the name of the screen using a command line
|
|
||||||
option, or the startup dialog on Windows.
|
|
||||||
|
|
||||||
7. Why do my CapsLock and NumLock keys act funny?
|
|
||||||
|
|
||||||
Some systems treat the Caps-Lock and Num-Lock keys differently
|
|
||||||
than all the others. Whereas most keys report going down when
|
|
||||||
physically pressed and going up when physically released, on
|
|
||||||
these systems the Caps-Lock and Num-Lock keys report going down
|
|
||||||
when being activated and going up when being deactivated. That
|
|
||||||
is, when you press and release, say, Caps-Lock to activate it, it
|
|
||||||
only reports going down, and when you press and release to
|
|
||||||
deactivate it, it only reports going up. This confuses synergy.
|
|
||||||
|
|
||||||
You can solve the problem by changing your configuration file.
|
|
||||||
In the screens section, following each screen that has the
|
|
||||||
problem, add either or both of these lines as appropriate:
|
|
||||||
|
|
||||||
halfDuplexCapsLock = true
|
|
||||||
halfDuplexNumLock = true
|
|
||||||
|
|
||||||
Then restart synergy on the server.
|
|
||||||
|
|
||||||
8. Can synergy share the display in addition to the mouse and keyboard?
|
|
||||||
|
|
||||||
No. Synergy is a KM solution not a KVM (keyboard, video, mouse)
|
|
||||||
solution. However, future versions will probably support KVM.
|
|
||||||
Hopefully, this will make synergy suitable for managing large
|
|
||||||
numbers of headless servers.
|
|
||||||
|
|
||||||
9. Can synergy do drag and drop between computers?
|
|
||||||
|
|
||||||
No. That's a very cool idea and it'll be explored. However, it's
|
|
||||||
also clearly difficult and may take a long time to implement.
|
|
||||||
|
|
||||||
10. Does AltGr/Mode-Switch/ISO_Level3_Shift work?
|
|
||||||
|
|
||||||
Yes, as of 1.0.12 synergy has full support for AltGr/Mode-switch.
|
|
||||||
That includes support for most (all?) European keyboard layouts.
|
|
||||||
All systems should be using the same keyboard layout, though, for
|
|
||||||
all characters to work. (Any character missing from a client's
|
|
||||||
layout cannot be generated by synergy.) There is experimental
|
|
||||||
support for ISO_Level3_Shift in 1.1.3.
|
|
||||||
|
|
||||||
11. Why isn't synergy ported to platform XYZ?
|
|
||||||
|
|
||||||
Probably because the developers don't have access to platform XYZ
|
|
||||||
and/or are unfamiliar with development on XYZ. Also, synergy has
|
|
||||||
inherently non-portable aspects so there's a not insignificant
|
|
||||||
effort involved in porting.
|
|
||||||
|
|
||||||
12. My client can't connect. What's wrong?
|
|
||||||
|
|
||||||
A common mistake when starting the client is to give the wrong
|
|
||||||
server host name. The last synergyc command line option (Unix)
|
|
||||||
or the "Server Host Name" edit field (Windows) should be the
|
|
||||||
host name (or IP address) of the server *not* the client's host
|
|
||||||
name. If you get the error "connection failed: cannot connect
|
|
||||||
socket" followed by "the attempt to connect was forcefully
|
|
||||||
rejected" or "connection refused" then the server isn't started,
|
|
||||||
can't bind the address, or the client is connecting to the wrong
|
|
||||||
host name/address or port.
|
|
||||||
|
|
||||||
13. Linking fails on Solaris. What's wrong?
|
|
||||||
|
|
||||||
Did you add `--x-includes=/usr/openwin/include
|
|
||||||
--x-libraries=/usr/openwin/lib' (without the linebreak) to the
|
|
||||||
`configure' command line? Solaris puts the X11 includes and
|
|
||||||
libraries in an unusual place and the above lets synergy find
|
|
||||||
them.
|
|
||||||
|
|
||||||
14. The screen saver never starts. Why not?
|
|
||||||
|
|
||||||
If the synergy server is on X Windows then the screen saver will
|
|
||||||
not start while the mouse is on a client screen. This is a
|
|
||||||
consequence of how X Windows, synergy and xscreensaver work.
|
|
||||||
|
|
||||||
15. I can't switch screens anymore for no apparent reason. Why?
|
|
||||||
|
|
||||||
This should not happen with 1.1.3 and up. Earlier versions of
|
|
||||||
synergy would not allow switching screens when a key was down and
|
|
||||||
sometimes it would believe a key was down when it was not.
|
|
||||||
|
|
||||||
16. I get the error 'Xlib: No protocol specified'. Why?
|
|
||||||
|
|
||||||
You're running synergy without authorization to connect to the
|
|
||||||
X display. Typically the reason is running synergy as root when
|
|
||||||
logged in as non-root. Just run synergy as the same user that's
|
|
||||||
logged in.
|
|
||||||
|
|
||||||
17. The cursor goes to secondary screen but won't come back. Why?
|
|
||||||
|
|
||||||
Your configuration is incorrect. You must indicate the neighbors
|
|
||||||
of every screen. Just because you've configured 'Apple' to be to
|
|
||||||
the left of 'Orange' does not mean that 'Orange' is to the right
|
|
||||||
of 'Apple'. You must provide both in the configuration.
|
|
||||||
|
|
||||||
18. The cursor wraps from one edge of the screen to the opposite. Why?
|
|
||||||
|
|
||||||
Because you told it to. If you list 'Orange' to be to the left of
|
|
||||||
'Orange' then moving the mouse off the left edge of 'Orange' will
|
|
||||||
make it jump to the right edge. Remove the offending line from the
|
|
||||||
configuration if you don't want that behavior.
|
|
656
INSTALL
656
INSTALL
|
@ -1,656 +0,0 @@
|
||||||
Synergy Installation Instructions
|
|
||||||
=================================
|
|
||||||
|
|
||||||
Prerequisites for building
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
To build synergy from the sources you'll need the following:
|
|
||||||
|
|
||||||
Windows:
|
|
||||||
* VC++ 6.0 or up
|
|
||||||
|
|
||||||
Unix:
|
|
||||||
* gcc 2.95 (or up)
|
|
||||||
* X11R4 or up headers and libraries
|
|
||||||
|
|
||||||
Mac OS X:
|
|
||||||
* XCode; or gcc 2.95 (or up) and make
|
|
||||||
|
|
||||||
In this document, "Unix" means any of the supported Unix or Unix-like
|
|
||||||
(e.g. Linux) operating systems.
|
|
||||||
|
|
||||||
|
|
||||||
Configuring the build
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
This step is only necessary when building on Unix or Mac OS X if not
|
|
||||||
using XCode.
|
|
||||||
|
|
||||||
To configure the build for your platform use the configure script:
|
|
||||||
|
|
||||||
./configure
|
|
||||||
|
|
||||||
For a list of options to configure use:
|
|
||||||
|
|
||||||
./configure --help
|
|
||||||
|
|
||||||
On Solaris you may need to use:
|
|
||||||
|
|
||||||
./configure --x-includes=/usr/openwin/include --x-libraries=/usr/openwin/lib
|
|
||||||
|
|
||||||
so synergy can find the X11 includes and libraries.
|
|
||||||
|
|
||||||
|
|
||||||
Building
|
|
||||||
--------
|
|
||||||
|
|
||||||
Windows:
|
|
||||||
Start VC++ and open `synergy.dsw'. Set the active configuration
|
|
||||||
(Build | Set Active Configuration) to `All - Debug' or `All - Release'
|
|
||||||
then build. Binaries are built into ./debug or ./build.
|
|
||||||
|
|
||||||
Unix or Mac OS X without XCode:
|
|
||||||
Simply enter:
|
|
||||||
|
|
||||||
make
|
|
||||||
|
|
||||||
This will build the client and server and leave them in their
|
|
||||||
respective source directories.
|
|
||||||
|
|
||||||
Mac OS X with XCode:
|
|
||||||
Start XCode and open the synery.xcode project. Build the 'all'
|
|
||||||
project using the Deployment flavor.
|
|
||||||
|
|
||||||
|
|
||||||
Installing
|
|
||||||
----------
|
|
||||||
|
|
||||||
Windows:
|
|
||||||
You'll need NSIS, the Nullsoft Scriptable Install System, available
|
|
||||||
from http://nsis.sourceforge.net/. Build `All - Release' then build
|
|
||||||
'Installer - Release'. This creates SynergyInstaller.exe in the top
|
|
||||||
level directory. Run this to install.
|
|
||||||
|
|
||||||
Alternatively, you can simply copy the following files from the Debug
|
|
||||||
or Release directory to a directory you choose (perhaps under the
|
|
||||||
Program Files directory):
|
|
||||||
|
|
||||||
* synergy.exe
|
|
||||||
* synergyc.exe
|
|
||||||
* synergys.exe
|
|
||||||
* synrgyhk.dll
|
|
||||||
|
|
||||||
Unix or Mac OS X without XCode:
|
|
||||||
make install
|
|
||||||
|
|
||||||
will install the client and server into /usr/local/bin unless you
|
|
||||||
specified a different directory when you ran configure.
|
|
||||||
|
|
||||||
Mac OS X with XCode:
|
|
||||||
Copy the following files from ./build to a convenient location:
|
|
||||||
|
|
||||||
* synergyc
|
|
||||||
* synergys
|
|
||||||
|
|
||||||
See `Starting Automatically on ...' below for details on how to have
|
|
||||||
synergy start up automatically when the computer starts.
|
|
||||||
|
|
||||||
|
|
||||||
Running on Windows
|
|
||||||
------------------
|
|
||||||
|
|
||||||
Double click `synergy' on the server computer. The server is the
|
|
||||||
computer that shares its mouse and keyboard. This brings up a
|
|
||||||
dialog that lets you configure the server then test out the
|
|
||||||
configuration or start the server.
|
|
||||||
|
|
||||||
First configure the server. Click the `Server' radio button
|
|
||||||
|
|
||||||
* Click the `Server' radio button
|
|
||||||
* Click `Add' to add the server to the `Screens' list
|
|
||||||
* Enter the name of server (the computer's name is recommended)
|
|
||||||
* Enter other names the server is known by
|
|
||||||
* Click OK
|
|
||||||
* Use `Add' to add your other computers
|
|
||||||
* Using a computer's name as its screen name is recommended
|
|
||||||
* Choose desired screen options on the `Add' dialog
|
|
||||||
* 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
|
|
||||||
* Use `Options...' to set desired options
|
|
||||||
* If the server's screen name is not the server's computer name:
|
|
||||||
* Click `Advanced...'
|
|
||||||
* Enter the server's screen name next to `Screen Name'
|
|
||||||
* Click `OK'
|
|
||||||
* Click `Test'
|
|
||||||
|
|
||||||
Note that when you link screens together you must explictly link in both
|
|
||||||
directions. For instance, if you have computer A on the left of B then
|
|
||||||
you must indicate A is to the left of B *and* that B is to the right of
|
|
||||||
A. If you don't do both then you'll find you're unable to leave one of
|
|
||||||
the screens.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Now that the server is running, you'll need to start a client. On any
|
|
||||||
client computer, double click `synergy'. Of course, you'll need to
|
|
||||||
have installed the four files listed under `Installing' above on the
|
|
||||||
client computer. Then 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
|
|
||||||
* If the client's screen name is not the client's computer name:
|
|
||||||
* Click `Advanced...'
|
|
||||||
* Enter the client's screen name next to `Screen Name'
|
|
||||||
* Click `OK'
|
|
||||||
* Click `Test'
|
|
||||||
|
|
||||||
If all goes well, the client connects to the server successfully and
|
|
||||||
the mouse and keyboard are shared. 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. When
|
|
||||||
everything is working correctly, install the software on the other
|
|
||||||
client computers (if any) and repeat the steps for configuring the
|
|
||||||
client on each.
|
|
||||||
|
|
||||||
Once the clients and server are working you can stop the clients and
|
|
||||||
server by clicking the `Stop' button on each computer or by right
|
|
||||||
clicking on the tray icon (by the clock in the task bar) and choosing
|
|
||||||
`Quit'. Then click `Start' on the server computer then on each of
|
|
||||||
the clients. Synergy will start and the dialog window will close.
|
|
||||||
You can stop synergy or check on its status using the tray icon.
|
|
||||||
|
|
||||||
See `Starting Automatically on Windows' below for configuring synergy
|
|
||||||
to start automatically when the computer starts.
|
|
||||||
|
|
||||||
|
|
||||||
Configuring the Server on Unix or Mac OS X
|
|
||||||
------------------------------------------
|
|
||||||
|
|
||||||
The synergy server requires configuration. The configuration file is a
|
|
||||||
plain text file broken into sections. Each section has the form:
|
|
||||||
|
|
||||||
section: <name>
|
|
||||||
<args>
|
|
||||||
end
|
|
||||||
|
|
||||||
Comments are introduced by `#' and continue to the end of the line.
|
|
||||||
The file can have the following sections. The `screens' section must
|
|
||||||
appear before the `links' and `aliases' sections. Use any text editor
|
|
||||||
to create the configuration file.
|
|
||||||
|
|
||||||
* screens
|
|
||||||
<args> is a list of screen names, one name per line, each
|
|
||||||
followed by a colon. Names are arbitrary strings but they
|
|
||||||
must be unique. The hostname of each computer is recommended.
|
|
||||||
There must be a screen name for the server and each client.
|
|
||||||
Each screen can specify a number of options. Options have the
|
|
||||||
form `name = value' and a listed one per line after the screen
|
|
||||||
name.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
section: screens
|
|
||||||
moe:
|
|
||||||
larry:
|
|
||||||
halfDuplexCapsLock = true
|
|
||||||
halfDuplexNumLock = true
|
|
||||||
curly:
|
|
||||||
meta = alt
|
|
||||||
end
|
|
||||||
|
|
||||||
This declares three screens named: moe, larry, and curly.
|
|
||||||
Screen `larry' has half-duplex caps lock and num lock keys
|
|
||||||
(see below) and screen `curly' converts the meta modifier key
|
|
||||||
to the alt key.
|
|
||||||
|
|
||||||
Screen can have the following options:
|
|
||||||
|
|
||||||
halfDuplexCapsLock = {true|false}
|
|
||||||
This computer has a caps lock key that doesn't report a
|
|
||||||
press and a release event when the user presses it but
|
|
||||||
instead reports a press event when it's turned on and a
|
|
||||||
release event when it's turned off. If caps lock acts
|
|
||||||
strangely on all screens then you may need this option
|
|
||||||
on the server screen. If it acts strangely on one
|
|
||||||
screen then that screen may need the option.
|
|
||||||
|
|
||||||
halfDuplexNumLock = {true|false}
|
|
||||||
This is identical to halfDuplexCapsLock except it
|
|
||||||
applies to the num lock key.
|
|
||||||
|
|
||||||
xtestIsXineramaUnaware = {true|false}
|
|
||||||
This option works around a bug in the XTest extension
|
|
||||||
when used in combination with Xinerama. It affects
|
|
||||||
X11 clients only. Not all versions of the XTest
|
|
||||||
extension are aware of the Xinerama extension. As a
|
|
||||||
result, they do not move the mouse correctly when
|
|
||||||
using multiple Xinerama screens. This option is
|
|
||||||
currently true by default. If you know your XTest
|
|
||||||
extension is Xinerama aware then set this option to
|
|
||||||
false.
|
|
||||||
|
|
||||||
shift = {shift|ctrl|alt|meta|super|none}
|
|
||||||
ctrl = {shift|ctrl|alt|meta|super|none}
|
|
||||||
alt = {shift|ctrl|alt|meta|super|none}
|
|
||||||
meta = {shift|ctrl|alt|meta|super|none}
|
|
||||||
super = {shift|ctrl|alt|meta|super|none}
|
|
||||||
Map a modifier key pressed on the server's keyboard to
|
|
||||||
a different modifier on this client. This option only
|
|
||||||
has an effect on a client screen; it's accepted and
|
|
||||||
ignored on the server screen.
|
|
||||||
|
|
||||||
You can map, say, the shift key to shift (the default),
|
|
||||||
ctrl, alt, meta, super or nothing. Normally, you
|
|
||||||
wouldn't remap shift or ctrl. You might, however, have
|
|
||||||
an X11 server with meta bound to the Alt keys. To use
|
|
||||||
this server effectively with a windows client, which
|
|
||||||
doesn't use meta but uses alt extensively, you'll want
|
|
||||||
the windows client to map meta to alt (using `meta =
|
|
||||||
alt').
|
|
||||||
|
|
||||||
* aliases
|
|
||||||
<args> is a list of screen names just like in the `screens'
|
|
||||||
section except each screen is followed by a list of aliases,
|
|
||||||
one per line *not* followed by a colon. An alias is a
|
|
||||||
screen name and must be unique. During screen name lookup
|
|
||||||
each alias is equivalent to the screen name it aliases. So
|
|
||||||
a client can connect using its canonical screen name or any
|
|
||||||
of its aliases.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
section: aliases
|
|
||||||
larry:
|
|
||||||
larry.stooges.com
|
|
||||||
curly:
|
|
||||||
shemp
|
|
||||||
end
|
|
||||||
|
|
||||||
Screen `larry' is also known as `larry.stooges.com' and can
|
|
||||||
connect as either name. Screen `curly' is also known as
|
|
||||||
`shemp'. (Hey, it's just an example.)
|
|
||||||
|
|
||||||
* links
|
|
||||||
<args> is a list of screen names just like in the `screens'
|
|
||||||
section except each screen is followed by a list of links,
|
|
||||||
one per line. Each link has the form `<left|right|up|down> =
|
|
||||||
<name>'. A link indicates which screen is adjacent in the
|
|
||||||
given direction.
|
|
||||||
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
section: links
|
|
||||||
moe:
|
|
||||||
right = larry
|
|
||||||
up = curly
|
|
||||||
larry:
|
|
||||||
left = moe
|
|
||||||
up = curly
|
|
||||||
curly:
|
|
||||||
down = larry
|
|
||||||
end
|
|
||||||
|
|
||||||
This indicates that screen `larry' is to the right of screen
|
|
||||||
`moe' (so moving the cursor off the right edge of moe would
|
|
||||||
make it appear at the left edge of larry), `curly' is above
|
|
||||||
'moe', `moe' is to the left of `larry', `curly' is above
|
|
||||||
`larry', and `larry' is below `curly'. Note that links do
|
|
||||||
not have to be symmetrical; moving up from moe then down
|
|
||||||
from curly lands the cursor on larry.
|
|
||||||
|
|
||||||
* options
|
|
||||||
<args> is a list of lines of the form `name = value'. These
|
|
||||||
set the global options.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
section: options
|
|
||||||
heatbeat = 5000
|
|
||||||
switchDelay = 500
|
|
||||||
end
|
|
||||||
|
|
||||||
You can use the following options:
|
|
||||||
|
|
||||||
heartbeat = N
|
|
||||||
The server will expect each client to send a message no
|
|
||||||
less than every N milliseconds. If no message arrives
|
|
||||||
from a client within 3N seconds the server forces that
|
|
||||||
client to disconnect.
|
|
||||||
|
|
||||||
If synergy fails to detect clients disconnecting while
|
|
||||||
the server is sleeping or vice versa, try using this
|
|
||||||
option.
|
|
||||||
|
|
||||||
switchDelay = N
|
|
||||||
Synergy won't switch screens when the mouse reaches the
|
|
||||||
edge of a screen unless it stays on the edge for N
|
|
||||||
milliseconds. This helps prevent unintentional
|
|
||||||
switching when working near the edge of a screen.
|
|
||||||
|
|
||||||
switchDoubleTap = N
|
|
||||||
Synergy won't switch screens when the mouse reaches the
|
|
||||||
edge of a screen unless it's moved away from the edge
|
|
||||||
and then back to the edge within N milliseconds. With
|
|
||||||
the option you have to quickly tap the edge twice to
|
|
||||||
switch. This helps prevent unintentional switching
|
|
||||||
when working near the edge of a screen.
|
|
||||||
|
|
||||||
screenSaverSync = {true|false}
|
|
||||||
If set to false then synergy won't synchronize screen
|
|
||||||
savers. Client screen savers will start according to
|
|
||||||
their individual configurations. The server screen
|
|
||||||
saver won't start if there is input, even if that input
|
|
||||||
is directed toward a client screen.
|
|
||||||
|
|
||||||
relativeMouseMoves = {true|false}
|
|
||||||
If set to true then secondary screens move the mouse
|
|
||||||
using relative rather than absolute mouse moves when
|
|
||||||
and only when Scroll Lock is toggled on (i.e. the cursor
|
|
||||||
is locked to the screen). This is intended to make
|
|
||||||
synergy work better with certain games. If set to
|
|
||||||
false or not set then all mouse moves are absolute.
|
|
||||||
|
|
||||||
You can use both the switchDelay and switchDoubleTap options at
|
|
||||||
the same time. Synergy will switch when either requirement is
|
|
||||||
satisfied.
|
|
||||||
|
|
||||||
The synergy server will try certain pathnames to load the configuration
|
|
||||||
file if the user doesn't specify a path using the `--config' command
|
|
||||||
line option. `synergys --help' reports those pathnames.
|
|
||||||
|
|
||||||
|
|
||||||
Running the Server on Unix or Mac OS X
|
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
Run the server on the computer that has the keyboard and mouse to
|
|
||||||
be shared. You must have prepared a configuration file before
|
|
||||||
starting the server. The server should be started before the
|
|
||||||
clients but that's not required.
|
|
||||||
|
|
||||||
Run the synergy server on the server system using the following
|
|
||||||
command line:
|
|
||||||
|
|
||||||
synergys -f --config <config-pathname>
|
|
||||||
|
|
||||||
Replace <config-pathname> with the path to the configuration file.
|
|
||||||
The `-f' option causes synergys to run in the foreground. This is
|
|
||||||
recommended until you've verified that the configuration works.
|
|
||||||
If you didn't include the system's hostname in the configuration
|
|
||||||
file (either as a screen name or an alias) then you'll have to add
|
|
||||||
`--name <screen-name>' to the command line, where <screen-name> is
|
|
||||||
a name in the configuration file. You can use `synergys --help'
|
|
||||||
for a list of command line options.
|
|
||||||
|
|
||||||
See `Starting Automatically on Unix' below for running synergy
|
|
||||||
automatically when the X server starts.
|
|
||||||
|
|
||||||
|
|
||||||
Running the Client on Unix or Mac OS X
|
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
Run the client on all computers that aren't the server using the
|
|
||||||
following command line:
|
|
||||||
|
|
||||||
synergyc -f --no-camp <server-hostname>
|
|
||||||
|
|
||||||
Replace <server-hostname> with the hostname or address of the
|
|
||||||
server system. The `-f' option causes synergy to run in the
|
|
||||||
foreground. The `--no-camp' prevents synergy from retrying to
|
|
||||||
connect to the server until it succeeds. Both are recommended
|
|
||||||
until you've verified that the configuration works. If you
|
|
||||||
didn't include the system's hostname in the configuration file
|
|
||||||
(either as a screen name or an alias) then you'll have to add
|
|
||||||
`--name <screen-name>' to the command line, where <screen-name>
|
|
||||||
is a name in the configuration file.
|
|
||||||
|
|
||||||
The client should quickly report `connected to server'. If it
|
|
||||||
does not but doesn't print an error and exit immediately then
|
|
||||||
it's trying to connect to the server but cannot. It will time
|
|
||||||
out in 30 seconds and exit (use ctrl+c to exit earlier). You
|
|
||||||
should check that the server is running and is reachable over
|
|
||||||
the network and try again.
|
|
||||||
|
|
||||||
If the client fails and exits it should print an error describing
|
|
||||||
the problem. Here are typical problems and possible solutions:
|
|
||||||
|
|
||||||
* failed to open screen:
|
|
||||||
check permission to open the X display;
|
|
||||||
check that the DISPLAY environment variable is set.
|
|
||||||
* already connected:
|
|
||||||
check that the synergy client isn't already running.
|
|
||||||
* refused client:
|
|
||||||
add client to the server's configuration file.
|
|
||||||
* connection failed:
|
|
||||||
check <server-hostname>;
|
|
||||||
the server cannot open the desired port, stop the
|
|
||||||
program using that port (24800) and restart the
|
|
||||||
server.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Once all the clients are running, try moving the mouse to each
|
|
||||||
screen. Be sure to check all the configured links.
|
|
||||||
|
|
||||||
See `Starting Automatically on Unix' below for running synergy
|
|
||||||
automatically when the X server starts.
|
|
||||||
|
|
||||||
|
|
||||||
Starting Automatically on Windows
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
When all the clients work you're ready to have synergy start
|
|
||||||
automatically each time the system (re)starts. Click `Stop' on all
|
|
||||||
the clients then on the server'. Now click the `Configure...' button
|
|
||||||
by the text `Automatic Startup'. The `Auto Start' dialog will pop up.
|
|
||||||
If an error occurs then correct the problem and click `Configure'
|
|
||||||
again.
|
|
||||||
|
|
||||||
On the `Auto Start' dialog you'll configure synergy to start
|
|
||||||
automatically when the computer starts or when you log in. You can
|
|
||||||
also configure synergy to not start automatically. You can only
|
|
||||||
start synergy automatically when the computer starts if you have
|
|
||||||
sufficient access rights. The dialog will let you know if you have
|
|
||||||
sufficient permission.
|
|
||||||
|
|
||||||
If synergy is already configured to automatically start then there
|
|
||||||
will be two `Uninstall' buttons, at most one of which is enabled.
|
|
||||||
Click the enabled button, if any, to configure synergy to not start
|
|
||||||
automatically.
|
|
||||||
|
|
||||||
If synergy is not configured to start automatically then there will
|
|
||||||
be two `Install' buttons. If you have sufficient permission to
|
|
||||||
have synergy start automatically when the computer does then the
|
|
||||||
`Install' button in the `When Computer Starts' box will be enabled.
|
|
||||||
Click it to have synergy start for all users when the computer starts.
|
|
||||||
In this case, synergy will be available during the login screen.
|
|
||||||
Otherwise, click the `Install' button in the `When You Log In' box
|
|
||||||
to have synergy automatically start when you log in.
|
|
||||||
|
|
||||||
|
|
||||||
Starting Automatically on Unix
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
Synergy requires an X server. That means a server must be
|
|
||||||
running and synergy must be authorized to connect to that server.
|
|
||||||
It's best to have the display manager start synergy. You'll need
|
|
||||||
the necessary (probably root) permission to modify the display
|
|
||||||
manager configuration files. If you don't have that permission
|
|
||||||
you can start synergy after logging in via the .xsession file.
|
|
||||||
|
|
||||||
Typically, you need to edit three script files. The first file
|
|
||||||
will start synergy before a user logs in, the second will kill
|
|
||||||
that copy of synergy, and the third will start it again after
|
|
||||||
the user logs in.
|
|
||||||
|
|
||||||
The contents of the scripts varies
|
|
||||||
greatly between systems so there's no one definite place where
|
|
||||||
you should insert your edits. However, these scripts often exit
|
|
||||||
before reaching the bottom so put the edits near the top of the
|
|
||||||
script.
|
|
||||||
|
|
||||||
The location and names of these files depend on the operating
|
|
||||||
system and display manager you're using. A good guess for the
|
|
||||||
location is /etc/X11. Typical file names are:
|
|
||||||
|
|
||||||
xdm gdm
|
|
||||||
--- ---
|
|
||||||
1) xdm/Xsetup gdm/Init/Default (*)
|
|
||||||
2) xdm/Xstartup gdm/PostLogin/Default (*)
|
|
||||||
3) xdm/Xsession gdm/Sessions/Default (*, **)
|
|
||||||
|
|
||||||
*) The Default' file is used if no other suitable file is found.
|
|
||||||
gdm will try <displayname> (e.g. ':0', ':1') and <hostname> (e.g.
|
|
||||||
'somehost'), in that order, before and instead of 'Default'.
|
|
||||||
**) gdm may use gdm/Xsession, xdm/Xsession or dm/Xsession if
|
|
||||||
gdm/Sessions/Default doesn't exist.
|
|
||||||
|
|
||||||
For a synergy client, add the following to the first file:
|
|
||||||
|
|
||||||
/usr/bin/killall synergyc
|
|
||||||
sleep 1
|
|
||||||
/usr/bin/synergyc [<options>] <synergy-server-hostname>
|
|
||||||
|
|
||||||
Of course, the path to synergyc depends on where you installed it
|
|
||||||
so adjust as necessary.
|
|
||||||
|
|
||||||
Add to the second file:
|
|
||||||
|
|
||||||
/usr/bin/killall synergyc
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
And to the third file:
|
|
||||||
|
|
||||||
/usr/bin/killall synergyc
|
|
||||||
sleep 1
|
|
||||||
/usr/bin/synergyc [<options>] <synergy-server-hostname>
|
|
||||||
|
|
||||||
Note that <options> must not include '-f' or '--no-daemon' or
|
|
||||||
the script will never exit and you won't be able to log in.
|
|
||||||
|
|
||||||
The changes are the same for the synergy server except replace
|
|
||||||
'synergyc' with 'synergys' and use the appropriate synergys
|
|
||||||
command line options. Note that the first script is run as root
|
|
||||||
so synergys will look for the configuration file in root's home
|
|
||||||
directory then in /etc. Make sure it exists in one of those
|
|
||||||
places or use the '--config <config-pathname' option to specify
|
|
||||||
its location.
|
|
||||||
|
|
||||||
Note that some display managers (xdm and kdm, but not gdm) grab
|
|
||||||
the keyboard and do not release it until the user logs in for
|
|
||||||
security reasons. This prevents a synergy server from sharing
|
|
||||||
the mouse and keyboard until the user logs in. It doesn't
|
|
||||||
prevent a synergy client from synthesizing mouse and keyboard
|
|
||||||
input, though.
|
|
||||||
|
|
||||||
|
|
||||||
Starting Automatically on Mac OS X
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
TBD
|
|
||||||
|
|
||||||
|
|
||||||
Network Security
|
|
||||||
----------------
|
|
||||||
|
|
||||||
Synergy has no built-in support for encryption or authentication.
|
|
||||||
The server accepts connections from any computer. The server and
|
|
||||||
clients send all data unencrypted which means the clipboard and
|
|
||||||
mouse and keyboard events (e.g. typed passwords) are easily
|
|
||||||
examined by anyone listening on the network. Therefore, do not
|
|
||||||
run synergy on untrusted networks except as follows.
|
|
||||||
|
|
||||||
You can use SSH (secure shell) to provide strong authentication
|
|
||||||
and encryption to synergy without modifying either SSH or synergy.
|
|
||||||
On Linux and Unix a free implementation of SSH called OpenSSH is
|
|
||||||
available at http://www.openssh.com/. On Windows you can use the
|
|
||||||
Cygwin version of OpenSSH.
|
|
||||||
|
|
||||||
First, install the SSH server (sshd) on the computer running the
|
|
||||||
synergy server. Next, install the SSH client (ssh) on each
|
|
||||||
synergy client computer. Start the SSH and synergy servers
|
|
||||||
normally. Then, for each client, start the SSH client with port
|
|
||||||
forwarding:
|
|
||||||
|
|
||||||
ssh -f -N -L 24800:<server-hostname>:24800 <server-hostname>
|
|
||||||
|
|
||||||
where <server-hostname> is the name or address of the SSH and
|
|
||||||
synergy server host. 24800 is the default synergy port; replace
|
|
||||||
it with whichever port you use if you don't use the default. Once
|
|
||||||
ssh authenticates with the server, start the synergy client as
|
|
||||||
usual except use `localhost' or `127.0.0.1' for the server
|
|
||||||
address. Synergy will then pass all communication through SSH
|
|
||||||
which encrypts it, passes it over the network, decrypts it, and
|
|
||||||
hands it back to synergy. Authentication is provided by SSH's
|
|
||||||
authentication.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Common Command Line Options
|
|
||||||
---------------------------
|
|
||||||
-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. Since xdm will normally restart
|
|
||||||
the X server and synergy, this is the correct behavior.
|
|
||||||
|
|
||||||
|
|
||||||
Server Command Line Options
|
|
||||||
---------------------------
|
|
||||||
-a, --address <address> listen for connections on the given address
|
|
||||||
-c, --config <pathname> read configuration from <pathname>
|
|
||||||
|
|
||||||
<address> has one of the following forms:
|
|
||||||
<hostname>
|
|
||||||
:<port>
|
|
||||||
<hostname>:<port>
|
|
||||||
<hostname> is a hostname or address of a network interface on the
|
|
||||||
server system. <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
|
|
||||||
---------------------------
|
|
||||||
--camp retry connection to server until successful
|
|
||||||
--no-camp try connection to server only once
|
|
||||||
<address> address of server
|
|
||||||
|
|
||||||
see the "server command line options" for a description of <address>
|
|
||||||
but note that there is no default <hostname> though there is a
|
|
||||||
default <port>.
|
|
24
Makefile.am
24
Makefile.am
|
@ -16,19 +16,14 @@ NULL =
|
||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
lib \
|
lib \
|
||||||
cmd \
|
cmd \
|
||||||
|
doc \
|
||||||
dist \
|
dist \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
BUGS \
|
|
||||||
FAQ \
|
|
||||||
HISTORY \
|
|
||||||
PORTING \
|
|
||||||
TODO \
|
|
||||||
all.dsp \
|
all.dsp \
|
||||||
synergy.dsw \
|
synergy.dsw \
|
||||||
synergy.xcode/project.pbxproj \
|
synergy.xcode/project.pbxproj \
|
||||||
doc/doxygen.cfg.in \
|
|
||||||
examples/synergy.conf \
|
examples/synergy.conf \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
|
@ -42,25 +37,20 @@ MAINTAINERCLEANFILES = \
|
||||||
configure \
|
configure \
|
||||||
stamp-h.in \
|
stamp-h.in \
|
||||||
stamp-h1 \
|
stamp-h1 \
|
||||||
doc/doxygen.cfg \
|
|
||||||
doc/doxygen/html/* \
|
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
PKG_FILES = \
|
PKG_FILES = \
|
||||||
AUTHORS \
|
|
||||||
BUGS \
|
|
||||||
COPYING \
|
|
||||||
ChangeLog \
|
ChangeLog \
|
||||||
FAQ \
|
|
||||||
HISTORY \
|
|
||||||
INSTALL \
|
|
||||||
NEWS \
|
|
||||||
README \
|
README \
|
||||||
TODO \
|
|
||||||
cmd/synergyc/synergyc \
|
cmd/synergyc/synergyc \
|
||||||
cmd/synergys/synergys \
|
cmd/synergys/synergys \
|
||||||
examples/synergy.conf \
|
examples/synergy.conf \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
PKG_DOC_FILES = \
|
||||||
|
doc/PORTING \
|
||||||
|
doc/*.html \
|
||||||
|
doc/*.css \
|
||||||
|
$(NULL)
|
||||||
PKG_PROG_FILES = \
|
PKG_PROG_FILES = \
|
||||||
synergyc \
|
synergyc \
|
||||||
synergys \
|
synergys \
|
||||||
|
@ -95,7 +85,9 @@ dist-pkg: all
|
||||||
rm -rf $(PKGTOPDIR)
|
rm -rf $(PKGTOPDIR)
|
||||||
mkdir $(PKGTOPDIR)
|
mkdir $(PKGTOPDIR)
|
||||||
mkdir $(PKGTOPDIR)/@PACKAGE@-@VERSION@
|
mkdir $(PKGTOPDIR)/@PACKAGE@-@VERSION@
|
||||||
|
mkdir $(PKGTOPDIR)/@PACKAGE@-@VERSION@/doc
|
||||||
cp $(PKG_FILES) $(PKGTOPDIR)/@PACKAGE@-@VERSION@
|
cp $(PKG_FILES) $(PKGTOPDIR)/@PACKAGE@-@VERSION@
|
||||||
|
cp $(PKG_DOC_FILES) $(PKGTOPDIR)/@PACKAGE@-@VERSION@/doc
|
||||||
(cd $(PKGTOPDIR)/@PACKAGE@-@VERSION@; \
|
(cd $(PKGTOPDIR)/@PACKAGE@-@VERSION@; \
|
||||||
chmod 644 *; \
|
chmod 644 *; \
|
||||||
chmod 755 $(PKG_PROG_FILES); \
|
chmod 755 $(PKG_PROG_FILES); \
|
||||||
|
|
248
NEWS
248
NEWS
|
@ -1,248 +0,0 @@
|
||||||
Synergy News
|
|
||||||
============
|
|
||||||
|
|
||||||
* Jun-13-2004 - Synergy 1.1.7 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Added OS X precompiled header file forgotten in last build
|
|
||||||
* Fixed bug in fix for 'unexpected async reply' on X11
|
|
||||||
* Removed dependency on "browser" service on win32
|
|
||||||
* Fixed assertion failure when connection fails immediately
|
|
||||||
* Fixed failure to connect on AIX
|
|
||||||
* Fixed error in conversion from multibyte to wide characters
|
|
||||||
* Maybe fixed win32 screen saver detection
|
|
||||||
|
|
||||||
* May-26-2004 - Synergy 1.1.6 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Added preliminary Mac OS X support (client and server)
|
|
||||||
* Fixed ctrl+alt+del emulation on win32
|
|
||||||
* Fixed ctrl+alt+del on win32 server acting on both client and server
|
|
||||||
* Fixed handling of screen resolution changes on win32
|
|
||||||
* Fixed 'unexpected async reply' on X11
|
|
||||||
* Added dependency to win32 service to avoid startup race condition
|
|
||||||
* Fixed reference count bug
|
|
||||||
* Keyboard input focus now restored on X11 (fixes loss of input in some games)
|
|
||||||
|
|
||||||
The OS X port does not yet support:
|
|
||||||
* HTML and bitmap clipboard data
|
|
||||||
* Screen saver synchronization
|
|
||||||
* Non-US English keyboards
|
|
||||||
|
|
||||||
* May-05-2004 - Synergy 1.1.5 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* No longer switching screens when a mouse button is down
|
|
||||||
* Worked around win32 mouse hook bug, fixing switch on double tap
|
|
||||||
* Added support for HTML and bitmap (image/bmp) clipboard data
|
|
||||||
* Physical mouse no longer necessary on win32 secondary screens to see cursor
|
|
||||||
* Added experimental relative mouse moves on secondary screen option
|
|
||||||
* Fixed win32 lock up when closing server with clients still connected
|
|
||||||
* Fixed bug in handling duplicate connections
|
|
||||||
* Fixed pthread mutex initialization
|
|
||||||
* Made synergy dependent on NetBT on win32 (for service startup order)
|
|
||||||
* Automake fixes; now mostly works on darwin and MinGW
|
|
||||||
* Fixed builds on Solaris 9, FreeBSD, and OpenBSD
|
|
||||||
* Partial support for MSYS/MinGW builds (NOT COMPLETE)
|
|
||||||
* Partial merge of OS X port (NOT COMPLETE)
|
|
||||||
|
|
||||||
* Mar-31-2004 - Synergy 1.1.4 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Fixed lookup of hosts by name of win32
|
|
||||||
* Reverted tray icon code to 1.0.15 version; seems to fix the bugs
|
|
||||||
* Fixed crash when caps, num, or scroll lock not in key map on X11
|
|
||||||
* Fixed double tap and wait to switch features
|
|
||||||
|
|
||||||
* Mar-28-2004 - Synergy 1.1.3 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Major code refactoring; reduced use of threads, added event queue
|
|
||||||
* Removed unused HTTP support code
|
|
||||||
* No longer interfering with mouse when scroll lock is toggled on
|
|
||||||
* Fixed minor mispositioning of mouse on win32
|
|
||||||
* Unix portability fixes
|
|
||||||
* Added support for power management
|
|
||||||
* Improved keyboard handling and bug fixes
|
|
||||||
* Fixed dead key handling
|
|
||||||
|
|
||||||
Note: the tray icon on windows is known to not work correctly when
|
|
||||||
running the synergy server on Windows 95/95/Me.
|
|
||||||
|
|
||||||
* Aug-24-2003 - Synergy 1.0.14 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Fixed bugs in setting win32 process/thread priority
|
|
||||||
* Fixed resource leak in opening win32 system log
|
|
||||||
* Fixed win32 launcher not getting non-default advanced options
|
|
||||||
* Synergy log copied to clipboard now transferred to other screens
|
|
||||||
* Hack to work around lesstif clipboard removed (fixes pasting on X)
|
|
||||||
|
|
||||||
* Jul-20-2003 - Synergy 1.0.12 released
|
|
||||||
|
|
||||||
This release finally completes support for non-ASCII characters,
|
|
||||||
fully supporting most (all?) European keyboard layouts including
|
|
||||||
dead key composition. This release includes changes from several
|
|
||||||
experimental versions (1.0.9, 1.0.11, 1.1.0, 1.1.1, 1.1.2, and
|
|
||||||
1.1.3).
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Added non-ASCII support to win32 and X11
|
|
||||||
* Added dead key support to win32 and X11
|
|
||||||
* Fixed AltGr handling
|
|
||||||
* Added ctrl+alt+del simulation using ctrl+alt+pause
|
|
||||||
* Fixed loss of key event when user releases ctrl+alt+del
|
|
||||||
* Fixed incorrect synthesis of pointer-keys event on X11
|
|
||||||
* Fixed Xinerama support
|
|
||||||
* Made some clipboard fixes on win32 and X11
|
|
||||||
* Add tray icon menu item to copy log to clipboard
|
|
||||||
* Fixed mouse warping on unconnected client
|
|
||||||
* Stopped unconnected client from filling up event logs
|
|
||||||
|
|
||||||
* May-10-2003 - Synergy 1.0.8 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Fixed hook forwarding (fixing interaction with objectbar)
|
|
||||||
* Fixed "Windows" key handling and added support Win+E, Win+F, etc
|
|
||||||
* Added win 95/98/me support for Alt+Tab, Alt+Esc, Ctrl+Esc
|
|
||||||
* Fixed scroll lock locking to server screen
|
|
||||||
* Fixed screen flashing on X11 and Windows
|
|
||||||
* Fixed compile problem on 64 bit systems
|
|
||||||
* Fixed Xinerama support
|
|
||||||
* Now allowing screen names that include underscores
|
|
||||||
* Improved non-ASCII key handling on Windows
|
|
||||||
* Fixed lagginess
|
|
||||||
* Fixed failure to capture all mouse input on Windows
|
|
||||||
* Fixed auto-repeat bugs on X11
|
|
||||||
* Added option to disable screen saver synchronization
|
|
||||||
* Added support for 4th and 5th mouse buttons on Windows
|
|
||||||
* Added support for "Internet" and "Multimedia" keys
|
|
||||||
* Fixed jumping from client to itself (mouse wrapping)
|
|
||||||
|
|
||||||
* Mar-27-2003 - Synergy 1.0.6 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Added tray icon on win32
|
|
||||||
* Fixed multi-monitor support on win32
|
|
||||||
* Fixed win32 screen saver detection on NT/2k/XP
|
|
||||||
* Added per-screen options to remap modifier keys
|
|
||||||
* Added global options for restricting screen jumping
|
|
||||||
* Added global option for detecting unresponsive clients
|
|
||||||
* Added more logging for why screen jump won't happen
|
|
||||||
* Fixed problem sending the CLIPBOARD to motif/lesstif apps
|
|
||||||
* Win32 launcher now remembers non-config-file state
|
|
||||||
|
|
||||||
* Feb-18-2003 - Synergy 1.0.3 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Support for X11 keymaps with only uppercase letters
|
|
||||||
* Fixed memory leaks
|
|
||||||
* Added documentation on using synergy with SSH
|
|
||||||
* Fixed unnecessary left-handed mouse button swapping
|
|
||||||
* Fixed debug build error on win32
|
|
||||||
* Reduced frequency of large cursor jumps when leaving win32 server
|
|
||||||
* Changed cursor motion on win32 multimon to relative moves only
|
|
||||||
|
|
||||||
|
|
||||||
* Jan-25-2003 - Synergy 1.0.2 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Fixed out-of-bounds array lookup in the BSD and Windows network code
|
|
||||||
* Added ability to set screen options from Windows launch dialog
|
|
||||||
|
|
||||||
|
|
||||||
* Jan-22-2003 - Synergy 1.0.1 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Fixed running as a service on Windows NT family
|
|
||||||
|
|
||||||
|
|
||||||
* Jan-20-2003 - Synergy 1.0.0 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Refactored to centralize platform dependent code
|
|
||||||
* Added support for mouse wheel on Windows NT (SP3 and up)
|
|
||||||
* Portability improvements
|
|
||||||
* Added more documentation
|
|
||||||
* Fixes for working with xscreensaver
|
|
||||||
* Fixes for circular screen links
|
|
||||||
|
|
||||||
This release has been tested on Linux and Windows. It builds and
|
|
||||||
is believed to run on Solaris and FreeBSD. It is believed to
|
|
||||||
build and run on Irix and AIX. It builds but does not work on
|
|
||||||
MacOS X.
|
|
||||||
|
|
||||||
|
|
||||||
* Dec-25-2002 - Synergy 0.9.14 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Fixed solaris compile problems (untested)
|
|
||||||
* Fixed irix compile problems (untested)
|
|
||||||
* Fixed windows client not reconnecting when server dies bug
|
|
||||||
* Fixed loss of ctrl+alt from windows server to non-windows clients
|
|
||||||
* Fixed handling of password protected windows client screen saver
|
|
||||||
* Now handling any number of pointer buttons on X11
|
|
||||||
* Toggle key states now restored when leaving clients
|
|
||||||
* Added support for per-screen config options
|
|
||||||
* Added config options for half-duplex toggle keys on X11
|
|
||||||
* Enabled class diagrams in doxygen documentation
|
|
||||||
|
|
||||||
|
|
||||||
* Nov-05-2002 - Synergy 0.9.13 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Fixed solaris compile problems (untested)
|
|
||||||
* Fixed MacOS X compile problems (semi-functional)
|
|
||||||
* Fixed gcc-3.2 compile problems
|
|
||||||
* Fixed some thread startup and shutdown bugs
|
|
||||||
* Server now quits if bind() fails with an error other than in use
|
|
||||||
* Fixed bug in moving mouse on Win98 without multiple monitors
|
|
||||||
* Fixed bug in handling TCP socket errors on read and write
|
|
||||||
* Fixed spurious screen saver activation on X11
|
|
||||||
* Unix platforms can now read Win32 configuration files
|
|
||||||
* Minor error reporting fixes
|
|
||||||
|
|
||||||
|
|
||||||
* Sep-14-2002 - Synergy 0.9.12 released
|
|
||||||
|
|
||||||
Made following changes:
|
|
||||||
* Win32 was not reporting log messages properly when run from synergy.exe
|
|
||||||
* Network error messages weren't reporting useful information
|
|
||||||
* Synergy won't build on gcc 3.2; added workaround for known problem
|
|
||||||
* X11 wasn't handling some keys/key combinations correctly
|
|
||||||
* Added option to change logging level when testing from synergy.exe
|
|
||||||
|
|
||||||
|
|
||||||
* Sep-04-2002 - Synergy 0.9.11 released
|
|
||||||
|
|
||||||
Fixed following bugs:
|
|
||||||
* Worked around missing SendInput() on windows 95/NT 4 prior to SP3
|
|
||||||
* Fixed keyboard mapping on X11 synergy client
|
|
||||||
|
|
||||||
|
|
||||||
* Sep-02-2002 - Synergy 0.9.10 released
|
|
||||||
|
|
||||||
Fixed following bugs:
|
|
||||||
* The Pause/Break and KP_Enter buttons were not working correctly on windows
|
|
||||||
* Configuration options were being lost on windows after a reboot
|
|
||||||
* Added support for AltGr/ModeSwitch keys
|
|
||||||
* Added support for auto-start on windows when not administrator
|
|
||||||
* Improved autoconf
|
|
||||||
* Added workaround for lack of sstream header on g++ 2.95.
|
|
||||||
|
|
||||||
|
|
||||||
* Aug-18-2002 - Synergy 0.9.9 released
|
|
||||||
|
|
||||||
Fixed three bugs:
|
|
||||||
* The PrintScrn button was not working correctly on windows
|
|
||||||
* The Win32 server could hang when a client disconnected
|
|
||||||
* Using the mouse wheel could hang the X server
|
|
||||||
|
|
||||||
|
|
||||||
* Aug-11-2002 - Synergy 0.9.8 released
|
|
||||||
|
|
||||||
Supports any number of clients under Linux or Windows 95 or NT4
|
|
||||||
or later. Includes mouse and keyboard sharing, clipboard
|
|
||||||
synchronization and screen saver synchronization. Supports ASCII
|
|
||||||
keystrokes, 5 button mouse with wheel, and Unicode text clipboard
|
|
||||||
format.
|
|
259
README
259
README
|
@ -18,261 +18,4 @@ a password to unlock them all.
|
||||||
|
|
||||||
Synergy is open source and released under the GNU Public License (GPL).
|
Synergy is open source and released under the GNU Public License (GPL).
|
||||||
|
|
||||||
The synergy home page is:
|
Please see doc/index.html for more information.
|
||||||
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 95 family);
|
|
||||||
|
|
||||||
* Microsoft Windows NT, Windows 2000, Windows XP (the Windows NT family);
|
|
||||||
|
|
||||||
* Mac OS X 10.2 or higher;
|
|
||||||
|
|
||||||
* 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. Synergy may compile and run on other Unix variants, too. Patches
|
|
||||||
for other platforms are welcome (including patches that package binaries);
|
|
||||||
See the contact information available off of the synergy home page or use
|
|
||||||
the patch page on sourceforge.
|
|
||||||
|
|
||||||
The Mac OS X port is incomplete. It does not synchronize the screen saver,
|
|
||||||
only text clipboard data works (i.e. HTML and bitmap data do not work),
|
|
||||||
non-US English keyboards are untested and probably don't work, and there
|
|
||||||
may be problems with mouse pointer and mouse wheel acceleration. Other
|
|
||||||
problems should be filed as bugs (see BUGS).
|
|
||||||
|
|
||||||
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
See INSTALL for detailed build and installation instructions and for
|
|
||||||
more information on configuring synergy.
|
|
||||||
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Second, you install the software. Choose the appropriate package
|
|
||||||
and install it. On Windows you should run SynergyInstaller. You
|
|
||||||
must install the software on all the computers that will share the
|
|
||||||
mouse and keyboard.
|
|
||||||
|
|
||||||
Third, you configure and start the server. The Windows version
|
|
||||||
provides a convenient GUI for configuration. Other platforms
|
|
||||||
require creating a simple text file.
|
|
||||||
|
|
||||||
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's name is recommended)
|
|
||||||
* Enter other names the server is known by
|
|
||||||
* Click OK
|
|
||||||
* Use `Add' to add your other computers
|
|
||||||
* Using a computer's name as its screen name is recommended
|
|
||||||
* 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
|
|
||||||
* Use `Options...' to set desired options.
|
|
||||||
* If the server's screen name is not the server's computer name:
|
|
||||||
* Click `Advanced...'
|
|
||||||
* Enter the server's screen name next to `Screen Name'
|
|
||||||
* Click `OK'
|
|
||||||
|
|
||||||
Note that when you link screens together you must explictly link in both
|
|
||||||
directions. For instance, if you have computer A on the left of B then
|
|
||||||
you must indicate A is to the left of B *and* that B is to the right of
|
|
||||||
A. If you don't do both then you'll find you're unable to leave one of
|
|
||||||
the screens.
|
|
||||||
|
|
||||||
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 or MacOS 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 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
|
|
||||||
* If the client's screen name is not the client's computer name:
|
|
||||||
* Click `Advanced...'
|
|
||||||
* Enter the client's screen name next to `Screen Name'
|
|
||||||
* Click `OK'
|
|
||||||
* 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 or MacOS X
|
|
||||||
---------------
|
|
||||||
|
|
||||||
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. If you're running the synery server
|
|
||||||
on Windows 95, 98, or Me then make sure the synergy log window is
|
|
||||||
not the active window; just click on another window, like synergy's
|
|
||||||
`Running Test...' window, if it is. Use the mouse and keyboard
|
|
||||||
normally except use the edge of the screens to jump to other screens.
|
|
||||||
You can also cut-and-paste text, HTML, and images across computers
|
|
||||||
(HTML and images are not supported on OS X yet). 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. However, synergy can
|
|
||||||
convert ctrl+alt+pause into ctrl+alt+del on the client side.
|
|
||||||
(Synergy must be installed as a service on the client for this to
|
|
||||||
work on the Windows NT family.) Some non-standard keys may not
|
|
||||||
work, especially "multimedia" buttons, though several are
|
|
||||||
correctly handled.
|
|
||||||
|
|
||||||
* 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 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.
|
|
||||||
|
|
||||||
* Synergy doesn't work if a 16-bit Windows application has the focus
|
|
||||||
on Windows 95/98/Me. This is due to limitations of Windows. One
|
|
||||||
commonly used 16-bit application is the command prompt (command.exe)
|
|
||||||
and this includes synergy's log window when running in test mode.
|
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
58
TODO
58
TODO
|
@ -1,58 +0,0 @@
|
||||||
Synergy To Do List
|
|
||||||
==================
|
|
||||||
|
|
||||||
Things to do to synergy, in no particular order:
|
|
||||||
|
|
||||||
* Provide GUI configuration
|
|
||||||
|
|
||||||
There's a GUI tool on win32 but no other platforms. Also, it'd be
|
|
||||||
nice if the tool allowed users to drag screen icons around to set
|
|
||||||
the links between them (though this assumes links are symmetrical
|
|
||||||
and synergy supports asymmetrical links).
|
|
||||||
|
|
||||||
* Provide taskbar feedback
|
|
||||||
|
|
||||||
There's a tray icon on win32 for checking synergy's current status
|
|
||||||
and to quit synergy. It'd be nice to have something similar on
|
|
||||||
other platforms.
|
|
||||||
|
|
||||||
* Port to other platforms
|
|
||||||
|
|
||||||
The MacOS X port is usable but still incomplete.
|
|
||||||
|
|
||||||
* Write man/html pages
|
|
||||||
|
|
||||||
* Add more clipboard formats
|
|
||||||
|
|
||||||
Synergy currently supports text, html and BMP bitmaps on the clipboard.
|
|
||||||
It should support more formats, such as other image types and sound.
|
|
||||||
For each format, some canonical type must be chosen. For text, that's
|
|
||||||
UTF-8 with \n for newlines. Whatever it is it should losslessly support
|
|
||||||
any type it might be converted to. The type is converted to each
|
|
||||||
platform's native type. For example, BMP for images on win32.
|
|
||||||
|
|
||||||
Then there are major new features:
|
|
||||||
|
|
||||||
* Provide a KVM mode
|
|
||||||
|
|
||||||
In this mode synergy would share the monitor in addition to the
|
|
||||||
keyboard and mouse.
|
|
||||||
|
|
||||||
* Support for limited drag and drop between systems
|
|
||||||
|
|
||||||
* Support for (virtual) terminals on unix
|
|
||||||
|
|
||||||
This would be useful in KVM mode to administer several remote
|
|
||||||
headless systems that you don't want running X just so synergy
|
|
||||||
can work.
|
|
||||||
|
|
||||||
* Configurable keys
|
|
||||||
|
|
||||||
This includes shortcuts to jump to different screens, always
|
|
||||||
directing certain keystrokes to the same system, never sending
|
|
||||||
certain keystrokes to some systems, and remapping keys on the
|
|
||||||
server to other keys on the clients.
|
|
||||||
|
|
||||||
* On-the-fly configuration
|
|
||||||
|
|
||||||
There should be a way of reconfiguring synergy while it's running.
|
|
|
@ -186,6 +186,7 @@ dist/Makefile
|
||||||
dist/nullsoft/Makefile
|
dist/nullsoft/Makefile
|
||||||
dist/rpm/Makefile
|
dist/rpm/Makefile
|
||||||
dist/rpm/synergy.spec
|
dist/rpm/synergy.spec
|
||||||
|
doc/Makefile
|
||||||
doc/doxygen.cfg
|
doc/doxygen.cfg
|
||||||
lib/Makefile
|
lib/Makefile
|
||||||
lib/arch/Makefile
|
lib/arch/Makefile
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
# synergy -- mouse and keyboard sharing utility
|
||||||
|
# Copyright (C) 2002 Chris Schoeneman
|
||||||
|
#
|
||||||
|
# This package is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License
|
||||||
|
# found in the file COPYING that should have accompanied this file.
|
||||||
|
#
|
||||||
|
# This package is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
NULL =
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
PORTING \
|
||||||
|
doxygen.cfg.in \
|
||||||
|
synergy.css \
|
||||||
|
authors.html \
|
||||||
|
autostart.html \
|
||||||
|
compiling.html \
|
||||||
|
configuration.html \
|
||||||
|
developer.html \
|
||||||
|
faq.html \
|
||||||
|
history.html \
|
||||||
|
index.html \
|
||||||
|
license.html \
|
||||||
|
news.html \
|
||||||
|
running.html \
|
||||||
|
security.html \
|
||||||
|
tips.html \
|
||||||
|
todo.html \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
MAINTAINERCLEANFILES = \
|
||||||
|
Makefile.in \
|
||||||
|
doc/doxygen.cfg \
|
||||||
|
doc/doxygen/html/* \
|
||||||
|
$(NULL)
|
|
@ -0,0 +1,30 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Synergy Authors</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Synergy Authors</h3>
|
||||||
|
<p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td><a href="mailto:crs23@users.sourceforge.net">Chris Schoeneman</a></td>
|
||||||
|
<td>Creator, owner, primary developer</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="mailto:ryan@ryanbreen.com">Ryan Breen</a></td>
|
||||||
|
<td>Initial Mac OS X port</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="mailto:moolder@gmx.net">Guido Poschta</a></td>
|
||||||
|
<td>Windows installer</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="mailto:bertrand@landryhetu.com">Bertrand Landry Hetu</a></td>
|
||||||
|
<td>Mac OS X port</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,159 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Synergy Autostart Guide</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Starting synergy automatically</h3>
|
||||||
|
<p>
|
||||||
|
You can configure synergy to start automatically when the computer
|
||||||
|
starts or when you log in. The steps to do that are different on
|
||||||
|
each platform. Note that changing these configurations doesn't
|
||||||
|
actually start or stop synergy. The changes take effect the next
|
||||||
|
time you start your computer or log in.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Windows</h4>
|
||||||
|
<p>
|
||||||
|
Start synergy and click the <span class="code">Configure...</span> button
|
||||||
|
by the text <span class="code">Automatic Startup</span>. The
|
||||||
|
<span class="code">Auto Start</span> dialog will pop up.
|
||||||
|
If an error occurs then correct the problem and click
|
||||||
|
<span class="code">Configure</span> again.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
On the <span class="code">Auto Start</span> dialog you'll configure
|
||||||
|
synergy to start or not start automatically when the computer starts
|
||||||
|
or when you log in. You need Administrator access rights to start
|
||||||
|
synergy automatically when the computer starts. The dialog will let
|
||||||
|
you know if you have sufficient permission.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If synergy is already configured to automatically start then there
|
||||||
|
will be two <span class="code">Uninstall</span> buttons, at most one
|
||||||
|
of which is enabled. Click the enabled button, if any, to tell
|
||||||
|
synergy to not start automatically.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If synergy is not configured to start automatically then there will
|
||||||
|
be two <span class="code">Install</span> buttons. If you have
|
||||||
|
sufficient permission to have synergy start automatically when the
|
||||||
|
computer does then the <span class="code">Install</span> button in the
|
||||||
|
<span class="code">When Computer Starts</span> box will be enabled.
|
||||||
|
Click it to have synergy start for all users when the computer starts.
|
||||||
|
In this case, synergy will be available during the login screen.
|
||||||
|
Otherwise, click the <span class="code">Install</span> button in the
|
||||||
|
<span class="code">When You Log In</span> box to have synergy
|
||||||
|
automatically start when you log in.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Unix</h4>
|
||||||
|
<p>
|
||||||
|
Synergy requires an X server. That means a server must be
|
||||||
|
running and synergy must be authorized to connect to that server.
|
||||||
|
It's best to have the display manager start synergy. You'll need
|
||||||
|
the necessary (probably root) permission to modify the display
|
||||||
|
manager configuration files. If you don't have that permission
|
||||||
|
you can start synergy after logging in via the
|
||||||
|
<span class="code">.xsession</span> file.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Typically, you need to edit three script files. The first file
|
||||||
|
will start synergy before a user logs in, the second will kill
|
||||||
|
that copy of synergy, and the third will start it again after
|
||||||
|
the user logs in.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The contents of the scripts varies greatly between systems so
|
||||||
|
there's no one definite place where you should insert your edits.
|
||||||
|
However, these scripts often exit before reaching the bottom so
|
||||||
|
put the edits near the top of the script.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The location and names of these files depend on the operating
|
||||||
|
system and display manager you're using. A good guess for the
|
||||||
|
location is <span class="code">/etc/X11</span>. Typical file names
|
||||||
|
are:
|
||||||
|
</p>
|
||||||
|
<p class="code">
|
||||||
|
<table>
|
||||||
|
<tr><td> </td> <td> </td> <td>xdm</td> <td> </td> <td>gdm</td></tr>
|
||||||
|
<tr><td>1</td> <td></td> <td>xdm/Xsetup</td> <td></td> <td>gdm/Init/Default (*)</td></tr>
|
||||||
|
<tr><td>2</td> <td></td> <td>xdm/Xstartup</td> <td></td> <td>gdm/PostLogin/Default (*)</td></tr>
|
||||||
|
<tr><td>3</td> <td></td> <td>xdm/Xsession</td> <td></td> <td>gdm/Sessions/Default (*, **)</td></tr>
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
*) The <span class="code">Default</span> file is used if no other
|
||||||
|
suitable file is found. <span class="code">gdm</span> will try
|
||||||
|
<span class="arg">displayname</span> (e.g. <span class="code">:0</span>)
|
||||||
|
and <span class="arg">hostname</span> (e.g. <span class="code">somehost</span>),
|
||||||
|
in that order, before and instead of <span class="code">Default</span>.
|
||||||
|
<br>
|
||||||
|
**) gdm may use <span class="code">gdm/Xsession</span>,
|
||||||
|
<span class="code">xdm/Xsession</span> or
|
||||||
|
<span class="code">dm/Xsession</span> if
|
||||||
|
<span class="code">gdm/Sessions/Default</span> doesn't exist.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
For a synergy client, add the following to the first file:
|
||||||
|
<pre>
|
||||||
|
/usr/bin/killall synergyc
|
||||||
|
sleep 1
|
||||||
|
/usr/bin/synergyc [<options>] <span class="arg">synergy-server-hostname</span>
|
||||||
|
</pre>
|
||||||
|
Of course, the path to synergyc depends on where you installed it
|
||||||
|
so adjust as necessary.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Add to the second file:
|
||||||
|
<pre>
|
||||||
|
/usr/bin/killall synergyc
|
||||||
|
sleep 1
|
||||||
|
</pre>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
And to the third file:
|
||||||
|
<pre>
|
||||||
|
/usr/bin/killall synergyc
|
||||||
|
sleep 1
|
||||||
|
/usr/bin/synergyc <span class="arg">[<options>]</span> <span class="arg">synergy-server-hostname</span>
|
||||||
|
</pre>
|
||||||
|
Note that <a href="running.html#options"><span class="arg"><options></span></a>
|
||||||
|
must not include
|
||||||
|
<span class="code">-f</span> or <span class="code">--no-daemon</span> or
|
||||||
|
the script will never exit and you won't be able to log in.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The changes are the same for the synergy server except replace
|
||||||
|
<span class="code">synergyc</span> with <span class="code">synergys</span>
|
||||||
|
and use the appropriate synergys <a href="running.html#options">command
|
||||||
|
line options</a>. Note that the
|
||||||
|
first script is run as root so synergys will look for the configuration
|
||||||
|
file in root's home directory then in <span class="code">/etc</span>.
|
||||||
|
Make sure it exists in one of those places or use the
|
||||||
|
<span class="code">--config <span class="arg">config-pathname</span></span>
|
||||||
|
option to specify its location.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Note that some display managers (xdm and kdm, but not gdm) grab
|
||||||
|
the keyboard and do not release it until the user logs in for
|
||||||
|
security reasons. This prevents a synergy server from sharing
|
||||||
|
the mouse and keyboard until the user logs in. It doesn't
|
||||||
|
prevent a synergy client from synthesizing mouse and keyboard
|
||||||
|
input, though.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If you're configuring synergy to start only after you log in then edit
|
||||||
|
your <span class="code">.xsession</span> file. Add just what you
|
||||||
|
would add to the third file above.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Mac OS X</h4>
|
||||||
|
<p>
|
||||||
|
TBD
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,126 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Building and Installing Synergy</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Prerequisites for building</h3>
|
||||||
|
<p>
|
||||||
|
To build synergy from the sources you'll need the following:
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Windows
|
||||||
|
<ul>
|
||||||
|
<li>VC++ 6.0 or up
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<li>Unix
|
||||||
|
<ul>
|
||||||
|
<li>gcc 2.95 or up
|
||||||
|
<li>X11R4 or up headers and libraries
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<li>Mac OS X
|
||||||
|
<ul>
|
||||||
|
<li>XCode; or gcc 2.95 or up
|
||||||
|
<li>Carbon development headers and libraries
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Configuring the build</h3>
|
||||||
|
<p>
|
||||||
|
This step is not necessary when using VC++ or XCode.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
To configure the build for your platform use the configure script:
|
||||||
|
<pre>
|
||||||
|
./configure
|
||||||
|
</pre>
|
||||||
|
For a list of options to configure use:
|
||||||
|
<pre>
|
||||||
|
./configure --help
|
||||||
|
</pre>
|
||||||
|
On Solaris you may need to use:
|
||||||
|
<pre>
|
||||||
|
<nobr>./configure --x-includes=/usr/openwin/include --x-libraries=/usr/openwin/lib</nobr>
|
||||||
|
</pre>
|
||||||
|
so synergy can find the X11 includes and libraries.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Building</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Windows
|
||||||
|
<p>
|
||||||
|
Start VC++ and open <span class="code">synergy.dsw</span>. Set the
|
||||||
|
active configuration (Build > Set Active Configuration) to
|
||||||
|
<span class="code">All - Debug</span> or <span class="code">All -
|
||||||
|
Release</span> then build. Binaries are built into
|
||||||
|
<span class="code">./debug</span> or <span class="code">./build</span>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>Unix or Mac OS X without XCode
|
||||||
|
<p>
|
||||||
|
Simply enter:
|
||||||
|
<pre>
|
||||||
|
make
|
||||||
|
</pre>
|
||||||
|
This will build the client and server and leave them in their
|
||||||
|
respective source directories.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>Mac OS X with XCode
|
||||||
|
<p>
|
||||||
|
Start XCode and open the <span class="code">synery.xcode</span>
|
||||||
|
project. Build the <span class="code">all</span> project using
|
||||||
|
the <span class="code">Deployment</span> flavor.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Installing</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Windows
|
||||||
|
<p>
|
||||||
|
You'll need <a href="http://nsis.sourceforge.net/">NSIS</a>, the
|
||||||
|
Nullsoft Scriptable Install System. Build <span class="code">All -
|
||||||
|
Release</span> then build <span class="code">Installer - Release</span>.
|
||||||
|
This creates <span class="code">SynergyInstaller.exe</span> in the top
|
||||||
|
level directory. Run this to install synergy.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Alternatively, you can simply copy the following files from the
|
||||||
|
<span class="code">debug</span> or <span class="code">build</span>
|
||||||
|
directory to a directory you choose (perhaps under the
|
||||||
|
<span class="code">Program Files</span> directory):
|
||||||
|
|
||||||
|
<ul class="code">
|
||||||
|
<li>synergy.exe
|
||||||
|
<li>synergyc.exe
|
||||||
|
<li>synergys.exe
|
||||||
|
<li>synrgyhk.dll
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>Unix or Mac OS X without XCode
|
||||||
|
<p>
|
||||||
|
<pre>
|
||||||
|
make install
|
||||||
|
</pre>
|
||||||
|
will install the client and server into
|
||||||
|
<span class="code">/usr/local/bin</span> unless you
|
||||||
|
specified a different directory when you ran configure.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>Mac OS X with XCode
|
||||||
|
<p>
|
||||||
|
Copy the following files from ./build to a convenient location:
|
||||||
|
|
||||||
|
<ul class="code">
|
||||||
|
<li>synergyc
|
||||||
|
<li>synergys
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,275 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Synergy Configuration Guide</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Synergy Configuration File Format</h3>
|
||||||
|
<p>
|
||||||
|
The synergy server requires configuration. It will try certain
|
||||||
|
pathnames to load the configuration file if you don't specify a
|
||||||
|
path using the <span class="code">--config</span> command line
|
||||||
|
option. <span class="code">synergys --help</span> reports those
|
||||||
|
pathnames.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The configuration file is a plain text file. Use any text editor
|
||||||
|
to create the configuration file. The file is broken into sections
|
||||||
|
and each section has the form:
|
||||||
|
<pre>
|
||||||
|
section: <span class="arg">name</span>
|
||||||
|
<span class="arg">args</span>
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
Comments are introduced by <span class="code">#</span> and continue to
|
||||||
|
the end of the line. <span class="arg">name</span> must be one of the
|
||||||
|
following:
|
||||||
|
<ul class="code">
|
||||||
|
<li>screens
|
||||||
|
<li>aliases
|
||||||
|
<li>links
|
||||||
|
<li>options
|
||||||
|
</ul>
|
||||||
|
See below for further explanation of each section type. The
|
||||||
|
configuration file is case-sensitive so <span class="code">Section</span>,
|
||||||
|
<span class="code">SECTION</span>, and <span class="code">section</span>
|
||||||
|
are all different and only the last is valid. Screen names are the
|
||||||
|
exception; screen names are case-insensitive.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The file is parsed top to bottom and names cannot be used before
|
||||||
|
they've been defined in the <span class="code">screens</span> or
|
||||||
|
<span class="code">aliases</span> sections. So the
|
||||||
|
<span class="code">links</span> and <span class="code">aliases</span>
|
||||||
|
must appear after the <span class="code">screens</span> and links
|
||||||
|
cannot refer to aliases unless the <span class="code">aliases</span>
|
||||||
|
appear before the <span class="code">links</span>.
|
||||||
|
</p>
|
||||||
|
<h4>screens</h4>
|
||||||
|
<p>
|
||||||
|
<span class="arg">args</span> is a list of screen names, one name per
|
||||||
|
line, each followed by a colon. Names are arbitrary strings but they
|
||||||
|
must be unique. The hostname of each computer is recommended. (This
|
||||||
|
is the computer's network name on win32 and the name reported by the
|
||||||
|
program <span class="code">hostname</span> on Unix and OS X. Note
|
||||||
|
that OS X may append <span class="code">.local</span> to the name you
|
||||||
|
gave your computer; e.g. <span class="code">somehost.local</span>.)
|
||||||
|
There must be a screen name for the server and each client. Each
|
||||||
|
screen can specify a number of options. Options have the form
|
||||||
|
<span class="code"><span class="arg">name</span> =
|
||||||
|
<span class="arg">value</span></span> and are listed one per line
|
||||||
|
after the screen name.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Example:
|
||||||
|
<pre>
|
||||||
|
section: screens
|
||||||
|
moe:
|
||||||
|
larry:
|
||||||
|
halfDuplexCapsLock = true
|
||||||
|
halfDuplexNumLock = true
|
||||||
|
curly:
|
||||||
|
meta = alt
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
This declares three screens named <span class="code">moe</span>,
|
||||||
|
<span class="code">larry</span>, and <span class="code">curly</span>.
|
||||||
|
Screen <span class="code">larry</span> has half-duplex Caps Lock and
|
||||||
|
Num Lock keys (see below) and screen <span class="code">curly</span>
|
||||||
|
converts the meta modifier key to the alt modifier key.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
A screen can have the following options:
|
||||||
|
<ul>
|
||||||
|
<li><span class="code">halfDuplexCapsLock = {true|false}</span>
|
||||||
|
<p>
|
||||||
|
This computer has a Caps Lock key that doesn't report a
|
||||||
|
press and a release event when the user presses it but
|
||||||
|
instead reports a press event when it's turned on and a
|
||||||
|
release event when it's turned off. If Caps Lock acts
|
||||||
|
strangely on all screens then you may need to set this
|
||||||
|
option to <span class="code">true</span>
|
||||||
|
on the server screen. If it acts strangely on one
|
||||||
|
screen then that screen may need the option set to
|
||||||
|
<span class="code">true</span>.
|
||||||
|
</p>
|
||||||
|
<li><span class="code">halfDuplexNumLock = {true|false}</span>
|
||||||
|
<p>
|
||||||
|
This is identical to <span class="code">halfDuplexCapsLock</span>
|
||||||
|
except it applies to the Num Lock key.
|
||||||
|
</p>
|
||||||
|
<li><span class="code">xtestIsXineramaUnaware = {true|false}</span>
|
||||||
|
<p>
|
||||||
|
This option works around a bug in the XTest extension
|
||||||
|
when used in combination with Xinerama. It affects
|
||||||
|
X11 clients only. Not all versions of the XTest
|
||||||
|
extension are aware of the Xinerama extension. As a
|
||||||
|
result, they do not move the mouse correctly when
|
||||||
|
using multiple Xinerama screens. This option is
|
||||||
|
currently <span class="code">true</span> by default. If
|
||||||
|
you know your XTest extension is Xinerama aware then set
|
||||||
|
this option to <span class="code">false</span>.
|
||||||
|
</p>
|
||||||
|
<li><span class="code">shift = {shift|ctrl|alt|meta|super|none}<br>
|
||||||
|
ctrl = {shift|ctrl|alt|meta|super|none}<br>
|
||||||
|
alt = {shift|ctrl|alt|meta|super|none}<br>
|
||||||
|
meta = {shift|ctrl|alt|meta|super|none}<br>
|
||||||
|
super = {shift|ctrl|alt|meta|super|none}</span>
|
||||||
|
<p>
|
||||||
|
Map a modifier key pressed on the server's keyboard to
|
||||||
|
a different modifier on this client. This option only
|
||||||
|
has an effect on a client screen; it's accepted and
|
||||||
|
ignored on the server screen.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
You can map, say, the shift key to shift (the default),
|
||||||
|
ctrl, alt, meta, super or nothing. Normally, you
|
||||||
|
wouldn't remap shift or ctrl. You might, however, have
|
||||||
|
an X11 server with meta bound to the Alt keys. To use
|
||||||
|
this server effectively with a windows client, which
|
||||||
|
doesn't use meta but uses alt extensively, you'll want
|
||||||
|
the windows client to map meta to alt (using
|
||||||
|
<span class="code">meta = alt</span>).
|
||||||
|
</p>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>aliases</h4>
|
||||||
|
<p>
|
||||||
|
<span class="arg">args</span> is a list of screen names just like
|
||||||
|
in the <span class="code">screens</span> section except each screen
|
||||||
|
is followed by a list of aliases, one per line, <b>not</b> followed
|
||||||
|
by a colon. An alias is a screen name and must be unique. During
|
||||||
|
screen name lookup each alias is equivalent to the screen name it
|
||||||
|
aliases. So a client can connect using its canonical screen name
|
||||||
|
or any of its aliases.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Example:
|
||||||
|
<pre>
|
||||||
|
section: aliases
|
||||||
|
larry:
|
||||||
|
larry.stooges.com
|
||||||
|
curly:
|
||||||
|
shemp
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
Screen <span class="code">larry</span> is also known as
|
||||||
|
<span class="code">larry.stooges.com</span> and can connect as
|
||||||
|
either name. Screen <span class="code">curly</span> is also
|
||||||
|
known as <span class="code">shemp</span> (hey, it's just an example).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>links</h4>
|
||||||
|
<p>
|
||||||
|
<span class="arg">args</span> is a list of screen names just like
|
||||||
|
in the <span class="code">screens</span> section except each screen
|
||||||
|
is followed by a list of links, one per line. Each link has the
|
||||||
|
form <span class="code">{left|right|up|down}</span> =
|
||||||
|
<span class="code">name</span>. A link indicates which screen is
|
||||||
|
adjacent in the given direction.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Example:
|
||||||
|
<pre>
|
||||||
|
section: links
|
||||||
|
moe:
|
||||||
|
right = larry
|
||||||
|
up = curly
|
||||||
|
larry:
|
||||||
|
left = moe
|
||||||
|
up = curly
|
||||||
|
curly:
|
||||||
|
down = larry
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
This indicates that screen <span class="code">larry</span> is to
|
||||||
|
the right of screen <span class="code">moe</span> (so moving the
|
||||||
|
cursor off the right edge of <span class="code">moe</span> would
|
||||||
|
make it appear at the left edge of <span class="code">larry</span>),
|
||||||
|
<span class="code">curly</span> is above <span class="code">moe</span>,
|
||||||
|
<span class="code">moe</span> is to the left of
|
||||||
|
<span class="code">larry</span>, <span class="code">curly</span> is
|
||||||
|
above <span class="code">larry</span>, and
|
||||||
|
<span class="code">larry</span> is below
|
||||||
|
<span class="code">curly</span>. Note that links do not have to be
|
||||||
|
symmetrical; moving up from <span class="code">moe</span> then down
|
||||||
|
from <span class="code">curly</span> lands the cursor on
|
||||||
|
<span class="code">larry</span>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>options</h4>
|
||||||
|
<p>
|
||||||
|
<span class="arg">args</span> is a list of lines of the form
|
||||||
|
<span class="code">name = value</span>. These set the global
|
||||||
|
options.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Example:
|
||||||
|
<pre>
|
||||||
|
section: options
|
||||||
|
heatbeat = 5000
|
||||||
|
switchDelay = 500
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
You can use the following options:
|
||||||
|
<ul>
|
||||||
|
<li><span class="code">heartbeat = N</span>
|
||||||
|
<p>
|
||||||
|
The server will expect each client to send a message no
|
||||||
|
less than every <span class="code">N</span> milliseconds.
|
||||||
|
If no message arrives from a client within
|
||||||
|
<span class="code">3N</span> seconds the server forces that
|
||||||
|
client to disconnect.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If synergy fails to detect clients disconnecting while
|
||||||
|
the server is sleeping or vice versa, try using this
|
||||||
|
option.
|
||||||
|
</p>
|
||||||
|
<li><span class="code">switchDelay = N</span>
|
||||||
|
<p>
|
||||||
|
Synergy won't switch screens when the mouse reaches the
|
||||||
|
edge of a screen unless it stays on the edge for
|
||||||
|
<span class="code">N</span>
|
||||||
|
milliseconds. This helps prevent unintentional
|
||||||
|
switching when working near the edge of a screen.
|
||||||
|
</p>
|
||||||
|
<li><span class="code">switchDoubleTap = N</span>
|
||||||
|
<p>
|
||||||
|
Synergy won't switch screens when the mouse reaches the
|
||||||
|
edge of a screen unless it's moved away from the edge
|
||||||
|
and then back to the edge within <span class="code">N</span>
|
||||||
|
milliseconds. With
|
||||||
|
the option you have to quickly tap the edge twice to
|
||||||
|
switch. This helps prevent unintentional switching
|
||||||
|
when working near the edge of a screen.
|
||||||
|
</p>
|
||||||
|
<li><span class="code">screenSaverSync = {true|false}</span>
|
||||||
|
<p>
|
||||||
|
If set to <span class="code">false</span> then synergy
|
||||||
|
won't synchronize screen savers. Client screen savers
|
||||||
|
will start according to their individual configurations.
|
||||||
|
The server screen saver won't start if there is input,
|
||||||
|
even if that input is directed toward a client screen.
|
||||||
|
</p>
|
||||||
|
<li><span class="code">relativeMouseMoves = {true|false}</span>
|
||||||
|
<p>
|
||||||
|
If set to <span class="code">true</span> then secondary
|
||||||
|
screens move the mouse using relative rather than
|
||||||
|
absolute mouse moves when and only when Scroll Lock is
|
||||||
|
toggled on (i.e. the cursor is locked to the screen).
|
||||||
|
This is intended to make synergy work better with certain
|
||||||
|
games. If set to <span class="code">false</span> or not
|
||||||
|
set then all mouse moves are absolute.
|
||||||
|
</p>
|
||||||
|
</ul>
|
||||||
|
You can use both the <span class="code">switchDelay</span> and
|
||||||
|
<span class="code">switchDoubleTap</span> options at the same
|
||||||
|
time. Synergy will switch when either requirement is satisfied.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,84 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Synergy Developer's Guide</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Developer's Guide</h3>
|
||||||
|
<p>
|
||||||
|
Synergy is reasonably well commented so reading the source code
|
||||||
|
should be enough to understand particular pieces. See the
|
||||||
|
<a href="PORTING"><span class="code">doc/PORTING</span></a>
|
||||||
|
file in the synergy source code for more high-level information.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>How it works</h4>
|
||||||
|
<p>
|
||||||
|
The theory behind synergy is simple: the server captures mouse,
|
||||||
|
keyboard, clipboard, and screen saver events and forwards them to
|
||||||
|
one or more clients. If input is directed to the server itself
|
||||||
|
then the input is delivered normally. In practice, however, many
|
||||||
|
complications arise.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
First, different keyboard mappings can produce different characters.
|
||||||
|
Synergy attempts to generate the same character on the client as
|
||||||
|
would've been generated on the server, including appropriate modifier
|
||||||
|
keys (like Control and Alt). Non-character keys like Shift are also
|
||||||
|
synthesized if possible. Sometimes the client simply cannot create
|
||||||
|
the character or doesn't have a corresponding non-character key and
|
||||||
|
synergy must discard the event. Note that synergy won't necessarily
|
||||||
|
synthesize an event for the corresponding key on the client's
|
||||||
|
keyboard. For example, if the client or server can't distinguish
|
||||||
|
between the left and right shift keys then synergy can't be certain
|
||||||
|
to synthesize the shift on the same side of the keyboard as the user
|
||||||
|
pressed.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Second, different systems have different clipboards and clipboard
|
||||||
|
formats. The X window system has a system-wide selection and
|
||||||
|
clipboard (and yet other buffers) while Microsoft Windows has only
|
||||||
|
a system-wide clipboard. Synergy has to choose which of these
|
||||||
|
buffers correspond to one another. Furthermore, different systems
|
||||||
|
use different text encodings and line breaks. Synergy mediates and
|
||||||
|
converts between them.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Finally, there are no standards across operating systems for some
|
||||||
|
operations that synergy requires. Among these are: intercepting
|
||||||
|
and synthesizing events; enabling, disabling, starting and stopping
|
||||||
|
the screen saver; detecting when the screen saver starts; reading
|
||||||
|
and writing the clipboard(s).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
All this means that synergy must be customized to each operating
|
||||||
|
system (or windowing system in the case of X windows). Synergy
|
||||||
|
breaks platform differences into two groups. The first includes
|
||||||
|
the mundane platform dependent things: file system stuff,
|
||||||
|
multithreading, network I/O, multi-byte and wide character
|
||||||
|
conversion, time and sleeping, message display and logging, and
|
||||||
|
running a process detached from a terminal. This code lives in
|
||||||
|
<span class="code">lib/arch</span>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The second includes screen and window management handling, user
|
||||||
|
event handling, event synthesis, the clipboards, and the screen
|
||||||
|
saver. This code lives in <span class="code">lib/platform</span>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
For both groups, there are particular classes or interfaces that
|
||||||
|
must be inherited and implemented for each platform. See the
|
||||||
|
<a href="PORTING"><span class="code">doc/PORTING</span></a> file in
|
||||||
|
the synergy source code for more information.
|
||||||
|
</p>
|
||||||
|
<h4>Auto-generated Documentation</h4>
|
||||||
|
<p>
|
||||||
|
Synergy can automatically generate documentation from the comments
|
||||||
|
in the code using <a href="http://www.doxygen.org/">doxygen</a>.
|
||||||
|
Use "<span class="code">make doxygen</span>" to build it yourself
|
||||||
|
from the source code into the <span class="code">doc/doxygen/html</span>
|
||||||
|
directory.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,249 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Synergy FAQ</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Synergy Frequently Asked Questions</h3>
|
||||||
|
|
||||||
|
<h4>Questions</h4>
|
||||||
|
<ol class="faq">
|
||||||
|
<li><a href="#faq1">Why doesn't ctrl+alt+del work on secondary screens?</a>
|
||||||
|
<li><a href="#faq2">Can the server and client be using different operating systems?</a>
|
||||||
|
<li><a href="#faq3">What's the difference between synergy and x2x, x2vnc, etc?</a>
|
||||||
|
<li><a href="#faq4">What does "Cannot initialize hook library" mean?</a>
|
||||||
|
<li><a href="#faq5">What security/encryption does synergy provide?</a>
|
||||||
|
<li><a href="#faq6">What should I call my screens in the configuration?</a>
|
||||||
|
<li><a href="#faq7">Why do my Caps-Lock and Num-Lock keys act funny?</a>
|
||||||
|
<li><a href="#faq8">Can synergy share the display in addition to the mouse and keyboard?</a>
|
||||||
|
<li><a href="#faq9">Can synergy do drag and drop between computers?</a>
|
||||||
|
<li><a href="#faq10">Do AltGr or Mode-Switch or ISO_Level3_Shift work?</a>
|
||||||
|
<li><a href="#faq11">Why isn't synergy ported to platform XYZ?</a>
|
||||||
|
<li><a href="#faq12">My client can't connect. What's wrong?</a>
|
||||||
|
<li><a href="#faq13">Linking fails on Solaris. What's wrong?</a>
|
||||||
|
<li><a href="#faq14">The screen saver never starts. Why not?</a>
|
||||||
|
<li><a href="#faq15">I can't switch screens anymore for no apparent reason. Why?</a>
|
||||||
|
<li><a href="#faq16">I get the error 'Xlib: No protocol specified'. Why?</a>
|
||||||
|
<li><a href="#faq17">The cursor goes to secondary screen but won't come back. Why?</a>
|
||||||
|
<li><a href="#faq18">The cursor wraps from one edge of the screen to the opposite. Why?</a>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<h4>Answers</h4>
|
||||||
|
<ol class="faq">
|
||||||
|
<li><a name="faq1"></a><span class="fakelink">Why doesn't ctrl+alt+del work on secondary screens?</span>
|
||||||
|
<p>
|
||||||
|
Synergy isn't able to capture ctrl+alt+del on PC compatible
|
||||||
|
systems because it's handled completely differently than
|
||||||
|
other keystrokes. However, when the mouse is on a client
|
||||||
|
screen, pressing ctrl+alt+pause will simulate ctrl+alt+del
|
||||||
|
on the client. (A client running on Windows NT, 2000, or XP
|
||||||
|
must be running as a service for this to work.)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq2"></a><span class="fakelink">Can the server and client be using different operating systems?</span>
|
||||||
|
<p>
|
||||||
|
Yes. The synergy network protocol is platform neutral so
|
||||||
|
synergy doesn't care what operating systems are running on
|
||||||
|
the server and clients.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq3"></a><span class="fakelink">What's the difference between synergy and
|
||||||
|
<span class="code">x2x</span>, <span class="code">x2vnc</span>, etc?</span>
|
||||||
|
<p>
|
||||||
|
Unlike <span class="code">x2x</span>, synergy supports any number of computers and
|
||||||
|
it doesn't require X on Microsoft Windows platforms. It
|
||||||
|
also has more advanced clipboard support and synchronizes
|
||||||
|
screensavers. <span class="code">x2vnc</span> is also limited to two computers,
|
||||||
|
requires the separate vnc package, and is really only
|
||||||
|
appropriate for using an X system to control a non-X system.
|
||||||
|
However, the right tool for the job is whatever tool works
|
||||||
|
best for you.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq4"></a><span class="fakelink">What does "Cannot initialize hook library" mean?</span>
|
||||||
|
<p>
|
||||||
|
This error can occur on a synergy server running on a
|
||||||
|
Microsoft Windows operating system. It means that synergy
|
||||||
|
is already running or possibly was not shut down properly.
|
||||||
|
If it's running then first end the synergy task. If it's
|
||||||
|
not then try logging off and back on or rebooting then
|
||||||
|
starting synergy again.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq5"></a><span class="fakelink">What security/encryption does synergy provide?</span>
|
||||||
|
<p>
|
||||||
|
Synergy provides no built-in encryption or authentication.
|
||||||
|
Given that, synergy should not be used on or over any untrusted
|
||||||
|
network, especially the Internet. It's generally fine for home
|
||||||
|
networks. Future versions may provide built-in encryption and
|
||||||
|
authentication.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Strong encryption and authentication is available through SSH
|
||||||
|
(secure shell). Run the SSH daemon (i.e. server) on the same
|
||||||
|
computer that you run the synergy server. It requires no
|
||||||
|
special configuration to support synergy. On each synergy
|
||||||
|
client system, run SSH with port forwarding:
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
ssh -f -N -L 24800:<span class="arg">server-hostname</arg>:24800 <span class="arg">server-hostname</arg>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
where <span class="arg">server-hostname</span> is the name of the
|
||||||
|
SSH/synergy server.
|
||||||
|
Once ssh authenticates itself, start the synergy client
|
||||||
|
normally except use <span class="code">localhost</span> or
|
||||||
|
<span class="code">127.0.0.1</span> as the server's
|
||||||
|
address. SSH will then encrypt all communication on behalf of
|
||||||
|
synergy. Authentication is handled by the SSH authentication.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
A free implementation of SSH for Linux and many Unix systems is
|
||||||
|
<a href="http://www.openssh.com/">OpenSSH</a>. For
|
||||||
|
Windows there's a port of OpenSSH using
|
||||||
|
<a href="http://www.cygwin.com/">Cygwin<a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq6"></a><span class="fakelink">What should I call my screens in the configuration?</span>
|
||||||
|
<p>
|
||||||
|
You can use any unique name in the configuration file for each
|
||||||
|
screen but it's easiest to use the hostname of the computer.
|
||||||
|
That's the computer name not including the domain. For example,
|
||||||
|
a computer with the fully qualified domain name <span class="code">xyz.foo.com</span> has
|
||||||
|
the hostname <span class="code">xyz</span>. There should also be an alias for <span class="code">xyz</span> to
|
||||||
|
<span class="code">xyz.foo.com</span>. If you don't use the computer's hostname, you
|
||||||
|
have to tell synergy the name of the screen using a command line
|
||||||
|
option, or the startup dialog on Windows.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Some systems are configured to report the fully qualified domain
|
||||||
|
name as the hostname. For those systems it will be easier to use
|
||||||
|
the FQDN as the screen name. Also note that a Mac OS X system
|
||||||
|
named <span class="code">xyz</span> may report its hostname as
|
||||||
|
<span class="code">xyz.local</span>. If that's the case for you
|
||||||
|
then use <span class="code">xyz.local</span> as the screen name.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq7"></a><span class="fakelink">Why do my Caps-Lock and Num-Lock keys act funny?</span>
|
||||||
|
<p>
|
||||||
|
Some systems treat the Caps-Lock and Num-Lock keys differently
|
||||||
|
than all the others. Whereas most keys report going down when
|
||||||
|
physically pressed and going up when physically released, on
|
||||||
|
these systems the Caps-Lock and Num-Lock keys report going down
|
||||||
|
when being activated and going up when being deactivated. That
|
||||||
|
is, when you press and release, say, Caps-Lock to activate it, it
|
||||||
|
only reports going down, and when you press and release to
|
||||||
|
deactivate it, it only reports going up. This confuses synergy.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
You can solve the problem by changing your configuration file.
|
||||||
|
In the screens section, following each screen that has the
|
||||||
|
problem, add either or both of these lines as appropriate:
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
halfDuplexCapsLock = true
|
||||||
|
halfDuplexNumLock = true
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
Then restart synergy on the server.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq8"></a><span class="fakelink">Can synergy share the display in addition to the mouse and keyboard?</span>
|
||||||
|
<p>
|
||||||
|
No. Synergy is a KM solution not a KVM (keyboard, video, mouse)
|
||||||
|
solution. However, future versions will probably support KVM.
|
||||||
|
Hopefully, this will make synergy suitable for managing large
|
||||||
|
numbers of headless servers.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq9"></a><span class="fakelink">Can synergy do drag and drop between computers?</span>
|
||||||
|
<p>
|
||||||
|
No. That's a very cool idea and it'll be explored. However, it's
|
||||||
|
also clearly difficult and may take a long time to implement.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq10"></a><span class="fakelink">Does AltGr/Mode-Switch/ISO_Level3_Shift work?</span>
|
||||||
|
<p>
|
||||||
|
Yes, as of 1.0.12 synergy has full support for AltGr/Mode-switch.
|
||||||
|
That includes support for most (all?) European keyboard layouts.
|
||||||
|
All systems should be using the same keyboard layout, though, for
|
||||||
|
all characters to work. (Any character missing from a client's
|
||||||
|
layout cannot be generated by synergy.) There is experimental
|
||||||
|
support for ISO_Level3_Shift in 1.1.3.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq11"></a><span class="fakelink">Why isn't synergy ported to platform XYZ?</span>
|
||||||
|
<p>
|
||||||
|
Probably because the developers don't have access to platform XYZ
|
||||||
|
and/or are unfamiliar with development on XYZ. Also, synergy has
|
||||||
|
inherently non-portable aspects so there's a not insignificant
|
||||||
|
effort involved in porting.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq12"></a><span class="fakelink">My client can't connect. What's wrong?</span>
|
||||||
|
<p>
|
||||||
|
A common mistake when starting the client is to give the wrong
|
||||||
|
server host name. The last synergyc command line option (Unix)
|
||||||
|
or the "Server Host Name" edit field (Windows) should be the
|
||||||
|
host name (or IP address) of the server <b>not</b> the client's host
|
||||||
|
name. If you get the error <span class="code">connection failed: cannot connect
|
||||||
|
socket</span> followed by <span class="code">the attempt to connect was forcefully
|
||||||
|
rejected</span> or <span class="code">connection refused</span> then the server isn't started,
|
||||||
|
can't bind the address, or the client is connecting to the wrong
|
||||||
|
host name/address or port.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq13"></a><span class="fakelink">Linking fails on Solaris. What's wrong?</span>
|
||||||
|
<p>
|
||||||
|
Did you add
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
<nobr>--x-includes=/usr/openwin/include --x-libraries=/usr/openwin/lib</nobr>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
to the <span class="code">configure</span> command line? Solaris puts
|
||||||
|
the X11 includes and libraries in an unusual place and the above lets
|
||||||
|
synergy find them.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq14"></a><span class="fakelink">The screen saver never starts. Why not?</span>
|
||||||
|
<p>
|
||||||
|
If the synergy server is on X Windows then the screen saver will
|
||||||
|
not start while the mouse is on a client screen. This is a
|
||||||
|
consequence of how X Windows, synergy and xscreensaver work.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq15"></a><span class="fakelink">I can't switch screens anymore for no apparent reason. Why?</span>
|
||||||
|
<p>
|
||||||
|
This should not happen with 1.1.3 and up. Earlier versions of
|
||||||
|
synergy would not allow switching screens when a key was down and
|
||||||
|
sometimes it would believe a key was down when it was not.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq16"></a><span class="fakelink">I get the error 'Xlib: No protocol specified'. Why?</span>
|
||||||
|
<p>
|
||||||
|
You're running synergy without authorization to connect to the
|
||||||
|
X display. Typically the reason is running synergy as root when
|
||||||
|
logged in as non-root. Just run synergy as the same user that's
|
||||||
|
logged in.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq17"></a><span class="fakelink">The cursor goes to secondary screen but won't come back. Why?</span>
|
||||||
|
<p>
|
||||||
|
Your configuration is incorrect. You must indicate the neighbors
|
||||||
|
of every screen. Just because you've configured 'Apple' to be to
|
||||||
|
the left of 'Orange' does not mean that 'Orange' is to the right
|
||||||
|
of 'Apple'. You must provide both in the configuration.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li><a name="faq18"></a><span class="fakelink">The cursor wraps from one edge of the screen to the opposite. Why?</span>
|
||||||
|
<p>
|
||||||
|
Because you told it to. If you list 'Orange' to be to the left of
|
||||||
|
'Orange' then moving the mouse off the left edge of 'Orange' will
|
||||||
|
make it jump to the right edge. Remove the offending line from the
|
||||||
|
configuration if you don't want that behavior.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,6 +1,12 @@
|
||||||
History of Synergy
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
==================
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Synergy History</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Synergy History</h3>
|
||||||
|
<p>
|
||||||
The first incarnation of synergy was CosmoSynergy, created by
|
The first incarnation of synergy was CosmoSynergy, created by
|
||||||
Richard Lee and Adam Feder then at Cosmo Software, Inc., a
|
Richard Lee and Adam Feder then at Cosmo Software, Inc., a
|
||||||
subsidiary of SGI (nee Silicon Graphics, Inc.), at the end of
|
subsidiary of SGI (nee Silicon Graphics, Inc.), at the end of
|
||||||
|
@ -10,7 +16,11 @@ both an Irix and a Windows box on their desks and switchboxes
|
||||||
were expensive and annoying. CosmoSynergy was a great success
|
were expensive and annoying. CosmoSynergy was a great success
|
||||||
but Cosmo Software declined to productize it and the company
|
but Cosmo Software declined to productize it and the company
|
||||||
was later closed.
|
was later closed.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
Synergy is a from-scratch reimplementation of CosmoSynergy.
|
Synergy is a from-scratch reimplementation of CosmoSynergy.
|
||||||
It provides most of the features of the original and adds a
|
It provides most of the features of the original and adds a
|
||||||
few improvements.
|
few improvements.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,96 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Synergy Introduction</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Synergy</h3>
|
||||||
|
<h4>Introduction</h4>
|
||||||
|
<p>
|
||||||
|
synergy: [noun] a mutually advantageous conjunction of distinct elements
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
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 monitor(s).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Synergy is open source and released under the
|
||||||
|
<a href="license.html#GPL">GNU Public License (GPL)</a>.
|
||||||
|
</p>
|
||||||
|
<h4>Links</h4>
|
||||||
|
<p>
|
||||||
|
<b>Local</b><br>
|
||||||
|
Getting started:<br>
|
||||||
|
<a href="running.html">how to run synergy</a><br>
|
||||||
|
<a href="compiling.html">how to build synergy</a><br>
|
||||||
|
<br>
|
||||||
|
Using synergy:<br>
|
||||||
|
<a href="faq.html">FAQ</a><br>
|
||||||
|
<a href="tips.html">tips on using synergy</a><br>
|
||||||
|
<a href="autostart.html">autostart guide</a><br>
|
||||||
|
<a href="configuration.html">configuration file format guide</a><br>
|
||||||
|
<br>
|
||||||
|
Future directions:<br>
|
||||||
|
<a href="todo.html">roadmap to future enhancements</a><br>
|
||||||
|
<br>
|
||||||
|
For developers:<br>
|
||||||
|
<a href="developer.html">developer's guide</a><br>
|
||||||
|
<br>
|
||||||
|
Security:<br>
|
||||||
|
<a href="security.html">important note about security with synergy</a><br>
|
||||||
|
<br>
|
||||||
|
Miscellaneous documents:<br>
|
||||||
|
<a href="authors.html">the authors of synergy</a><br>
|
||||||
|
<a href="history.html">the history of synergy</a><br>
|
||||||
|
<a href="license.html">the synergy license terms</a><br>
|
||||||
|
<a href="news.html">news about synergy</a><br>
|
||||||
|
<br>
|
||||||
|
<b>Internet</b><br>
|
||||||
|
<a href="http://synergy2.sourceforge.net/">synergy home page</a><br>
|
||||||
|
<a href="http://sourceforge.net/projects/synergy2/">synergy project page</a><br>
|
||||||
|
<a href="http://sourceforge.net/tracker/?func=browse&group_id=59275&atid=490467">synergy bug list</a><br>
|
||||||
|
<a href="http://sourceforge.net/forum/?group_id=59275">synergy community forums</a><br>
|
||||||
|
</p>
|
||||||
|
<h4>System Requirements</h4>
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<li>Microsoft Windows 95, Windows 98, Windows Me (the Windows 95 family)
|
||||||
|
<li>Microsoft Windows NT, Windows 2000, Windows XP (the Windows NT family)
|
||||||
|
<li>Mac OS X 10.2 or higher
|
||||||
|
<li>Unix
|
||||||
|
<ul>
|
||||||
|
<li>X Windows version 11 revision 4 or up
|
||||||
|
<li>XTEST extension<br>
|
||||||
|
(use "<span class="code">xdpyinfo | grep XTEST</code>" to check for XTEST)
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
All systems must support TCP/IP networking.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
"Unix" includes Linux, Solaris, Irix and other variants. Synergy has
|
||||||
|
only been extensively tested on Linux and may not work completely or
|
||||||
|
at all on other versions of Unix. Patches are welcome (including
|
||||||
|
patches that package binaries) at the
|
||||||
|
<a href="http://sourceforge.net/tracker/?group_id=59275&atid=490469">patches page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The Mac OS X port is incomplete. It does not synchronize the screen saver,
|
||||||
|
only text clipboard data works (i.e. HTML and bitmap data do not work),
|
||||||
|
non-US English keyboards are untested and probably don't work, and there
|
||||||
|
may be problems with mouse pointer and mouse wheel acceleration. Other
|
||||||
|
problems should be <a href="http://sourceforge.net/tracker/?func=add&group_id=59275&atid=490467">filed as bugs</a>.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,16 +1,25 @@
|
||||||
Synergy is copyright (C) 2002 Chris Schoeneman.
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
Synergy is distributed under the following license.
|
<html>
|
||||||
|
<head>
|
||||||
GNU GENERAL PUBLIC LICENSE
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
Version 2, June 1991
|
<title>Synergy License and Copyright</title>
|
||||||
|
</head>
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
<body class="main">
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
<h3>Synergy License and Copyright</h3>
|
||||||
|
<p>
|
||||||
|
Synergy is copyright (C) 2002 Chris Schoeneman.<br>
|
||||||
|
Synergy is distributed under the GNU GENERAL PUBLIC LICENSE.
|
||||||
|
</p>
|
||||||
|
<h4><a name="GPL"></a>GNU GENERAL PUBLIC LICENSE</h4>
|
||||||
|
<b>Version 2, June 1991</b>
|
||||||
|
<p>
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.<br>
|
||||||
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA<br>
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
</p>
|
||||||
Preamble
|
<h4>Preamble</h4>
|
||||||
|
<p>
|
||||||
The licenses for most software are designed to take away your
|
The licenses for most software are designed to take away your
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
License is intended to guarantee your freedom to share and change free
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
@ -20,48 +29,55 @@ Foundation's software and to any other program whose authors commit to
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
the GNU Library General Public License instead.) You can apply it to
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
your programs, too.
|
your programs, too.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
When we speak of free software, we are referring to freedom, not
|
When we speak of free software, we are referring to freedom, not
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
have the freedom to distribute copies of free software (and charge for
|
have the freedom to distribute copies of free software (and charge for
|
||||||
this service if you wish), that you receive source code or can get it
|
this service if you wish), that you receive source code or can get it
|
||||||
if you want it, that you can change the software or use pieces of it
|
if you want it, that you can change the software or use pieces of it
|
||||||
in new free programs; and that you know you can do these things.
|
in new free programs; and that you know you can do these things.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
To protect your rights, we need to make restrictions that forbid
|
To protect your rights, we need to make restrictions that forbid
|
||||||
anyone to deny you these rights or to ask you to surrender the rights.
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
These restrictions translate to certain responsibilities for you if you
|
These restrictions translate to certain responsibilities for you if you
|
||||||
distribute copies of the software, or if you modify it.
|
distribute copies of the software, or if you modify it.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
For example, if you distribute copies of such a program, whether
|
For example, if you distribute copies of such a program, whether
|
||||||
gratis or for a fee, you must give the recipients all the rights that
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
you have. You must make sure that they, too, receive or can get the
|
you have. You must make sure that they, too, receive or can get the
|
||||||
source code. And you must show them these terms so they know their
|
source code. And you must show them these terms so they know their
|
||||||
rights.
|
rights.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
We protect your rights with two steps: (1) copyright the software, and
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
(2) offer you this license which gives you legal permission to copy,
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
distribute and/or modify the software.
|
distribute and/or modify the software.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
Also, for each author's protection and ours, we want to make certain
|
Also, for each author's protection and ours, we want to make certain
|
||||||
that everyone understands that there is no warranty for this free
|
that everyone understands that there is no warranty for this free
|
||||||
software. If the software is modified by someone else and passed on, we
|
software. If the software is modified by someone else and passed on, we
|
||||||
want its recipients to know that what they have is not the original, so
|
want its recipients to know that what they have is not the original, so
|
||||||
that any problems introduced by others will not reflect on the original
|
that any problems introduced by others will not reflect on the original
|
||||||
authors' reputations.
|
authors' reputations.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
Finally, any free program is threatened constantly by software
|
Finally, any free program is threatened constantly by software
|
||||||
patents. We wish to avoid the danger that redistributors of a free
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
program will individually obtain patent licenses, in effect making the
|
program will individually obtain patent licenses, in effect making the
|
||||||
program proprietary. To prevent this, we have made it clear that any
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
patent must be licensed for everyone's free use or not licensed at all.
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
The precise terms and conditions for copying, distribution and
|
The precise terms and conditions for copying, distribution and
|
||||||
modification follow.
|
modification follow.
|
||||||
|
</p>
|
||||||
GNU GENERAL PUBLIC LICENSE
|
<h4>GNU GENERAL PUBLIC LICENSE<br>
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</h4>
|
||||||
|
<p>
|
||||||
0. This License applies to any program or other work which contains
|
0. This License applies to any program or other work which contains
|
||||||
a notice placed by the copyright holder saying it may be distributed
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
under the terms of this General Public License. The "Program", below,
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
@ -71,14 +87,16 @@ that is to say, a work containing the Program or a portion of it,
|
||||||
either verbatim or with modifications and/or translated into another
|
either verbatim or with modifications and/or translated into another
|
||||||
language. (Hereinafter, translation is included without limitation in
|
language. (Hereinafter, translation is included without limitation in
|
||||||
the term "modification".) Each licensee is addressed as "you".
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
Activities other than copying, distribution and modification are not
|
Activities other than copying, distribution and modification are not
|
||||||
covered by this License; they are outside its scope. The act of
|
covered by this License; they are outside its scope. The act of
|
||||||
running the Program is not restricted, and the output from the Program
|
running the Program is not restricted, and the output from the Program
|
||||||
is covered only if its contents constitute a work based on the
|
is covered only if its contents constitute a work based on the
|
||||||
Program (independent of having been made by running the Program).
|
Program (independent of having been made by running the Program).
|
||||||
Whether that is true depends on what the Program does.
|
Whether that is true depends on what the Program does.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
1. You may copy and distribute verbatim copies of the Program's
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
source code as you receive it, in any medium, provided that you
|
source code as you receive it, in any medium, provided that you
|
||||||
conspicuously and appropriately publish on each copy an appropriate
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
@ -86,23 +104,31 @@ copyright notice and disclaimer of warranty; keep intact all the
|
||||||
notices that refer to this License and to the absence of any warranty;
|
notices that refer to this License and to the absence of any warranty;
|
||||||
and give any other recipients of the Program a copy of this License
|
and give any other recipients of the Program a copy of this License
|
||||||
along with the Program.
|
along with the Program.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
You may charge a fee for the physical act of transferring a copy, and
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
you may at your option offer warranty protection in exchange for a fee.
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
2. You may modify your copy or copies of the Program or any portion
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
of it, thus forming a work based on the Program, and copy and
|
of it, thus forming a work based on the Program, and copy and
|
||||||
distribute such modifications or work under the terms of Section 1
|
distribute such modifications or work under the terms of Section 1
|
||||||
above, provided that you also meet all of these conditions:
|
above, provided that you also meet all of these conditions:
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<table><tr><td> </td>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
a) You must cause the modified files to carry prominent notices
|
a) You must cause the modified files to carry prominent notices
|
||||||
stating that you changed the files and the date of any change.
|
stating that you changed the files and the date of any change.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
b) You must cause any work that you distribute or publish, that in
|
b) You must cause any work that you distribute or publish, that in
|
||||||
whole or in part contains or is derived from the Program or any
|
whole or in part contains or is derived from the Program or any
|
||||||
part thereof, to be licensed as a whole at no charge to all third
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
parties under the terms of this License.
|
parties under the terms of this License.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
c) If the modified program normally reads commands interactively
|
c) If the modified program normally reads commands interactively
|
||||||
when run, you must cause it, when started running for such
|
when run, you must cause it, when started running for such
|
||||||
interactive use in the most ordinary way, to print or display an
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
@ -113,7 +139,10 @@ above, provided that you also meet all of these conditions:
|
||||||
License. (Exception: if the Program itself is interactive but
|
License. (Exception: if the Program itself is interactive but
|
||||||
does not normally print such an announcement, your work based on
|
does not normally print such an announcement, your work based on
|
||||||
the Program is not required to print an announcement.)
|
the Program is not required to print an announcement.)
|
||||||
|
</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
These requirements apply to the modified work as a whole. If
|
These requirements apply to the modified work as a whole. If
|
||||||
identifiable sections of that work are not derived from the Program,
|
identifiable sections of that work are not derived from the Program,
|
||||||
and can be reasonably considered independent and separate works in
|
and can be reasonably considered independent and separate works in
|
||||||
|
@ -123,38 +152,50 @@ distribute the same sections as part of a whole which is a work based
|
||||||
on the Program, the distribution of the whole must be on the terms of
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
this License, whose permissions for other licensees extend to the
|
this License, whose permissions for other licensees extend to the
|
||||||
entire whole, and thus to each and every part regardless of who wrote it.
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
exercise the right to control the distribution of derivative or
|
exercise the right to control the distribution of derivative or
|
||||||
collective works based on the Program.
|
collective works based on the Program.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
In addition, mere aggregation of another work not based on the Program
|
In addition, mere aggregation of another work not based on the Program
|
||||||
with the Program (or with a work based on the Program) on a volume of
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
a storage or distribution medium does not bring the other work under
|
a storage or distribution medium does not bring the other work under
|
||||||
the scope of this License.
|
the scope of this License.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
3. You may copy and distribute the Program (or a work based on it,
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
under Section 2) in object code or executable form under the terms of
|
under Section 2) in object code or executable form under the terms of
|
||||||
Sections 1 and 2 above provided that you also do one of the following:
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<table><tr><td> </td>
|
||||||
|
<td>
|
||||||
|
<p>
|
||||||
a) Accompany it with the complete corresponding machine-readable
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
source code, which must be distributed under the terms of Sections
|
source code, which must be distributed under the terms of Sections
|
||||||
1 and 2 above on a medium customarily used for software interchange; or,
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
b) Accompany it with a written offer, valid for at least three
|
b) Accompany it with a written offer, valid for at least three
|
||||||
years, to give any third party, for a charge no more than your
|
years, to give any third party, for a charge no more than your
|
||||||
cost of physically performing source distribution, a complete
|
cost of physically performing source distribution, a complete
|
||||||
machine-readable copy of the corresponding source code, to be
|
machine-readable copy of the corresponding source code, to be
|
||||||
distributed under the terms of Sections 1 and 2 above on a medium
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
customarily used for software interchange; or,
|
customarily used for software interchange; or,
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
c) Accompany it with the information you received as to the offer
|
c) Accompany it with the information you received as to the offer
|
||||||
to distribute corresponding source code. (This alternative is
|
to distribute corresponding source code. (This alternative is
|
||||||
allowed only for noncommercial distribution and only if you
|
allowed only for noncommercial distribution and only if you
|
||||||
received the program in object code or executable form with such
|
received the program in object code or executable form with such
|
||||||
an offer, in accord with Subsection b above.)
|
an offer, in accord with Subsection b above.)
|
||||||
|
</p>
|
||||||
|
</td></tr></table>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
The source code for a work means the preferred form of the work for
|
The source code for a work means the preferred form of the work for
|
||||||
making modifications to it. For an executable work, complete source
|
making modifications to it. For an executable work, complete source
|
||||||
code means all the source code for all modules it contains, plus any
|
code means all the source code for all modules it contains, plus any
|
||||||
|
@ -165,13 +206,15 @@ anything that is normally distributed (in either source or binary
|
||||||
form) with the major components (compiler, kernel, and so on) of the
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
operating system on which the executable runs, unless that component
|
operating system on which the executable runs, unless that component
|
||||||
itself accompanies the executable.
|
itself accompanies the executable.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
If distribution of executable or object code is made by offering
|
If distribution of executable or object code is made by offering
|
||||||
access to copy from a designated place, then offering equivalent
|
access to copy from a designated place, then offering equivalent
|
||||||
access to copy the source code from the same place counts as
|
access to copy the source code from the same place counts as
|
||||||
distribution of the source code, even though third parties are not
|
distribution of the source code, even though third parties are not
|
||||||
compelled to copy the source along with the object code.
|
compelled to copy the source along with the object code.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
except as expressly provided under this License. Any attempt
|
except as expressly provided under this License. Any attempt
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
@ -179,7 +222,8 @@ void, and will automatically terminate your rights under this License.
|
||||||
However, parties who have received copies, or rights, from you under
|
However, parties who have received copies, or rights, from you under
|
||||||
this License will not have their licenses terminated so long as such
|
this License will not have their licenses terminated so long as such
|
||||||
parties remain in full compliance.
|
parties remain in full compliance.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
5. You are not required to accept this License, since you have not
|
5. You are not required to accept this License, since you have not
|
||||||
signed it. However, nothing else grants you permission to modify or
|
signed it. However, nothing else grants you permission to modify or
|
||||||
distribute the Program or its derivative works. These actions are
|
distribute the Program or its derivative works. These actions are
|
||||||
|
@ -188,7 +232,8 @@ modifying or distributing the Program (or any work based on the
|
||||||
Program), you indicate your acceptance of this License to do so, and
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
all its terms and conditions for copying, distributing or modifying
|
all its terms and conditions for copying, distributing or modifying
|
||||||
the Program or works based on it.
|
the Program or works based on it.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
6. Each time you redistribute the Program (or any work based on the
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
Program), the recipient automatically receives a license from the
|
Program), the recipient automatically receives a license from the
|
||||||
original licensor to copy, distribute or modify the Program subject to
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
@ -196,7 +241,8 @@ these terms and conditions. You may not impose any further
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
You are not responsible for enforcing compliance by third parties to
|
You are not responsible for enforcing compliance by third parties to
|
||||||
this License.
|
this License.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
7. If, as a consequence of a court judgment or allegation of patent
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
infringement or for any other reason (not limited to patent issues),
|
infringement or for any other reason (not limited to patent issues),
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
@ -209,12 +255,14 @@ license would not permit royalty-free redistribution of the Program by
|
||||||
all those who receive copies directly or indirectly through you, then
|
all those who receive copies directly or indirectly through you, then
|
||||||
the only way you could satisfy both it and this License would be to
|
the only way you could satisfy both it and this License would be to
|
||||||
refrain entirely from distribution of the Program.
|
refrain entirely from distribution of the Program.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
If any portion of this section is held invalid or unenforceable under
|
If any portion of this section is held invalid or unenforceable under
|
||||||
any particular circumstance, the balance of the section is intended to
|
any particular circumstance, the balance of the section is intended to
|
||||||
apply and the section as a whole is intended to apply in other
|
apply and the section as a whole is intended to apply in other
|
||||||
circumstances.
|
circumstances.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
It is not the purpose of this section to induce you to infringe any
|
It is not the purpose of this section to induce you to infringe any
|
||||||
patents or other property right claims or to contest validity of any
|
patents or other property right claims or to contest validity of any
|
||||||
such claims; this section has the sole purpose of protecting the
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
@ -225,10 +273,12 @@ through that system in reliance on consistent application of that
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
to distribute software through any other system and a licensee cannot
|
to distribute software through any other system and a licensee cannot
|
||||||
impose that choice.
|
impose that choice.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
This section is intended to make thoroughly clear what is believed to
|
This section is intended to make thoroughly clear what is believed to
|
||||||
be a consequence of the rest of this License.
|
be a consequence of the rest of this License.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
original copyright holder who places the Program under this License
|
original copyright holder who places the Program under this License
|
||||||
|
@ -236,12 +286,14 @@ may add an explicit geographical distribution limitation excluding
|
||||||
those countries, so that distribution is permitted only in or among
|
those countries, so that distribution is permitted only in or among
|
||||||
countries not thus excluded. In such case, this License incorporates
|
countries not thus excluded. In such case, this License incorporates
|
||||||
the limitation as if written in the body of this License.
|
the limitation as if written in the body of this License.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
9. The Free Software Foundation may publish revised and/or new versions
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
of the General Public License from time to time. Such new versions will
|
of the General Public License from time to time. Such new versions will
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
address new problems or concerns.
|
address new problems or concerns.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
Each version is given a distinguishing version number. If the Program
|
Each version is given a distinguishing version number. If the Program
|
||||||
specifies a version number of this License which applies to it and "any
|
specifies a version number of this License which applies to it and "any
|
||||||
later version", you have the option of following the terms and conditions
|
later version", you have the option of following the terms and conditions
|
||||||
|
@ -249,7 +301,8 @@ either of that version or of any later version published by the Free
|
||||||
Software Foundation. If the Program does not specify a version number of
|
Software Foundation. If the Program does not specify a version number of
|
||||||
this License, you may choose any version ever published by the Free Software
|
this License, you may choose any version ever published by the Free Software
|
||||||
Foundation.
|
Foundation.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
10. If you wish to incorporate parts of the Program into other free
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
programs whose distribution conditions are different, write to the author
|
programs whose distribution conditions are different, write to the author
|
||||||
to ask for permission. For software which is copyrighted by the Free
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
@ -257,9 +310,11 @@ Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
make exceptions for this. Our decision will be guided by the two goals
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
of preserving the free status of all derivatives of our free software and
|
of preserving the free status of all derivatives of our free software and
|
||||||
of promoting the sharing and reuse of software generally.
|
of promoting the sharing and reuse of software generally.
|
||||||
|
</p>
|
||||||
NO WARRANTY
|
<p>
|
||||||
|
<b>NO WARRANTY</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE
|
||||||
IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE
|
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE
|
||||||
|
@ -270,7 +325,8 @@ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
|
||||||
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
|
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
|
||||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED
|
||||||
TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY
|
TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY
|
||||||
WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED
|
WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED
|
||||||
|
@ -282,5 +338,9 @@ LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
|
||||||
PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
|
PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
|
||||||
HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||||
SUCH DAMAGES.
|
SUCH DAMAGES.
|
||||||
|
</p>
|
||||||
END OF TERMS AND CONDITIONS
|
<p>
|
||||||
|
<b>END OF TERMS AND CONDITIONS</b>
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,335 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Synergy News</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Synergy News</h3>
|
||||||
|
|
||||||
|
<span class="date">Jun-13-2004</span> - Synergy 1.1.7 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Added OS X precompiled header file forgotten in last build
|
||||||
|
<li>Fixed bug in fix for 'unexpected async reply' on X11
|
||||||
|
<li>Removed dependency on "browser" service on win32
|
||||||
|
<li>Fixed assertion failure when connection fails immediately
|
||||||
|
<li>Fixed failure to connect on AIX
|
||||||
|
<li>Fixed error in conversion from multibyte to wide characters
|
||||||
|
<li>Maybe fixed win32 screen saver detection
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">May-26-2004</span> - Synergy 1.1.6 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Added preliminary Mac OS X support (client and server)
|
||||||
|
<li>Fixed ctrl+alt+del emulation on win32
|
||||||
|
<li>Fixed ctrl+alt+del on win32 server acting on both client and server
|
||||||
|
<li>Fixed handling of screen resolution changes on win32
|
||||||
|
<li>Fixed 'unexpected async reply' on X11
|
||||||
|
<li>Added dependency to win32 service to avoid startup race condition
|
||||||
|
<li>Fixed reference count bug
|
||||||
|
<li>Keyboard input focus now restored on X11 (fixes loss of input in some games)
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The OS X port does not yet support:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>HTML and bitmap clipboard data
|
||||||
|
<li>Screen saver synchronization
|
||||||
|
<li>Non-US English keyboards
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">May-05-2004</span> - Synergy 1.1.5 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>No longer switching screens when a mouse button is down
|
||||||
|
<li>Worked around win32 mouse hook bug, fixing switch on double tap
|
||||||
|
<li>Added support for HTML and bitmap (image/bmp) clipboard data
|
||||||
|
<li>Physical mouse no longer necessary on win32 secondary screens to see cursor
|
||||||
|
<li>Added experimental relative mouse moves on secondary screen option
|
||||||
|
<li>Fixed win32 lock up when closing server with clients still connected
|
||||||
|
<li>Fixed bug in handling duplicate connections
|
||||||
|
<li>Fixed pthread mutex initialization
|
||||||
|
<li>Made synergy dependent on NetBT on win32 (for service startup order)
|
||||||
|
<li>Automake fixes; now mostly works on darwin and MinGW
|
||||||
|
<li>Fixed builds on Solaris 9, FreeBSD, and OpenBSD
|
||||||
|
<li>Partial support for MSYS/MinGW builds (NOT COMPLETE)
|
||||||
|
<li>Partial merge of OS X port (NOT COMPLETE)
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Mar-31-2004</span> - Synergy 1.1.4 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed lookup of hosts by name of win32
|
||||||
|
<li>Reverted tray icon code to 1.0.15 version; seems to fix the bugs
|
||||||
|
<li>Fixed crash when caps, num, or scroll lock not in key map on X11
|
||||||
|
<li>Fixed double tap and wait to switch features
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Mar-28-2004</span> - Synergy 1.1.3 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Major code refactoring; reduced use of threads, added event queue
|
||||||
|
<li>Removed unused HTTP support code
|
||||||
|
<li>No longer interfering with mouse when scroll lock is toggled on
|
||||||
|
<li>Fixed minor mispositioning of mouse on win32
|
||||||
|
<li>Unix portability fixes
|
||||||
|
<li>Added support for power management
|
||||||
|
<li>Improved keyboard handling and bug fixes
|
||||||
|
<li>Fixed dead key handling
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Note: the tray icon on windows is known to not work correctly when
|
||||||
|
running the synergy server on Windows 95/95/Me.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<span class="date">Aug-24-2003</span> - Synergy 1.0.14 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed bugs in setting win32 process/thread priority
|
||||||
|
<li>Fixed resource leak in opening win32 system log
|
||||||
|
<li>Fixed win32 launcher not getting non-default advanced options
|
||||||
|
<li>Synergy log copied to clipboard now transferred to other screens
|
||||||
|
<li>Hack to work around lesstif clipboard removed (fixes pasting on X)
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Jul-20-2003</span> - Synergy 1.0.12 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This release finally completes support for non-ASCII characters,
|
||||||
|
fully supporting most (all?) European keyboard layouts including
|
||||||
|
dead key composition. This release includes changes from several
|
||||||
|
experimental versions (1.0.9, 1.0.11, 1.1.0, 1.1.1, 1.1.2, and
|
||||||
|
1.1.3).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Added non-ASCII support to win32 and X11
|
||||||
|
<li>Added dead key support to win32 and X11
|
||||||
|
<li>Fixed AltGr handling
|
||||||
|
<li>Added ctrl+alt+del simulation using ctrl+alt+pause
|
||||||
|
<li>Fixed loss of key event when user releases ctrl+alt+del
|
||||||
|
<li>Fixed incorrect synthesis of pointer-keys event on X11
|
||||||
|
<li>Fixed Xinerama support
|
||||||
|
<li>Made some clipboard fixes on win32 and X11
|
||||||
|
<li>Add tray icon menu item to copy log to clipboard
|
||||||
|
<li>Fixed mouse warping on unconnected client
|
||||||
|
<li>Stopped unconnected client from filling up event logs
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">May-10-2003</span> - Synergy 1.0.8 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed hook forwarding (fixing interaction with objectbar)
|
||||||
|
<li>Fixed "Windows" key handling and added support Win+E, Win+F, etc
|
||||||
|
<li>Added win 95/98/me support for Alt+Tab, Alt+Esc, Ctrl+Esc
|
||||||
|
<li>Fixed scroll lock locking to server screen
|
||||||
|
<li>Fixed screen flashing on X11 and Windows
|
||||||
|
<li>Fixed compile problem on 64 bit systems
|
||||||
|
<li>Fixed Xinerama support
|
||||||
|
<li>Now allowing screen names that include underscores
|
||||||
|
<li>Improved non-ASCII key handling on Windows
|
||||||
|
<li>Fixed lagginess
|
||||||
|
<li>Fixed failure to capture all mouse input on Windows
|
||||||
|
<li>Fixed auto-repeat bugs on X11
|
||||||
|
<li>Added option to disable screen saver synchronization
|
||||||
|
<li>Added support for 4th and 5th mouse buttons on Windows
|
||||||
|
<li>Added support for "Internet" and "Multimedia" keys
|
||||||
|
<li>Fixed jumping from client to itself (mouse wrapping)
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Mar-27-2003</span> - Synergy 1.0.6 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Added tray icon on win32
|
||||||
|
<li>Fixed multi-monitor support on win32
|
||||||
|
<li>Fixed win32 screen saver detection on NT/2k/XP
|
||||||
|
<li>Added per-screen options to remap modifier keys
|
||||||
|
<li>Added global options for restricting screen jumping
|
||||||
|
<li>Added global option for detecting unresponsive clients
|
||||||
|
<li>Added more logging for why screen jump won't happen
|
||||||
|
<li>Fixed problem sending the CLIPBOARD to motif/lesstif apps
|
||||||
|
<li>Win32 launcher now remembers non-config-file state
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Feb-18-2003</span> - Synergy 1.0.3 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Support for X11 keymaps with only uppercase letters
|
||||||
|
<li>Fixed memory leaks
|
||||||
|
<li>Added documentation on using synergy with SSH
|
||||||
|
<li>Fixed unnecessary left-handed mouse button swapping
|
||||||
|
<li>Fixed debug build error on win32
|
||||||
|
<li>Reduced frequency of large cursor jumps when leaving win32 server
|
||||||
|
<li>Changed cursor motion on win32 multimon to relative moves only
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Jan-25-2003</span> - Synergy 1.0.2 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed out-of-bounds array lookup in the BSD and Windows network code
|
||||||
|
<li>Added ability to set screen options from Windows launch dialog
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Jan-22-2003</span> - Synergy 1.0.1 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed running as a service on Windows NT family
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Jan-20-2003</span> - Synergy 1.0.0 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Refactored to centralize platform dependent code
|
||||||
|
<li>Added support for mouse wheel on Windows NT (SP3 and up)
|
||||||
|
<li>Portability improvements
|
||||||
|
<li>Added more documentation
|
||||||
|
<li>Fixes for working with xscreensaver
|
||||||
|
<li>Fixes for circular screen links
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This release has been tested on Linux and Windows. It builds and
|
||||||
|
is believed to run on Solaris and FreeBSD. It is believed to
|
||||||
|
build and run on Irix and AIX. It builds but does not work on
|
||||||
|
MacOS X.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<span class="date">Dec-25-2002</span> - Synergy 0.9.14 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed solaris compile problems (untested)
|
||||||
|
<li>Fixed irix compile problems (untested)
|
||||||
|
<li>Fixed windows client not reconnecting when server dies bug
|
||||||
|
<li>Fixed loss of ctrl+alt from windows server to non-windows clients
|
||||||
|
<li>Fixed handling of password protected windows client screen saver
|
||||||
|
<li>Now handling any number of pointer buttons on X11
|
||||||
|
<li>Toggle key states now restored when leaving clients
|
||||||
|
<li>Added support for per-screen config options
|
||||||
|
<li>Added config options for half-duplex toggle keys on X11
|
||||||
|
<li>Enabled class diagrams in doxygen documentation
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Nov-05-2002</span> - Synergy 0.9.13 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed solaris compile problems (untested)
|
||||||
|
<li>Fixed MacOS X compile problems (semi-functional)
|
||||||
|
<li>Fixed gcc-3.2 compile problems
|
||||||
|
<li>Fixed some thread startup and shutdown bugs
|
||||||
|
<li>Server now quits if bind() fails with an error other than in use
|
||||||
|
<li>Fixed bug in moving mouse on Win98 without multiple monitors
|
||||||
|
<li>Fixed bug in handling TCP socket errors on read and write
|
||||||
|
<li>Fixed spurious screen saver activation on X11
|
||||||
|
<li>Unix platforms can now read Win32 configuration files
|
||||||
|
<li>Minor error reporting fixes
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Sep-14-2002</span> - Synergy 0.9.12 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Made following changes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Win32 was not reporting log messages properly when run from synergy.exe
|
||||||
|
<li>Network error messages weren't reporting useful information
|
||||||
|
<li>Synergy won't build on gcc 3.2; added workaround for known problem
|
||||||
|
<li>X11 wasn't handling some keys/key combinations correctly
|
||||||
|
<li>Added option to change logging level when testing from synergy.exe
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Sep-04-2002</span> - Synergy 0.9.11 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Fixed following bugs:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Worked around missing SendInput() on windows 95/NT 4 prior to SP3
|
||||||
|
<li>Fixed keyboard mapping on X11 synergy client
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Sep-02-2002</span> - Synergy 0.9.10 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Fixed following bugs:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>The Pause/Break and KP_Enter buttons were not working correctly on windows
|
||||||
|
<li>Configuration options were being lost on windows after a reboot
|
||||||
|
<li>Added support for AltGr/ModeSwitch keys
|
||||||
|
<li>Added support for auto-start on windows when not administrator
|
||||||
|
<li>Improved autoconf
|
||||||
|
<li>Added workaround for lack of sstream header on g++ 2.95.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Aug-18-2002</span> - Synergy 0.9.9 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Fixed three bugs:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>The PrintScrn button was not working correctly on windows
|
||||||
|
<li>The Win32 server could hang when a client disconnected
|
||||||
|
<li>Using the mouse wheel could hang the X server
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<span class="date">Aug-11-2002</span> - Synergy 0.9.8 released
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Supports any number of clients under Linux or Windows 95 or NT4
|
||||||
|
or later. Includes mouse and keyboard sharing, clipboard
|
||||||
|
synchronization and screen saver synchronization. Supports ASCII
|
||||||
|
keystrokes, 5 button mouse with wheel, and Unicode text clipboard
|
||||||
|
format.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,361 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Guide to Running Synergy</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Running Synergy</h3>
|
||||||
|
<p>
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Step 1 - Choose a server</h4>
|
||||||
|
<p>
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Step 2 - Install the software</h4>
|
||||||
|
<p>
|
||||||
|
Second, you install the software. Choose the appropriate package
|
||||||
|
and install it. For example, on Windows you would run
|
||||||
|
<span class="code">SynergyInstaller</span>. You must install the
|
||||||
|
software on all the computers that will share the mouse and keyboard.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Step 3 - Configure and start the server</h4>
|
||||||
|
<p>
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Note that when you tell synergy that screen <span class="code">A</span>
|
||||||
|
is to the left of screen <span class="code">B</span> this does <b>not</b>
|
||||||
|
imply that <span class="code">B</span> is to the right of
|
||||||
|
<span class="code">A</span>. 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.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<b>Windows</b><br>
|
||||||
|
On Windows run synergy by double clicking on the
|
||||||
|
<span class="code">synergy</span> file. This brings up a dialog.
|
||||||
|
Configure the server:
|
||||||
|
<ul>
|
||||||
|
<li>Click the <span class="code">Server</span> radio button
|
||||||
|
<li>Click <span class="code">Add</span> to add the server to the
|
||||||
|
<span class="code">Screens</span> list
|
||||||
|
<ul>
|
||||||
|
<li>Enter the name of server (the computer's name is the recommended name)
|
||||||
|
<li>Optionally enter other names the server is known by
|
||||||
|
<li>Click <span class="code">OK</span>
|
||||||
|
</ul>
|
||||||
|
<li>Use <span class="code">Add</span> to add your other computers
|
||||||
|
<ul>
|
||||||
|
<li>Using a computer's name as its screen name is recommended
|
||||||
|
<li>Choose desired screen options on the <span class="code">Add</span> dialog
|
||||||
|
</ul>
|
||||||
|
<li>Use the controls under <span class="code">Layout</span> to link screens together
|
||||||
|
<ul>
|
||||||
|
<li>Click (once) on the server's name in the <span class="code">Screens</span> list
|
||||||
|
<li>Choose the screen to the left of the server; use <span class="code">---</span>
|
||||||
|
if there is no screen to the left of the server
|
||||||
|
<li>Choose the screens to the right, above and below the server
|
||||||
|
<li>Repeat the above steps for all the other screens
|
||||||
|
</ul>
|
||||||
|
<li>Use <span class="code">Options...</span> to set desired options
|
||||||
|
<li>If the server's screen name is not the server's computer name:
|
||||||
|
<ul>
|
||||||
|
<li>Click <span class="code">Advanced...</span>
|
||||||
|
<li>Enter the server's screen name next to
|
||||||
|
<span class="code">Screen Name</span>
|
||||||
|
<li>Click <span class="code">OK</span>
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Now click <span class="code">Test</span>. 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 <span class="code">Test</span> again.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<b>Unix or Mac OS X</b><br>
|
||||||
|
Create a text file named <span class="code">synergy.conf</span> with the
|
||||||
|
following:
|
||||||
|
<pre>
|
||||||
|
section: screens
|
||||||
|
<span class="arg">screen1</span>:
|
||||||
|
<span class="arg">screen2</span>:
|
||||||
|
end
|
||||||
|
section: links
|
||||||
|
<span class="arg">screen1</span>:
|
||||||
|
right = <span class="arg">screen2</span>
|
||||||
|
<span class="arg">screen2</span>:
|
||||||
|
left = <span class="arg">screen1</span>
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
Replace each occurrence of <span class="arg">screen1</span> with the host name
|
||||||
|
of the primary screen computer (as reported by the
|
||||||
|
<span class="code">hostname</span> program) and <span class="arg">screen2</span>
|
||||||
|
with the host name of a secondary screen computer. In the above example,
|
||||||
|
<span class="arg">screen2</span> is to the right of
|
||||||
|
<span class="arg">screen1</span> and <span class="arg">screen1</span> is to the
|
||||||
|
left of <span class="arg">screen2</span>. If necessary you should replace
|
||||||
|
<span class="code">right</span> and <span class="code">left</span> with
|
||||||
|
<span class="code">left</span>, <span class="code">right</span>,
|
||||||
|
<span class="code">up</span>, or <span class="code">down</span>. If you
|
||||||
|
have more than two computers you can add those too: add each computer's host
|
||||||
|
name in the <span class="code">screens</span> section and add the
|
||||||
|
appropriate links. See the <a href="configuration.html">configuration
|
||||||
|
guide</a> for more configuration possibilities.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
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 <span class="code">-f</span>
|
||||||
|
command line option.
|
||||||
|
<pre>
|
||||||
|
synergys -f --config synergy.conf
|
||||||
|
</pre>
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Step 4 - Start the clients</h4>
|
||||||
|
<p>
|
||||||
|
Next you start the client on each computer that will share the server's
|
||||||
|
keyboard and mouse.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<b>Windows</b><br>
|
||||||
|
On Windows run synergy by double clicking on the
|
||||||
|
<span class="code">synergy</span> file. This brings up a dialog.
|
||||||
|
Configure the client:
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Click the <span class="code">Client</span> radio button
|
||||||
|
<li>Enter the server's computer name in <span class="code">Server Host Name</span>
|
||||||
|
<ul>
|
||||||
|
<li>This is not the server's screen name, unless you made that the
|
||||||
|
server's host name as recommended
|
||||||
|
</ul>
|
||||||
|
<li>If the client's screen name is not the client's computer name:
|
||||||
|
<ul>
|
||||||
|
<li>Click <span class="code">Advanced...</span>
|
||||||
|
<li>Enter the client's screen name next to <span class="code">Screen Name</span>
|
||||||
|
<li>Click <span class="code">OK</span>
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Now click <span class="code">Test</span>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<b>Unix or Mac OS X</b><br>
|
||||||
|
To start a client, enter the following:
|
||||||
|
<pre>
|
||||||
|
synergyc -f <span class="arg">server-host-name</span>
|
||||||
|
</pre>
|
||||||
|
where <span class="arg">server-host-name</span> is replaced by the host
|
||||||
|
name of the computer running the synergy server.
|
||||||
|
</p>
|
||||||
|
<h4>Step 5 - Test</h4>
|
||||||
|
<p>
|
||||||
|
Clients should immediately report a successful connection or one or
|
||||||
|
more error messages. Here are the typical problems and possible
|
||||||
|
solutions:
|
||||||
|
<ul>
|
||||||
|
<li>failed to open screen (X11 only)
|
||||||
|
<p>
|
||||||
|
Check permission to open the X display;<br>
|
||||||
|
check that the DISPLAY environment variable is set.
|
||||||
|
</p>
|
||||||
|
<li>already connected
|
||||||
|
<p>
|
||||||
|
Check that the synergy client isn't already running.
|
||||||
|
</p>
|
||||||
|
<li>refused client
|
||||||
|
<p>
|
||||||
|
Add the client to the server's configuration file.
|
||||||
|
</p>
|
||||||
|
<li>connection failed
|
||||||
|
<p>
|
||||||
|
check that <span class="arg">server-host-name</span> is
|
||||||
|
correct;<br>the server cannot open the desired port, stop
|
||||||
|
the program using that port (24800) and restart the server.
|
||||||
|
</p>
|
||||||
|
</ul>
|
||||||
|
If you get the error "<span class="code">Xlib: No protocol specified</span>"
|
||||||
|
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
|
||||||
|
<nobr>"<span class="code">xhost +<span>"</nobr> to allow anyone to connect
|
||||||
|
to the display.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
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).
|
||||||
|
</p>
|
||||||
|
<h4>Step 6 - Run</h4>
|
||||||
|
<p>
|
||||||
|
Once everything works correctly, stop all the clients then the server.
|
||||||
|
Then start the server with the <span class="code">Start</span> button
|
||||||
|
on Windows and without the <span class="code">-f</span> option on Unix
|
||||||
|
and Mac OS X. Finally start the clients similarly.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
You can also configure synergy to start automatically when your computer
|
||||||
|
starts or when you log in. See the <a href="autostart.html">autostart
|
||||||
|
guide</a> for more information.
|
||||||
|
</p>
|
||||||
|
<h4><a name="options"></a>Command Line Options Guide</h4>
|
||||||
|
<p>
|
||||||
|
<b><a name="commonOptions"></a>Common Command Line Options</b><br>
|
||||||
|
The following options are supported by <span class="code">synergys</span>
|
||||||
|
and <span class="code">synergyc</span>.
|
||||||
|
</p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code">-d,</span></td>
|
||||||
|
<td><span class="code">--debug <span class="arg">level</span></span></td>
|
||||||
|
<td> </td><td>use debugging level <span class="arg">level</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code"></span></td>
|
||||||
|
<td><span class="code">--daemon</span></td>
|
||||||
|
<td></td><td>run as a daemon (Unix) or background (Windows)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code">-f,</span></td>
|
||||||
|
<td><span class="code">--no-daemon</span></td>
|
||||||
|
<td></td><td>run in the foreground</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code">-n,</span></td>
|
||||||
|
<td><span class="code">--name <span class="arg">name</span></span></td>
|
||||||
|
<td></td><td>use <span class="arg">name</span> instead of the hostname</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code"></span></td>
|
||||||
|
<td><span class="code">--restart</span></td>
|
||||||
|
<td></td><td>automatically restart on failures</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code">-1,</span></td>
|
||||||
|
<td><span class="code">--no-restart</span></td>
|
||||||
|
<td></td><td>do not restart on failure</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code">-h,</span></td>
|
||||||
|
<td><span class="code">--help</span></td>
|
||||||
|
<td></td><td>print help and exit</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code"></span></td>
|
||||||
|
<td><span class="code">--version</span></td>
|
||||||
|
<td></td><td>print version information and exit</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
Debug levels are from highest to lowest: <span class="code">FATAL</span>,
|
||||||
|
<span class="code">ERROR</span>, <span class="code">WARNING</span>,
|
||||||
|
<span class="code">NOTE</span>, <span class="code">INFO</span>,
|
||||||
|
<span class="code">DEBUG</span>, <span class="code">DEBUG1</span>, and
|
||||||
|
<span class="code">DEBUG2</span>. 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.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The <span class="code">--name</span> option lets the client or server
|
||||||
|
use a name other than its hostname for its screen. This name is used
|
||||||
|
when checking the configuration.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
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).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<b>Server Command Line Options</b><br>
|
||||||
|
<p>
|
||||||
|
<pre>
|
||||||
|
synergys [options]
|
||||||
|
</pre>
|
||||||
|
The server accepts the <a href="#commonOptions">common options</a> and:
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code">-a,</span></td>
|
||||||
|
<td><span class="code">--address <span class="arg">address</span></span></td>
|
||||||
|
<td> </td><td>listen for connections on address <span class="arg">address</span></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code">-c,</span></td>
|
||||||
|
<td><span class="code">--config <span class="arg">pathname</span></span></td>
|
||||||
|
<td> </td><td>read configuration from <span class="arg">pathname</span></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span class="arg">address</span> has one of the following forms:
|
||||||
|
<pre>
|
||||||
|
<span class="arg">hostname</span>
|
||||||
|
:<span class="arg">port</span>
|
||||||
|
<span class="arg">hostname</span>:<span class="arg">port</span>
|
||||||
|
</pre>
|
||||||
|
<span class="arg">hostname</span> is a hostname or IP address of a network
|
||||||
|
interface on the server system (e.g. <span class="code">somehost</span>
|
||||||
|
or <span class="code">192.168.1.100</span>). <span class="arg">port</span>
|
||||||
|
is a port number from 1 to 65535. <span class="arg">hostname</span> defaults to
|
||||||
|
the system's hostname and <span class="arg">port</span> defaults to 24800.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<b>Client Command Line Options</b><br>
|
||||||
|
<p>
|
||||||
|
<pre>
|
||||||
|
synergyc [options] <span class="arg">address</span>[:<span class="arg">port</span>]
|
||||||
|
</pre>
|
||||||
|
<span class="arg">address</span> is the hostname or IP address of
|
||||||
|
the server and <span class="arg">port</span> is the optional network
|
||||||
|
port on the server to connect to. The client accepts the
|
||||||
|
<a href="#commonOptions">common options</a> and:
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code"> </span></td>
|
||||||
|
<td><span class="code">--camp</span></td>
|
||||||
|
<td> </td><td>retry connection to server until successful</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td> </td><td><span class="code"> </span></td>
|
||||||
|
<td><span class="code">--no-camp</span></td>
|
||||||
|
<td> </td><td>try connection to server only once</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,56 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Synergy Security Guide</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Authentication and Encryption</h3>
|
||||||
|
<p>
|
||||||
|
Synergy does not do any authentication or encryption. Any computer
|
||||||
|
can connect to the synergy server if it provides a screen name known
|
||||||
|
to the server, and all data is transferred between the server and the
|
||||||
|
clients unencrypted which means that anyone can, say, extract the
|
||||||
|
key presses used to type a password. Therefore, synergy should not
|
||||||
|
be used on untrusted networks.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
However, there are tools that can add authentication and encryption
|
||||||
|
to synergy without modifying either those tools or synergy. One
|
||||||
|
such tool is SSH (which stands for secure shell). A free implementation
|
||||||
|
of SSH is called <a href="http://www.openssh.com/">OpenSSH</a> and runs
|
||||||
|
on Linux, many Unixes, and Windows (in combination with
|
||||||
|
<a href="http://www.cygwin.com/">Cygwin</a>).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Configuring the Server</h3>
|
||||||
|
<p>
|
||||||
|
Install the OpenSSH server on the same computer as the synergy server.
|
||||||
|
Configure the OpenSSH server as usual (synergy doesn't demand any
|
||||||
|
special options in OpenSSH) and start it. Start the synergy server as
|
||||||
|
usual; the synergy server requires no special options to work with
|
||||||
|
OpenSSH.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Configuring the Clients</h3>
|
||||||
|
<p>
|
||||||
|
Install the OpenSSH client on each synergy client computer. Then, on
|
||||||
|
each client, start the OpenSSH client using port forwarding:
|
||||||
|
<pre>
|
||||||
|
ssh -f -N -L 24800:<span class="arg">server-hostname</span>:24800 <span class="arg">server-hostname</span>
|
||||||
|
</pre>
|
||||||
|
The <span class="arg">server-hostname</span> is the name or address
|
||||||
|
of the computer with the OpenSSH and synergy servers.
|
||||||
|
The 24800 is the default network port used by synergy; if you use
|
||||||
|
a different port then replace both instances of 24800 with the port
|
||||||
|
number that you use. Finally, start the synergy client normally
|
||||||
|
except use <span class="code">localhost</span> as the server host
|
||||||
|
name. For example:
|
||||||
|
<pre>
|
||||||
|
synergyc -f localhost
|
||||||
|
</pre>
|
||||||
|
Synergy will then run normally except all communication is passed
|
||||||
|
through OpenSSH which decrypts/encrypts it on behalf of synergy.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,133 @@
|
||||||
|
body {
|
||||||
|
font-family: arial, helvetica, sans-serif;
|
||||||
|
font-size: small;
|
||||||
|
font-weight: normal;
|
||||||
|
margin-left: 0in;
|
||||||
|
margin-right: 0in;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* show underline on light blue links only on hover */
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #6699ff;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* heading */
|
||||||
|
h3 {
|
||||||
|
display: block;
|
||||||
|
margin-top: 0em;
|
||||||
|
margin-bottom: 1.25em;
|
||||||
|
font-weight: bold;
|
||||||
|
font-variant: small-caps;
|
||||||
|
font-size: 125%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* subheading */
|
||||||
|
h4 {
|
||||||
|
display: block;
|
||||||
|
margin-top: 0em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
font-weight: bold;
|
||||||
|
font-variant: small-caps;
|
||||||
|
font-size: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* emphasis */
|
||||||
|
b {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* formatted code */
|
||||||
|
pre {
|
||||||
|
display: block;
|
||||||
|
white-space: pre;
|
||||||
|
font-family: courier;
|
||||||
|
font-size: 87.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner {
|
||||||
|
font-weight: normal;
|
||||||
|
font-variant: small-caps;
|
||||||
|
font-size: 400%;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0px 0px 0px 5px;
|
||||||
|
border-bottom: solid #6699ff 1px;
|
||||||
|
}
|
||||||
|
.banner a {
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
.banner a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav {
|
||||||
|
font-size: x-small;
|
||||||
|
font-weight: normal;
|
||||||
|
background-color: #d4d4d4;
|
||||||
|
|
||||||
|
padding: 2px 0px 2px 0px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
.nav a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
.nav td {
|
||||||
|
padding-right: 20px;
|
||||||
|
padding-left: 5px;
|
||||||
|
text-indent: 1em;
|
||||||
|
}
|
||||||
|
.nav .section {
|
||||||
|
width: 100%;
|
||||||
|
text-indent: 0em;
|
||||||
|
border-top: 0px;
|
||||||
|
border-left: 0px;
|
||||||
|
border-right: 0px;
|
||||||
|
border-bottom: solid #aaaaaa 1px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #777777;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main {
|
||||||
|
font-size: small;
|
||||||
|
font-weight: normal;
|
||||||
|
margin-left: 0.1in;
|
||||||
|
margin-right: 0.25in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main table {
|
||||||
|
font-size: small;
|
||||||
|
font-weight: normal;
|
||||||
|
margin-left: 0.1in;
|
||||||
|
margin-right: 0.25in;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.arg {
|
||||||
|
font-style: italic;
|
||||||
|
font-family: courier;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code {
|
||||||
|
font-family: courier;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code table {
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fakelink {
|
||||||
|
color: #6699ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hide {
|
||||||
|
display:none
|
||||||
|
}
|
|
@ -0,0 +1,93 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Synergy Tips and Tricks</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Tips and Tricks</h3>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<p>
|
||||||
|
Be aware that not all keystrokes can be handled by synergy. In
|
||||||
|
particular, ctrl+alt+del is not handled. However, synergy can
|
||||||
|
convert ctrl+alt+pause into ctrl+alt+del on the client side.
|
||||||
|
(Synergy must be installed as a service on the client for this to
|
||||||
|
work on the Windows NT family.) Some non-standard keys may not
|
||||||
|
work, especially "multimedia" buttons, though several are
|
||||||
|
correctly handled.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<p>
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<p>
|
||||||
|
You cannot switch screens when the Scroll Lock is toggled on. Use
|
||||||
|
this to prevent unintentional switching.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<p>
|
||||||
|
Turn off mouse driven virtual desktop switching on X windows. It
|
||||||
|
will interfere with synergy. Use keyboard shortcuts instead.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<p>
|
||||||
|
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 <span class="code">-mit-extension</span>,
|
||||||
|
<span class="code">-sgi-extension</span>, or
|
||||||
|
<span class="code">-xidle-extension</span>
|
||||||
|
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 <span class="code">.xscreensaver</span> file.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<p>
|
||||||
|
Synergy automatically converts newlines in clipboard text (Unix
|
||||||
|
expects <span class="code">\n</span> to end each line while Windows
|
||||||
|
expects <span class="code">\r\n</span>).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<p>
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<p>
|
||||||
|
A client's keyboard and mouse are fully functional while synergy is
|
||||||
|
running. You can use them in case synergy locks up.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<p>
|
||||||
|
Strong authentication and encryption is available by using SSH. See
|
||||||
|
the <a href="security.html">security guide</a> for more information.
|
||||||
|
Synergy does not otherwise provide secure communications and it should
|
||||||
|
not be used on or over untrusted networks.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<p>
|
||||||
|
Synergy doesn't work if a 16-bit Windows application has the focus
|
||||||
|
on Windows 95/98/Me. This is due to limitations of Windows. One
|
||||||
|
commonly used 16-bit application is the command prompt
|
||||||
|
(<span class="code">command.exe</span>)
|
||||||
|
and this includes synergy's log window when running in test mode.
|
||||||
|
</p>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,70 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||||
|
<title>Synergy To Do List</title>
|
||||||
|
</head>
|
||||||
|
<body class="main">
|
||||||
|
<h3>Synergy To Do List</h3>
|
||||||
|
<p>
|
||||||
|
This page describes the planned development of Synergy. There are
|
||||||
|
no dates or deadlines. Instead, you'll find the features to come
|
||||||
|
and the rough order they can be expected to arrive.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Short term</h4>
|
||||||
|
<p>
|
||||||
|
Synergy should work seamlessly. When it works correctly, it works
|
||||||
|
transparently so you don't even think about it. When it breaks,
|
||||||
|
you're forced out of the illusion of a unified desktop. The first
|
||||||
|
priority is fixing those bugs that break the illusion.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Some of these bugs are pretty minor and some people would rather
|
||||||
|
have new features first. But I'd rather fix the current
|
||||||
|
foundation before building on it. That's not to say features
|
||||||
|
won't get added until after bug fixes; sometimes it's just too
|
||||||
|
tempting to code up a feature.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Medium term</h4>
|
||||||
|
<p>
|
||||||
|
Some features fit well into Synergy's current design and may simply
|
||||||
|
enhance it's current capabilities.
|
||||||
|
<ul>
|
||||||
|
<li>Configurable hot key screen switching
|
||||||
|
<li>Configurable hot key to lock to a screen
|
||||||
|
<li>Configurable hot key to pop up a screen switch menu
|
||||||
|
<li>Configure screen saver synchronization on or off
|
||||||
|
<li>Graphical interface configuration and control on all platforms
|
||||||
|
<li>Graphical status feedback on all platforms
|
||||||
|
<li>More supported clipboard formats (particularly rich text)
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Long term</h4>
|
||||||
|
<p>
|
||||||
|
Two features stand out as long term goals:
|
||||||
|
<ul>
|
||||||
|
<li>Support <span class="arg">N</span> computers on
|
||||||
|
<span class="arg">M</span> monitors
|
||||||
|
<li>Drag and drop across computers
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The first feature means sharing a monitor or monitors the way the
|
||||||
|
keyboard and mouse are shared. With this, Synergy would be a full
|
||||||
|
KVM solution. Not only would it support a few computers sharing
|
||||||
|
one screen (still using the mouse to roll from one screen to
|
||||||
|
another), but it should also support dozens of computers to provide
|
||||||
|
a solution for server farm administrators. In this capacity, it
|
||||||
|
may need to support text (as opposed to bitmap graphics) screens.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The second feature would enhance the unified desktop illusion. It
|
||||||
|
would make it possible to drag a file and possibly other objects
|
||||||
|
to another screen. The object would be copied (or moved). I expect
|
||||||
|
this to be a very tricky feature.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue