mirror of
https://github.com/debauchee/barrier.git
synced 2026-05-05 16:05:21 +08:00
merged legacy into master
This commit is contained in:
49
doc/Makefile.am
Normal file
49
doc/Makefile.am
Normal file
@@ -0,0 +1,49 @@
|
||||
# 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 \
|
||||
about.html \
|
||||
authors.html \
|
||||
autostart.html \
|
||||
banner.html \
|
||||
border.html \
|
||||
compiling.html \
|
||||
configuration.html \
|
||||
contact.html \
|
||||
developer.html \
|
||||
faq.html \
|
||||
history.html \
|
||||
home.html \
|
||||
index.html \
|
||||
license.html \
|
||||
news.html \
|
||||
roadmap.html \
|
||||
running.html \
|
||||
security.html \
|
||||
tips.html \
|
||||
toc.html \
|
||||
trouble.html \
|
||||
images/logo.gif \
|
||||
images/warp.gif \
|
||||
$(NULL)
|
||||
|
||||
MAINTAINERCLEANFILES = \
|
||||
Makefile.in \
|
||||
doc/doxygen.cfg \
|
||||
doc/doxygen/html/* \
|
||||
$(NULL)
|
||||
419
doc/PORTING
Normal file
419
doc/PORTING
Normal file
@@ -0,0 +1,419 @@
|
||||
Synergy Developer and Porting Guide
|
||||
===================================
|
||||
|
||||
This document is under development.
|
||||
|
||||
Code Organization
|
||||
-----------------
|
||||
|
||||
The synergy source code organization is:
|
||||
|
||||
. -- root makefiles, some standard documentation
|
||||
cmd -- program source code
|
||||
launcher -- synergy launcher for Windows
|
||||
synergyc -- synergy client
|
||||
synergys -- synergy server
|
||||
config -- stuff for autoconf/automake
|
||||
dist -- files for creating distributions
|
||||
nullsoft -- files for creating Nullsoft NSIS installer (Windows)
|
||||
rpm -- files for creating RPMs
|
||||
doc -- placeholder for documentation
|
||||
examples -- example files
|
||||
lib -- library source code
|
||||
arch -- platform dependent utility library
|
||||
base -- simple utilities
|
||||
client -- synergy client library
|
||||
common -- commonly needed header files
|
||||
io -- I/O
|
||||
mt -- multithreading
|
||||
net -- networking
|
||||
platform -- platform dependent display/window/event stuff
|
||||
server -- synergy server library
|
||||
synergy -- synergy shared client/server code library
|
||||
|
||||
Note how the utility code required by the programs is placed into
|
||||
separate library directories. This makes the makefiles a little
|
||||
more awkward but makes for a cleaner organization. The top level
|
||||
directory has only the standard documentation files and the files
|
||||
necessary to configure and build the rest of the project.
|
||||
|
||||
|
||||
Coding Style Guide
|
||||
------------------
|
||||
|
||||
Synergy uses many coding conventions. Contributed code should
|
||||
following these guidelines.
|
||||
|
||||
- Symbol Naming
|
||||
Names always begin with a letter (never an underscore). The first
|
||||
letter of interior names are always capitalized. Acronyms should
|
||||
be all uppercase. For example: myTextAsASCII.
|
||||
|
||||
Names come it two flavors: leading capital and leading lowercase.
|
||||
The former have the first character capitalized and the latter
|
||||
don't. In the following table, leading capital names are indicated
|
||||
by `Name' and leading lowercase names by `name'.
|
||||
|
||||
The naming convention for various things are:
|
||||
|
||||
* Exceptions -- X + Name XMyException
|
||||
* Interfaces -- I + Name IMyInterface
|
||||
* Template Classes -- T + Name TMyTemplate<>
|
||||
* Other Classes -- C + Name CMyClass
|
||||
* Enumerations -- E + Name EMyEnumeration
|
||||
* Constants -- k + Name kMyConstant
|
||||
* Data Members -- m_ + name m_myDataMember
|
||||
* Methods -- name myMethod
|
||||
* Functions -- name myFunction
|
||||
* Variables -- name myVariable
|
||||
|
||||
Exceptions are types that get thrown and are generally derived
|
||||
(possibly indirectly) from XBase. Interfaces are derived (possibly
|
||||
indirectly) from IInterface and have only pure virtual functions.
|
||||
Other classes are classes that aren't exceptions or interfaces.
|
||||
Constants include global constants and enumerants.
|
||||
|
||||
Method names should usually have the form `verbObject'. For example:
|
||||
* isGameOn()
|
||||
* getBeer()
|
||||
* pressPowerButton()
|
||||
* setChannel()
|
||||
In general, use `get' and `set' to read and write state but use `is'
|
||||
to read boolean state. Note that classes that contain only `is',
|
||||
`get', and `set' are probably plain old data; you might want to
|
||||
consider using public data members only or, better, refactor your
|
||||
design to have classes that actually do something more than just
|
||||
hold data.
|
||||
|
||||
- File Naming
|
||||
Each class should have one source and one header file. If the
|
||||
class is named `CMyClass' then the source file should be named
|
||||
`CMyClass.cpp' and the header file `CMyClass.h'.
|
||||
|
||||
Headers files not containing a class should have some meaningful
|
||||
name with a leading capital (e.g. `Version.h').
|
||||
|
||||
Source files without a header file have a leading lowercase name.
|
||||
Only files containing the entry point for an application should
|
||||
lack a header file.
|
||||
|
||||
- Dependencies
|
||||
* No circular library dependencies
|
||||
Library dependencies form an acyclic graph. Conceptually
|
||||
libraries can be arranged in layers where each library only
|
||||
references libraries in layers below it, not in the same layer
|
||||
or layers above it. The makefiles build the lowest layer
|
||||
libraries first and work upwards.
|
||||
|
||||
* Avoid circular uses-a relationships
|
||||
When possible, design classes with one-way uses-a relationships
|
||||
and avoid cycles. This makes it easier to understand the code.
|
||||
However, sometimes it's not always practical so it is permitted.
|
||||
|
||||
* Included files in headers
|
||||
Headers should #include only the necessary headers. In
|
||||
particular, if a class is referenced in a header file only as a
|
||||
pointer or a reference then use `class COtherClass;' instead of
|
||||
`#include "COtherClass.h".'
|
||||
|
||||
* #include syntax
|
||||
Non-synergy header files must be included using angle brackets
|
||||
while synergy header files must be included using double quotes.
|
||||
#include "CSynergyHeader.h"
|
||||
#include <systemheader.h>
|
||||
The file name in a #include must not be a relative path unless
|
||||
it's a system header file and it's customary to use a relative
|
||||
path, e.g. `#include <sys/types.h>'. Use compiler options to
|
||||
add necessary directories to the include search path.
|
||||
|
||||
* Included file ordering
|
||||
Files should be included in the following order:
|
||||
* Header for source file
|
||||
The first include for CMyClass.cpp must be CMyClass.h.
|
||||
* Other headers in directory, sorted alphabetically
|
||||
* Headers for each library, sorted alphabetically per library
|
||||
Include headers from the library closest in the dependency graph
|
||||
first, then the next farthest, etc. Sort alphabetically within
|
||||
each library.
|
||||
* System headers
|
||||
|
||||
- C++
|
||||
* C++ features
|
||||
Synergy uses the following more recent C++ features:
|
||||
* bool
|
||||
* templates
|
||||
* exceptions
|
||||
* mutable
|
||||
* new scoping rules
|
||||
* the standard C++ library
|
||||
|
||||
Do not use the following C++ features:
|
||||
* dynamic_cast
|
||||
* run time type information
|
||||
* namespaces and using (use std:: where necessary)
|
||||
|
||||
The new scoping rules say that the scope of a variable declared
|
||||
in a for statement is limited to the for loop. For example:
|
||||
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
// i is in scope here
|
||||
}
|
||||
// i is not in scope here
|
||||
|
||||
for (int i = -10; i < 0; ++i) {
|
||||
// an entirely new i is in scope here
|
||||
}
|
||||
// i is not in scope here
|
||||
|
||||
This is used routinely in synergy, but only in for loops. There
|
||||
is a macro for `for' in lib/base/common.h when building under
|
||||
Microsoft Visual C++ that works around the fact that that compiler
|
||||
doesn't follow the new scoping rules. Use the macro if your
|
||||
compiler uses the old scoping rules.
|
||||
|
||||
* Standard C++ library
|
||||
The standard C++ library containers should always be used in favor
|
||||
of custom containers wherever reasonable. std::string is used
|
||||
throughout synergy but only as the CString typedef; always use
|
||||
CString, never std::string except in the arch library. Synergy
|
||||
avoids using auto_ptr due to some portability problems. Synergy
|
||||
makes limited use of standard algorithms and streams but they can
|
||||
be freely used in new code.
|
||||
|
||||
* Limited multiple inheritance
|
||||
Classes should inherit implementation from at most one superclass.
|
||||
Inheriting implementation from multiple classes can have unpleasant
|
||||
consequences in C++ due to it's limited capabilities. Classes can
|
||||
inherit from any number of interface classes. An interface class
|
||||
provides only pure virtual methods. Synergy breaks this rule in
|
||||
IInterface which implements the virtual destructor for convenience.
|
||||
|
||||
* No globals
|
||||
Avoid global variables. All global variables must be static, making
|
||||
it visible only with its source file. Most uses of global variables
|
||||
are better served by static data members of a class. Global
|
||||
constants are permitted in some circumstances.
|
||||
|
||||
Also avoid global functions. Use public static member functions in
|
||||
a class instead.
|
||||
|
||||
These rules are violated by the main source file for each program
|
||||
(except that the globals are still static). They could easily be
|
||||
rewritten to put all the variables and functions into a class but
|
||||
there's little to be gained by that.
|
||||
|
||||
* Private data only
|
||||
If a class is plain-old-data (i.e. it has no methods) all of its
|
||||
data members should be public. Otherwise all of its data members
|
||||
should be private, not public or protected. This makes it much
|
||||
easier to track the use of a member when reading code. Protected
|
||||
data is not allowed because `protected' is a synonym for `public
|
||||
to my subclasses' and public data is a Bad Thing. While it might
|
||||
seem okay in this limited situation, the situation is not at all
|
||||
limited since an arbitrary number of classes can be derived,
|
||||
directly or indirectly, from the class and any of those classes
|
||||
have full access to the protected data.
|
||||
|
||||
* Plain old data
|
||||
A class that merely contains data and doesn't perform operations
|
||||
on that data (other than reads and writes) is plain old data (POD).
|
||||
POD should have only public data members and non-copy constructors.
|
||||
It must not have any methods other than constructors, not even a
|
||||
destructor or assignment operators, nor protected or private data.
|
||||
Note that this definition of POD is not the definition used in the
|
||||
C++ standard, which limits the contained data types to types that
|
||||
have no constructors, destructors, or methods.
|
||||
|
||||
* Avoid using friend
|
||||
Avoid declaring friend functions or classes. They're sometimes
|
||||
necessary for operator overloading. If you find it necessary to
|
||||
add friends to some class C, consider creating a utility class U.
|
||||
A utility class is declared as the only friend of C and provides
|
||||
only static methods. Each method forwards to a private method on
|
||||
an object of C type (passed as a parameter to the U's method).
|
||||
This makes maintenance easier since only U has friend access to C
|
||||
and finding any call to U is trivial (they're prefixed by U::).
|
||||
|
||||
* Don't test for NULL when using `delete' or `delete[]'
|
||||
It's unnecessary since delete does it anyway.
|
||||
|
||||
- Makefiles
|
||||
Automake's makefiles (named Makefile.am) have a few requirements:
|
||||
* Define the following macro at the top of the file:
|
||||
NULL =
|
||||
* Lists should have one item per line and end in $(NULL). For
|
||||
example:
|
||||
EXTRA_DIST = \
|
||||
kiwi.txt \
|
||||
mango.cpp \
|
||||
papaya.h \
|
||||
$(NULL)
|
||||
Indentation must use tabs in a makefile. Line continuations
|
||||
(backslashes) should be aligned using tabs.
|
||||
* Lists of files should be sorted alphabetically in groups (e..g
|
||||
source files, header files, then other files). Lists of
|
||||
subdirectories must be in the desired build order.
|
||||
|
||||
- Source Formatting
|
||||
Every project has its own formatting style and no style satisfies
|
||||
everyone. New code should be consistent with existing code:
|
||||
|
||||
* All files should include the copyright and license notice
|
||||
* Use tabs to indent
|
||||
* Tabs are 4 columns
|
||||
* Lines should not extend past the 80th column
|
||||
* Open braces ({) go on same line as introducing statement
|
||||
`for (i = 0; i < 10; ++i) {' not
|
||||
for (i = 0; i < 10; ++i)
|
||||
{
|
||||
* Close braces line up with introducing statement
|
||||
* Open brace for function is on a line by itself in first column
|
||||
* Close brace for function lines up with open brace
|
||||
* Always use braces on: if, else, for, while, do, switch
|
||||
* `else {' goes on its own line
|
||||
* Always explicitly test pointers against NULL
|
||||
e.g. `if (ptr == NULL)' not `if (ptr)'
|
||||
* Always explicitly test integral values against 0
|
||||
e.g. `if (i == 0)' not `if (i)'
|
||||
* Put spaces around binary operators and after statements
|
||||
e.g. `if (a == b) {' not `if(a==b){'
|
||||
* C'tor initializers are one per line, indented one tab stop
|
||||
* Other indentation should follow existing practice
|
||||
* Use Qt style comments for extraction by doxygen (i.e. //! and /*!)
|
||||
* Mark incomplete or buggy code with `FIXME'
|
||||
|
||||
- Other
|
||||
* calls to LOG() should always be all on one line (even past column 80)
|
||||
|
||||
|
||||
Class Relationships
|
||||
-------------------
|
||||
|
||||
The doxygen documentation can help in understanding the relationships
|
||||
between objects. Use `make doxygen' in the top level directory to
|
||||
create the doxygen documentation into doc/doxygen/html. You must have
|
||||
doxygen installed, of course.
|
||||
|
||||
FIXME -- high level overview of class relationships
|
||||
|
||||
|
||||
Portability
|
||||
-----------
|
||||
|
||||
Synergy is mostly platform independent code but necessarily has
|
||||
platform dependent parts. The mundane platform dependent parts
|
||||
come from the usual suspects: networking, multithreading, file
|
||||
system, high resolution clocks, system logging, etc. Porting
|
||||
these parts is relatively straightforward.
|
||||
|
||||
Synergy also has more esoteric platform dependent code. The
|
||||
functions for low-level event interception and insertion,
|
||||
warping the cursor position, character to keyboard event
|
||||
translation, clipboard manipulation, and screen saver control
|
||||
are often obscure and poorly documented. Unfortunately, these
|
||||
are exactly the functions synergy requires to do its magic.
|
||||
|
||||
Porting synergy to a new platform requires the following steps:
|
||||
|
||||
- Setting up the build
|
||||
- Adjusting lib/common/common.h
|
||||
- Implementing lib/arch
|
||||
- Implementing lib/platform
|
||||
- Tweaks
|
||||
|
||||
Setting up the build:
|
||||
|
||||
The first phase is simply to create the files necessary to build the
|
||||
other files. On Unix, synergy uses autoconf/automake which produces
|
||||
a `configure' script that generates makefiles. On Windows, synergy
|
||||
uses Visual C++ workspace and project files. If you're porting to
|
||||
another Unix variant, you may need to adjust `configure.in',
|
||||
`acinclude.m4', and Unix flavor dependent code in lib/arch. Note
|
||||
especially the SYSAPI_* and WINAPI_* macro definitions in
|
||||
ARCH_CFLAGS. Exactly one of each must be defined. It should also
|
||||
add AM_CONDITIONALs if a new SYSAPI_* or WINAPI_* was added.
|
||||
|
||||
Adjusting lib/common/common.h:
|
||||
|
||||
The lib/common/common.h header file is included directly or indirectly
|
||||
by every other file. Its primary job is to include config.h, which
|
||||
defines macros depending on what the 'configure' script discovered
|
||||
about the system. If the platform does not use the 'configure' script
|
||||
it must define the appropriate SYSAPI_* and WINAPI_* macro. It may
|
||||
also do other platform specific setup.
|
||||
|
||||
Adjusting lib/common/BasicTypes.h:
|
||||
|
||||
No changes should be necessary in BasicTypes.h. However, if the
|
||||
platform's system header files define SInt8, et al. you may need
|
||||
to adjust the typedefs to match the system's definitions.
|
||||
|
||||
Implementing lib/arch:
|
||||
|
||||
Much platform dependent code lives in lib/arch. There are several
|
||||
interface classes there and they must all be implemented for each
|
||||
platform. See the interface header files for more information.
|
||||
|
||||
Platforms requiring special functions should create a class named
|
||||
CArchMiscXXX where XXX is the platform name. The class should have
|
||||
only static methods. Clients can include the appropriate header
|
||||
file and make calls directly, surrounded by a suitable #ifdef/#endif.
|
||||
|
||||
If using automake, the Makefile.am should list the system specific
|
||||
files in a XXX_SOURCE_FILES macro where XXX matches the appropriate
|
||||
AM_CONDITIONAL symbol. XXX_SOURCE_FILES must be added to EXTRA_DIST
|
||||
and the following added above the INCLUDES macro:
|
||||
|
||||
if XXX
|
||||
libarch_a_SOURCES = \
|
||||
$(COMMON_SOURCE_FILES) \
|
||||
$(XXX_SOURCE_FILES) \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
Implementing lib/platform:
|
||||
|
||||
Most of the remaining platform dependent code lives in lib/platform.
|
||||
The code there implements platform dependent window, clipboard, keyboard
|
||||
and screen saver handling. If a platform is named XXX then the following
|
||||
classes should be derived and implemented:
|
||||
|
||||
* CXXXClipboard : IClipboard
|
||||
Provides clipboard operations. Typically, this class will
|
||||
have helper classes for converting between various clipboard
|
||||
data formats.
|
||||
|
||||
* CXXXEventQueueBuffer : IEventQueueBuffer
|
||||
Provides operations for waiting for, posting and retrieving events.
|
||||
Also provides operations for creating and deleting timers.
|
||||
|
||||
* CXXXKeyState : CKeyState
|
||||
Provides operations for synthesizing key events and for mapping a
|
||||
key ID to a sequence of events to generate that key.
|
||||
|
||||
* CXXXScreen : IScreen, IPrimaryScreen, ISecondaryScreen, IPlatformScreen
|
||||
Provides screen operations.
|
||||
|
||||
* CXXXScreenSaver : IScreenSaver
|
||||
Provides screen saver operations.
|
||||
|
||||
If using automake, the Makefile.am should list the window system
|
||||
specific files in a XXX_SOURCE_FILES macro where XXX matches the
|
||||
appropriate AM_CONDITIONAL symbol. XXX_SOURCE_FILES must be added
|
||||
to EXTRA_DIST and the following added above the INCLUDES macro:
|
||||
|
||||
if XXX
|
||||
libplatform_a_SOURCES = $(XXX_SOURCE_FILES)
|
||||
endif
|
||||
|
||||
Tweaks:
|
||||
|
||||
Finally, each platform typically requires various adjustments here
|
||||
and there. In particular, synergyc.cpp and synergys.cpp usually
|
||||
require platform dependent code for the main entry point, parsing
|
||||
arguments, and reporting errors. Also, some platforms may benefit
|
||||
from a graphical user interface front end. These are generally
|
||||
not portable and synergy doesn't provide any infrastructure for
|
||||
the code common to any platform, though it may do so someday.
|
||||
There is, however, an implementation of a GUI front end for Windows
|
||||
that serves as an example.
|
||||
55
doc/about.html
Normal file
55
doc/about.html
Normal file
@@ -0,0 +1,55 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>About Synergy</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
With synergy, all the computers on your desktop form a single virtual
|
||||
screen. You use the mouse and keyboard of only one of the computers
|
||||
while you use all of the monitors on all of the computers.
|
||||
You tell synergy how many screens you have and their positions relative
|
||||
to one another. Synergy then detects when the mouse moves off
|
||||
the edge of a screen and jumps it instantly to the neighboring screen.
|
||||
The keyboard works normally on each screen; input goes to whichever
|
||||
screen has the cursor.
|
||||
</p><p>
|
||||
In this example, the user is moving the mouse from left to right.
|
||||
When the cursor reaches the right edge of the left screen it jumps
|
||||
instantly to the left edge of the right screen.
|
||||
</p><p>
|
||||
<center><img src="images/warp.gif"></center>
|
||||
</p><p>
|
||||
You can arrange screens side-by-side, above and below one another,
|
||||
or any combination. You can even have a screen jump to the opposite
|
||||
edge of itself. Synergy also understands multiple screens attached
|
||||
to the same computer.
|
||||
</p><p>
|
||||
Running a game and don't want synergy to jump screens? No problem.
|
||||
Just toggle Scroll Lock. Synergy keeps the cursor on the same screen
|
||||
when Scroll Lock is on. (This can be configured to another hot key.)
|
||||
</p><p>
|
||||
Do you wish you could cut and paste between computers? Now you can!
|
||||
Just copy text, HTML, or an image as you normally would on one screen
|
||||
then switch to another screen and paste it. It's as if all your
|
||||
computers shared a single clipboard (and separate primary selection for
|
||||
you X11 users). It even converts newlines to each computer's native
|
||||
form so cut and paste between different operating systems works
|
||||
seamlessly. And it does it all in Unicode so any text can be copied.
|
||||
</p><p>
|
||||
</p><p>
|
||||
Do you use a screen saver? With synergy all your screen savers act in
|
||||
concert. When one starts they all start. When one stops they all
|
||||
stop. And, if you require a password to unlock the screen, you'll
|
||||
only have to enter a password on one screen.
|
||||
</p><p>
|
||||
If you regularly use multiple computers on one desk, give synergy a
|
||||
try. You'll wonder how you ever lived without it.
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
72
doc/authors.html
Normal file
72
doc/authors.html
Normal file
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy Authors</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
</p><h3>Synergy Authors</h3><p>
|
||||
</p><p>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Chris Schoeneman</td>
|
||||
<td> </td>
|
||||
<td><span class="fakelink">crs23@users.sourceforge<span class="hide">.no_spam</span>.net</span></td>
|
||||
<td> </td>
|
||||
<td>Creator, owner, primary developer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ryan Breen</td>
|
||||
<td> </td>
|
||||
<td><span class="fakelink">ryan@ryanbreen<span class="hide">.no_spam</span>.com</span></td>
|
||||
<td> </td>
|
||||
<td>Initial Mac OS X port</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Guido Poschta</td>
|
||||
<td> </td>
|
||||
<td><span class="fakelink">moolder@gmx<span class="hide">.no_spam</span>.net</span></td>
|
||||
<td> </td>
|
||||
<td>Windows installer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bertrand Landry Hetu</td>
|
||||
<td> </td>
|
||||
<td><span class="fakelink">bertrand@landryhetu<span class="hide">.no_spam</span>.com</span></td>
|
||||
<td> </td>
|
||||
<td>Mac OS X port</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tom Chadwick</td>
|
||||
<td> </td>
|
||||
<td><span class="fakelink">vttom@users.sourceforge<span class="hide">.no_spam</span>.net</span></td>
|
||||
<td> </td>
|
||||
<td>PageUp/PageDown on X servers without mouse wheel support</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Brent Priddy</td>
|
||||
<td> </td>
|
||||
<td><span class="fakelink">toopriddy@users.sourceforge<span class="hide">.no_spam</span>.net</span></td>
|
||||
<td> </td>
|
||||
<td>Re-resolving server hostname on each connection</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Marc-Antoine Ruel</td>
|
||||
<td> </td>
|
||||
<td><span class="fakelink">maruel@users.sourceforge<span class="hide">.no_spam</span>.net</span></td>
|
||||
<td> </td>
|
||||
<td>Visual Studio 2005 port</td>
|
||||
</tr>
|
||||
</table>
|
||||
</p><p>
|
||||
To avoid spam bots, the above email addresses have ".no_spam"
|
||||
hidden near the end. If you copy and paste the text be sure to
|
||||
remove it.
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
428
doc/autostart.html
Normal file
428
doc/autostart.html
Normal file
@@ -0,0 +1,428 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy Autostart Guide</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
</p><h3>Starting synergy automatically</h3><p>
|
||||
</p><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><p>
|
||||
</p><h4>Windows</h4><p>
|
||||
</p><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><p>
|
||||
</p><h4>Unix</h4><p>
|
||||
</p><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>. If you use kdm
|
||||
then try looking in <span class="code">/etc/kde3</span> or
|
||||
<span class="code">/usr/kde/<span class="arg">version</span>/share/config</span>.
|
||||
Typical file names are:
|
||||
</p><p>
|
||||
<span class="code">
|
||||
<table>
|
||||
<tr><td> </td> <td> </td> <td>xdm</td> <td> </td> <td>kdm</td> <td> </td> <td>gdm</td></tr>
|
||||
<tr><td>1</td> <td></td> <td>xdm/Xsetup</td> <td></td> <td>kdm/Xsetup</td> <td></td> <td>gdm/Init/Default (*)</td></tr>
|
||||
<tr><td>2</td> <td></td> <td>xdm/Xstartup</td> <td></td> <td>kdm/Xstartup</td> <td></td> <td>gdm/PostLogin/Default (*)</td></tr>
|
||||
<tr><td>3</td> <td></td> <td>xdm/Xsession</td> <td></td> <td>kdm/Xsession</td> <td></td> <td>gdm/Sessions/Default (*, **)</td></tr>
|
||||
</table>
|
||||
</span>
|
||||
</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:
|
||||
<span class="codeblock">
|
||||
/usr/bin/killall synergyc
|
||||
sleep 1
|
||||
/usr/bin/synergyc [<options>] <span class="arg">synergy-server-hostname</span>
|
||||
</span>
|
||||
Of course, the path to synergyc depends on where you installed it
|
||||
so adjust as necessary.
|
||||
</p><p>
|
||||
Add to the second file:
|
||||
<span class="codeblock">
|
||||
/usr/bin/killall synergyc
|
||||
sleep 1
|
||||
</span>
|
||||
</p><p>
|
||||
And to the third file:
|
||||
<span class="codeblock">
|
||||
/usr/bin/killall synergyc
|
||||
sleep 1
|
||||
/usr/bin/synergyc <span class="arg">[<options>]</span> <span class="arg">synergy-server-hostname</span>
|
||||
</span>
|
||||
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><p>
|
||||
</p><h4>Mac OS X</h4><p>
|
||||
</p><p>
|
||||
[By Tor Slettnes]
|
||||
</p><p>
|
||||
There are three different ways to automatically start Synergy
|
||||
(client or server) on Mac OS X:
|
||||
</p><p>
|
||||
<ol>
|
||||
<li>
|
||||
The first method involves creating a <span class="code">StartupItem</span>
|
||||
at the system level, which is executed when the machine starts up
|
||||
or shuts down. This script will run in the background, and
|
||||
relaunch synergy as needed.
|
||||
</p><p>
|
||||
<dl>
|
||||
<dt><b>Pros:</b></dt>
|
||||
<dd>
|
||||
Synergy is persistent, so this allows for a multi-user
|
||||
setup and interactive logins.
|
||||
</dd>
|
||||
<dt><b>Cons:</b></dt>
|
||||
<dd>
|
||||
The synergy process does not have access to the clipboard
|
||||
of the logged-in user.
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</p><p>
|
||||
<li>
|
||||
The second method will launch Synergy from the
|
||||
<span class="code">LoginWindow</span> application, once a particular
|
||||
user has logged in.
|
||||
</p><p>
|
||||
<dl>
|
||||
<dt><b>Pros:</b></dt>
|
||||
<dd>
|
||||
The synergy process inherits the
|
||||
<span class="code">$SECURITYSESSIONID</span> environment variable,
|
||||
and therefore copy/paste works.
|
||||
</dd>
|
||||
<dt><b>Cons:</b></dt>
|
||||
<dd>
|
||||
Once the user logs out, synergy dies, and no remote
|
||||
control is possible.
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</p><p>
|
||||
<li>
|
||||
The third method is to launch a startup script from the
|
||||
"Startup Items" tab under System Preferences -> Accounts.
|
||||
</p><p>
|
||||
<dl>
|
||||
<dt><b>Pros:</b></dt>
|
||||
<dd>
|
||||
Does not require root (Administrator) access
|
||||
</dd>
|
||||
<dt><b>Cons:</b></dt>
|
||||
<dd>
|
||||
Once the user logs out, synergy dies, and no remote
|
||||
control is possible.
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ol>
|
||||
</p><p>
|
||||
The text below describes how to implement a Synergy client using
|
||||
the first two methods simultaneously. This way, Synergy is
|
||||
always running, and the clipboard is available when someone is
|
||||
logged in. A Mac OS X Synergy server setup will be quite similar.
|
||||
</p><p>
|
||||
<b>1. Create a System Level Startup Item</b>
|
||||
</p><p>
|
||||
<ul>
|
||||
<li>
|
||||
Open a <span class="code">Terminal</span> window, and become root:
|
||||
<span class="userinput">
|
||||
$ sudo su -
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
Create a folder for this item:
|
||||
<span class="userinput">
|
||||
# mkdir -p /Library/StartupItems/Synergy
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
In this folder, create a new script file by the same name as
|
||||
the directory itself, <span class="code">Synergy</span>. This script
|
||||
should contain the following text:
|
||||
</p><p>
|
||||
<span class="codeblock">
|
||||
#!/bin/sh
|
||||
. /etc/rc.common
|
||||
|
||||
run=(/usr/local/bin/synergyc -n $(hostname -s) -1 -f <span class="arg">synergy-server</span>)
|
||||
|
||||
KeepAlive ()
|
||||
{
|
||||
proc=${1##*/}
|
||||
|
||||
while [ -x "$1" ]
|
||||
do
|
||||
if ! ps axco command | grep -q "^${proc}\$"
|
||||
then
|
||||
"$@"
|
||||
fi
|
||||
|
||||
sleep 3
|
||||
done
|
||||
}
|
||||
|
||||
StartService ()
|
||||
{
|
||||
ConsoleMessage "Starting Synergy"
|
||||
KeepAlive "${run[@]}" &
|
||||
}
|
||||
|
||||
StopService ()
|
||||
{
|
||||
return 0
|
||||
}
|
||||
|
||||
RestartService ()
|
||||
{
|
||||
return 0
|
||||
}
|
||||
|
||||
RunService "$1"
|
||||
</span>
|
||||
</p><p>
|
||||
However, replace <span class="arg">synergy-server</span> with the actual
|
||||
name or IP address of your Synergy server.
|
||||
</p><p>
|
||||
Note that this scripts takes care <em>not</em> to start
|
||||
Synergy if another instance is currently running. This
|
||||
allows it to run in the background even when synergy is also
|
||||
started independently, e.g. from the <span class="code">LoginWindow</span>
|
||||
application as described below.
|
||||
</li>
|
||||
<li>
|
||||
Make this script executable:
|
||||
<span class="userinput">
|
||||
# chmod 755 /Library/StartupItems/Synergy/Synergy
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
In the same folder, create a file named
|
||||
<span class="code">StartupParameters.plist</span> containing:
|
||||
</p><p>
|
||||
<span class="codeblock">
|
||||
{
|
||||
Description = "Synergy Client";
|
||||
Provides = ("Synergy");
|
||||
Requires = ("Network");
|
||||
OrderPreference = "None";
|
||||
}
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</p><p>
|
||||
That's it! If you want to test this setup, you can run the
|
||||
startup script as follows:
|
||||
</p><p>
|
||||
<span class="userinput">
|
||||
# /Library/StartupItems/Synergy/Synergy start
|
||||
</span>
|
||||
</p><p>
|
||||
Any errors, as well as output from Synergy, will be shown in
|
||||
your terminal window.
|
||||
</p><p>
|
||||
Next time you reboot, Synergy should start automatically.
|
||||
</p><p>
|
||||
<b>2. Run Synergy When a User Logs In</b>
|
||||
</p><p>
|
||||
Each time a user successfully logs in via the console, the
|
||||
<span class="code">LoginWindow</span> application creates a unique session
|
||||
cookie and stores it in the environment variable
|
||||
<span class="code">$SECURITYSESSIONID</span>. For copy and paste operations
|
||||
to work, Synergy needs access to this environment variable. In
|
||||
other words, Synergy needs to be launched (directly or
|
||||
indirectly) via the <span class="code">LoginWindow</span> application.
|
||||
</p><p>
|
||||
However, in order to kill any synergy processes started at the
|
||||
system level (as described above), we need root access. Thus,
|
||||
launching Synergy within the User's environment (e.g. via the
|
||||
Startup Items tab in System Preferences -> Accounts) is not an
|
||||
option that work in conjunction with the method above.
|
||||
</p><p>
|
||||
Fortunately, the <span class="code">LoginWindow</span> application provides
|
||||
a "hook" for running a custom program (as root, with the username provided as
|
||||
the first and only argument) once a user has authenticated, but
|
||||
before the user is logged in.
|
||||
</p><p>
|
||||
Unfortunately, only one such hook is available. If you have
|
||||
already installed a Login Hook, you may need to add the text
|
||||
from below to your existing script, rather than creating a new
|
||||
one.
|
||||
</p><p>
|
||||
<ul>
|
||||
<li>
|
||||
Launch a Terminal window, and become root:
|
||||
<span class="userinput">
|
||||
$ sudo su -
|
||||
</span>
|
||||
</li>
|
||||
</p><p>
|
||||
<li>
|
||||
Find out if a LoginHook already exists:
|
||||
<span class="userinput">
|
||||
# defaults read com.apple.loginwindow LoginHook
|
||||
</span>
|
||||
This will either show the full path to a script or
|
||||
executable file, or the text:
|
||||
<span class="userinput">
|
||||
The domain/default pair of (com.apple.loginwindow, LoginHook) does not exist
|
||||
</span>
|
||||
In the former case, you need to modify your existing script,
|
||||
and/or create a "superscript" which in turn calls your
|
||||
existing script plus the one we will create here.
|
||||
</p><p>
|
||||
The rest of this text assumes that this item did not already
|
||||
exist, and that we will create a new script.
|
||||
</li>
|
||||
<li>
|
||||
Create a folder in which we will store our custom startup
|
||||
script:
|
||||
<span class="userinput">
|
||||
# mkdir -p /Library/LoginWindow
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
In this folder, create a new script file (let's name it
|
||||
<span class="code">LoginHook.sh</span>), containing the following text:
|
||||
</p><p>
|
||||
<span class="codeblock">
|
||||
#!/bin/sh
|
||||
prog=(/usr/local/bin/synergyc -n $(hostname -s) <span class="arg">ip-address-of-server</span>)
|
||||
|
||||
### Stop any currently running Synergy client
|
||||
killall ${prog[0]##*/}
|
||||
|
||||
### Start the new client
|
||||
exec "${prog[@]}"
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
Make this script executable:
|
||||
<span class="userinput">
|
||||
# chmod 755 /Library/LoginWindow/LoginHook.sh
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
Create a login hook to call the script you just created:
|
||||
<span class="userinput">
|
||||
# defaults write com.apple.loginwindow LoginHook /Library/LoginWindow/LoginHook.sh
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</p><p>
|
||||
More information on setting up login hooks can be found at
|
||||
<a target="_top" href="http://docs.info.apple.com/article.html?artnum=301446">Apple</a>.
|
||||
</p><p>
|
||||
When running the Synergy client, you may need to use the IP
|
||||
address of the Synergy server rather than its host name.
|
||||
Specifically, unless you have listed the server in your
|
||||
local <span class="code">/etc/hosts</span> file or in your local NetInfo
|
||||
database, name services (i.e. DNS) may not yet be available by the
|
||||
time you log in after power-up. <span class="code">synergyc</span> will
|
||||
quit if it cannot resolve the server name.
|
||||
</p><p>
|
||||
(This is not an issue with the previous method, because the
|
||||
<span class="code">StartupParameters.plist</span> file specifies that this
|
||||
script should not be run until "network" is available).
|
||||
</p><p>
|
||||
<b>3. Good Luck!</b>
|
||||
</p><p>
|
||||
Remember to look in your system log on both your server and your
|
||||
client(s) for clues to any problems you may have
|
||||
(<span class="code">/var/log/system.log</span> on your OS X box, typically
|
||||
<span class="code">/var/log/syslog</span> on Linux boxes).
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
16
doc/banner.html
Normal file
16
doc/banner.html
Normal file
@@ -0,0 +1,16 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy Header</title>
|
||||
<base target="_top">
|
||||
</head>
|
||||
<body class="banner">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr><td><a href="index.html"><img src="images/logo.gif" alt="Synergy" border="0"></a></td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
14
doc/border.html
Normal file
14
doc/border.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy</title>
|
||||
<base target="_top">
|
||||
</head>
|
||||
<body class="bannerb">
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
||||
112
doc/compiling.html
Normal file
112
doc/compiling.html
Normal file
@@ -0,0 +1,112 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Building and Installing Synergy</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
</p><h3>Prerequisites for building</h3><p>
|
||||
</p><p>
|
||||
To build synergy from the sources you'll need the following:
|
||||
<ul>
|
||||
<li>Windows
|
||||
<ul>
|
||||
<li>Microsoft Windows SDK for Vista; or
|
||||
<li>VC++ 6.0 or up should work
|
||||
</ul>
|
||||
</p><p>
|
||||
<li>Unix
|
||||
<ul>
|
||||
<li>gcc 2.95 or up
|
||||
<li>X11R4 or up headers and libraries
|
||||
</ul>
|
||||
</p><p>
|
||||
<li>Mac OS X
|
||||
<ul>
|
||||
<li>gcc 2.95 or up
|
||||
<li>Carbon development headers and libraries
|
||||
</ul>
|
||||
</ul>
|
||||
</p><p>
|
||||
</p><h3>Configuring the build</h3><p>
|
||||
</p><p>
|
||||
This step is not necessary on Windows.
|
||||
</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><p>
|
||||
</p><h3>Building</h3><p>
|
||||
<ul>
|
||||
<li>Windows
|
||||
<p>
|
||||
Open a command prompt window (cmd.exe or command.exe). If necessary
|
||||
run vcvars.bat, created when VC++ or Visual Studio was installed. (Use
|
||||
search to find it.) It's necessary to run the file if you didn't have
|
||||
the installer set up environment variables for you. Then enter:
|
||||
<pre>
|
||||
nmake /nologo /f Makefile.win
|
||||
</pre>
|
||||
This will build the programs into <span class="code">build\Release</span>.
|
||||
</p>
|
||||
<li>Unix or Mac OS X
|
||||
</p><p>
|
||||
Simply enter:
|
||||
<pre>
|
||||
make
|
||||
</pre>
|
||||
This will build the client and server and leave them in their
|
||||
respective source directories.
|
||||
</p>
|
||||
</ul>
|
||||
<p>
|
||||
</p><h3>Installing</h3><p>
|
||||
<ul>
|
||||
<li>Windows
|
||||
<p>
|
||||
You'll need <a target="_top" href="http://nsis.sourceforge.net/">NSIS</a>,
|
||||
the Nullsoft Scriptable Install System. As in the building on Windows
|
||||
description above, enter:
|
||||
<pre>
|
||||
nmake /nologo /f Makefile.win installer
|
||||
</pre>
|
||||
to build <span class="code">build\Release\SynergyInstaller.exe</span>. Run
|
||||
this to install synergy.
|
||||
</p><p>
|
||||
Alternatively, you can simply copy the following files from the
|
||||
<span class="code">build\Release</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
|
||||
<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>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
686
doc/configuration.html
Normal file
686
doc/configuration.html
Normal file
@@ -0,0 +1,686 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy Configuration Guide</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
</p><h3>Synergy Configuration File Format</h3><p>
|
||||
</p><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:
|
||||
<span class="codeblock">
|
||||
section: <span class="arg">name</span>
|
||||
<span class="arg">args</span>
|
||||
end
|
||||
</span>
|
||||
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><p>
|
||||
</p><h4>screens</h4><p>
|
||||
</p><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:
|
||||
<span class="codeblock">
|
||||
section: screens
|
||||
moe:
|
||||
larry:
|
||||
halfDuplexCapsLock = true
|
||||
halfDuplexNumLock = true
|
||||
curly:
|
||||
meta = alt
|
||||
end
|
||||
</span>
|
||||
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><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><p>
|
||||
<li><span class="code">halfDuplexNumLock = {true|false}</span>
|
||||
</p><p>
|
||||
This is identical to <span class="code">halfDuplexCapsLock</span>
|
||||
except it applies to the Num Lock key.
|
||||
</p><p>
|
||||
<li><span class="code">halfDuplexScrollLock = {true|false}</span>
|
||||
</p><p>
|
||||
This is identical to <span class="code">halfDuplexCapsLock</span>
|
||||
except it applies to the Scroll Lock key. Note that, by default,
|
||||
synergy uses Scroll Lock to keep the cursor on the current screen. That
|
||||
is, when Scroll Lock is toggled on, the cursor is locked to the screen
|
||||
that it's currently on. You can use that to prevent accidental switching.
|
||||
You can also configure other hot keys to do that; see <a href="#lockCursor">
|
||||
lockCursorToScreen</a>.
|
||||
</p><p>
|
||||
<li><span class="code">switchCorners = <corners></span>
|
||||
</p><p>
|
||||
See <a href="#corners">switchCorners</a> below.
|
||||
</p><p>
|
||||
<li><span class="code">switchCornerSize = N</span>
|
||||
</p><p>
|
||||
See <a href="#cornerSize">switchCornerSize</a> below.
|
||||
</p><p>
|
||||
<li><span class="code">xtestIsXineramaUnaware = {true|false}</span>
|
||||
</p><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><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><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><p>
|
||||
</ul>
|
||||
</p><p>
|
||||
</p><a name="aliases"></a><h4>aliases</h4><p>
|
||||
</p><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:
|
||||
<span class="codeblock">
|
||||
section: aliases
|
||||
larry:
|
||||
larry.stooges.com
|
||||
curly:
|
||||
shemp
|
||||
end
|
||||
</span>
|
||||
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><p>
|
||||
</p><h4>links</h4><p>
|
||||
</p><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}[<range>]</span> =
|
||||
<span class="code">name[<range>]</span>. A link indicates which
|
||||
screen is adjacent in the given direction.
|
||||
</p><p>
|
||||
Each side of a link can specify a range which defines a portion
|
||||
of an edge. A range on the direction is the portion of edge you can
|
||||
leave from while a range on the screen is the portion of edge you'll
|
||||
enter into. Ranges are optional and default to the entire edge. All
|
||||
ranges on a particular direction of a particular screen must not
|
||||
overlap.
|
||||
</p><p>
|
||||
A <range> is written as <span class="code">(<start>,<end>)</span>.
|
||||
Both <span class="code">start</span> and <span class="code">end</span>
|
||||
are percentages in the range 0 to 100, inclusive. The start must be
|
||||
less than the end. 0 is the left or top of an edge and 100 is the
|
||||
right or bottom.
|
||||
</p><p>
|
||||
Example:
|
||||
<span class="codeblock">
|
||||
section: links
|
||||
moe:
|
||||
right = larry
|
||||
up(50,100) = curly(0,50)
|
||||
larry:
|
||||
left = moe
|
||||
up(0,50) = curly(50,100)
|
||||
curly:
|
||||
down(0,50) = moe
|
||||
down(50,100) = larry(0,50)
|
||||
end
|
||||
</span>
|
||||
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>),
|
||||
the left half of
|
||||
<span class="code">curly</span> is above the right half of
|
||||
<span class="code">moe</span>,
|
||||
<span class="code">moe</span> is to the left of
|
||||
<span class="code">larry</span> (edges are not necessarily symmetric
|
||||
so you have to provide both directions), the right half of
|
||||
<span class="code">curly</span> is above the left half of
|
||||
<span class="code">larry</span>, all of <span class="code">moe</span>
|
||||
is below the left half of <span class="code">curly</span>, and the
|
||||
left half of <span class="code">larry</span> is below the right half of
|
||||
<span class="code">curly</span>.
|
||||
</p><p>
|
||||
<a name="asymmetric"></a>Note that links do not have to be
|
||||
symmetrical; for instance, here the edge between
|
||||
<span class="code">moe</span> and <span class="code">curly</span>
|
||||
maps to different ranges depending on if you're going up or down.
|
||||
In fact links don't have to be bidirectional. You can configure
|
||||
the right of <span class="code">moe</span> to go to
|
||||
<span class="code">larry</span> without a link from the left of
|
||||
<span class="code">larry</span> to <span class="code">moe</span>.
|
||||
It's possible to configure a screen with no outgoing links; the
|
||||
cursor will get stuck on that screen unless you have a hot key
|
||||
configured to switch off of that screen.
|
||||
</p><p>
|
||||
</p><h4>options</h4><p>
|
||||
</p><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:
|
||||
<span class="codeblock">
|
||||
section: options
|
||||
heartbeat = 5000
|
||||
switchDelay = 500
|
||||
end
|
||||
</span>
|
||||
</p><p>
|
||||
You can use the following options:
|
||||
<ul>
|
||||
<li><span class="code">heartbeat = N</span>
|
||||
</p><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><p>
|
||||
<li><span class="code"><a name="corners"></a>switchCorners = <corners></span>
|
||||
</p><p>
|
||||
Synergy won't switch screens when the mouse reaches the edge of
|
||||
the screen if it's in a listed corner. The size of all corners
|
||||
is given by the <span class="code">switchCornerSize</span>
|
||||
option.
|
||||
</p><p>
|
||||
Corners are specified by a list using the following names:
|
||||
<ul>
|
||||
<li><span class="code">none</span> -- no corners
|
||||
<li><span class="code">top-left</span> -- the top left corner
|
||||
<li><span class="code">top-right</span> -- the top right corner
|
||||
<li><span class="code">bottom-left</span> -- the bottom left corner
|
||||
<li><span class="code">bottom-right</span> -- the bottom right corner
|
||||
<li><span class="code">left</span> -- top and bottom left corners
|
||||
<li><span class="code">right</span> -- top and bottom right corners
|
||||
<li><span class="code">top</span> -- left and right top corners
|
||||
<li><span class="code">bottom</span> -- left and right bottom corners
|
||||
<li><span class="code">all</span> -- all corners
|
||||
</ul>
|
||||
</p><p>
|
||||
The first name in the list is one of the above names and defines
|
||||
the initial set of corners. Subsequent names are prefixed with
|
||||
+ or - to add the corner to or remove the corner from the set,
|
||||
respectively. For example:
|
||||
</p><p>
|
||||
<span class="code">
|
||||
all -left +top-left
|
||||
</span>
|
||||
</p><p>
|
||||
starts will all corners, removes the left corners (top and bottom)
|
||||
then adds the top-left back in, resulting in the top-left,
|
||||
bottom-left and bottom-right corners.
|
||||
</p><p>
|
||||
<li><span class="code"><a name="cornerSize"></a>switchCornerSize = N</span>
|
||||
</p><p>
|
||||
Sets the size of all corners in pixels. The cursor must be within
|
||||
<span class="code">N</span> pixels of the corner to be considered
|
||||
to be in the corner.
|
||||
</p><p>
|
||||
<li><span class="code">switchDelay = N</span>
|
||||
</p><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><p>
|
||||
<li><span class="code">switchDoubleTap = N</span>
|
||||
</p><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><p>
|
||||
<li><span class="code">screenSaverSync = {true|false}</span>
|
||||
</p><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><p>
|
||||
<li><span class="code">relativeMouseMoves = {true|false}</span>
|
||||
</p><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 the cursor is locked to the
|
||||
screen (by Scroll Lock or a <a href="#lockCursor">configured
|
||||
hot key</a>).
|
||||
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><p>
|
||||
<li><span class="code">keystroke(<span class="arg">key</span>) = <span class="arg">actions</span></span>
|
||||
</p><p>
|
||||
Binds the key combination <span class="arg">key</span> to the
|
||||
given <span class="arg">actions</span>. <span class="arg">key</span>
|
||||
is an optional list of modifiers (<span class="code">shift</span>,
|
||||
<span class="code">control</span>, <span class="code">alt</span>,
|
||||
<span class="code">meta</span> or <span class="code">super</span>)
|
||||
optionally followed by a character or a key name, all separated by
|
||||
<span class="code">+</span> (plus signs). You must have either
|
||||
modifiers or a character/key name or both. See below for
|
||||
<a href="#keynames">valid key names</a>.
|
||||
</p><p>
|
||||
Actions are described <a href="#actions">below</a>.
|
||||
</p><p>
|
||||
Keyboard hot keys are handled while the cursor is on the primary
|
||||
screen and secondary screens. Separate actions can be assigned
|
||||
to press and release.
|
||||
</p><p>
|
||||
<li><span class="code">mousebutton(<span class="arg">button</span>) = <span class="arg">actions</span></span>
|
||||
</p><p>
|
||||
Binds the modifier and mouse button combination
|
||||
<span class="arg">button</span> to the given
|
||||
<span class="arg">actions</span>. <span class="arg">button</span>
|
||||
is an optional list of modifiers (<span class="code">shift</span>,
|
||||
<span class="code">control</span>, <span class="code">alt</span>,
|
||||
<span class="code">meta</span> or <span class="code">super</span>)
|
||||
followed by a button number. The primary button (the
|
||||
left button for right handed users) is button 1, the middle button
|
||||
is 2, etc.
|
||||
</p><p>
|
||||
Actions are described <a href="#actions">below</a>.
|
||||
</p><p>
|
||||
Mouse button actions are not handled while the cursor is on the
|
||||
primary screen. You cannot use these to perform an action while
|
||||
on the primary screen. Separate actions can be assigned to press
|
||||
and release.
|
||||
</p><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><p>
|
||||
<a name="actions">Actions</a> are two lists of individual actions separated
|
||||
by commas. The two lists are separated by a semicolon. Either list can be
|
||||
empty and if the second list is empty then the semicolon is optional. The
|
||||
first list lists actions to take when the condition becomes true (e.g. the
|
||||
hot key or mouse button is pressed) and the second lists actions to take
|
||||
when the condition becomes false (e.g. the hot key or button is released).
|
||||
The condition becoming true is called activation and becoming false is
|
||||
called deactivation.
|
||||
Allowed individual actions are:
|
||||
<ul>
|
||||
<li><span class="code">keystroke(<span class="arg">key</span>[,<span class="arg">screens</span>])</span>
|
||||
<li><span class="code">keyDown(<span class="arg">key</span>[,<span class="arg">screens</span>])</span>
|
||||
<li><span class="code">keyUp(<span class="arg">key</span>[,<span class="arg">screens</span>])</span>
|
||||
</p><p>
|
||||
Synthesizes the modifiers and key given in <span class="arg">key</span>
|
||||
which has the same form as described in the
|
||||
<span class="code">keystroke</span> option. If given,
|
||||
<span class="arg">screens</span> lists the screen or screens to
|
||||
direct the event to, regardless of the active screen. If not
|
||||
given then the event is directed to the active screen only.
|
||||
(Due to a bug, keys cannot be directed to the server while on a
|
||||
client screen.)
|
||||
</p><p>
|
||||
<span class="code">keyDown</span> synthesizes a key press and
|
||||
<span class="code">keyUp</span> synthesizes a key release.
|
||||
<span class="code">keystroke</span> synthesizes a key press on
|
||||
activation and a release on deactivation and is equivalent to
|
||||
a <span class="code">keyDown</span> on activation and
|
||||
<span class="code">keyUp</span> on deactivation.
|
||||
</p><p>
|
||||
<span class="arg">screens</span> is either <span class="code">*</span>
|
||||
to indicate all screens or a colon (:) separated list of screen
|
||||
names. (Note that the screen name must have already been encountered
|
||||
in the configuration file so you'll probably want to put actions at
|
||||
the bottom of the file.)
|
||||
</p><p>
|
||||
<li><span class="code">mousebutton(<span class="arg">button</span>)</span>
|
||||
<li><span class="code">mouseDown(<span class="arg">button</span>)</span>
|
||||
<li><span class="code">mouseUp(<span class="arg">button</span>)</span>
|
||||
</p><p>
|
||||
Synthesizes the modifiers and mouse button given in
|
||||
<span class="arg">button</span>
|
||||
which has the same form as described in the
|
||||
<span class="code">mousebutton</span> option.
|
||||
</p><p>
|
||||
<span class="code">mouseDown</span> synthesizes a mouse press and
|
||||
<span class="code">mouseUp</span> synthesizes a mouse release.
|
||||
<span class="code">mousebutton</span> synthesizes a mouse press on
|
||||
activation and a release on deactivation and is equivalent to
|
||||
a <span class="code">mouseDown</span> on activation and
|
||||
<span class="code">mouseUp</span> on deactivation.
|
||||
</p><p>
|
||||
<li><a name="lockCursor"></a><span class="code">lockCursorToScreen(<span class="arg">mode</span>)</span>
|
||||
</p><p>
|
||||
Locks the cursor to or unlocks the cursor from the active screen.
|
||||
<span class="arg">mode</span> can be <span class="code">off</span>
|
||||
to unlock the cursor, <span class="code">on</span> to lock the
|
||||
cursor, or <span class="code">toggle</span> to toggle the current
|
||||
state. The default is <span class="code">toggle</span>. If the
|
||||
configuration has no <span class="code">lockCursorToScreen</span>
|
||||
action and Scroll Lock is not used as a hot key then Scroll Lock
|
||||
toggles cursor locking.
|
||||
</p><p>
|
||||
<li><span class="code">switchToScreen(<span class="arg">screen</span>)</span>
|
||||
</p><p>
|
||||
Jump to screen with name or alias <span class="arg">screen</span>.
|
||||
</p><p>
|
||||
<li><span class="code">switchInDirection(<span class="arg">dir</span>)</span>
|
||||
</p><p>
|
||||
Switch to the screen in the direction <span class="arg">dir</span>,
|
||||
which may be one of <span class="code">left</span>,
|
||||
<span class="code">right</span>, <span class="code">up</span> or
|
||||
<span class="code">down</span>.
|
||||
</p><p>
|
||||
<li><a name="keyboardBroadcast"></a><span class="code">keyboardBroadcast(<span class="arg">mode</span>[,<span class="arg">screens</span>])</span>
|
||||
</p><p>
|
||||
Turns broadcasting of keystrokes to multiple screens on and off. When
|
||||
turned on all key presses and releases are sent to all of the screens
|
||||
listed in <span class="arg">screens</span>. If not given, empty or
|
||||
<span class="code">*</span> then keystrokes are broadcast to all screens.
|
||||
(However, due to a bug, keys cannot be sent to the server while on a
|
||||
client screen.)
|
||||
</p><p>
|
||||
<span class="arg">mode</span> can be <span class="code">off</span>
|
||||
to turn broadcasting off, <span class="code">on</span> to turn it
|
||||
on, or <span class="code">toggle</span> to toggle the current
|
||||
state. The default is <span class="code">toggle</span>.
|
||||
</p><p>
|
||||
<span class="arg">screens</span> is either <span class="code">*</span>
|
||||
to indicate all screens or a colon (:) separated list of screen
|
||||
names. (Note that the screen name must have already been encountered
|
||||
in the configuration file so you'll probably want to put actions at
|
||||
the bottom of the file.)
|
||||
</p><p>
|
||||
Multiple <span class="code">keyboardBroadcast</span> actions may be
|
||||
configured with different <span class="arg">screens</span>. The most
|
||||
recently performed action defines the screens to broadcast to.
|
||||
</p><p>
|
||||
</ul>
|
||||
</p><p>
|
||||
Examples:
|
||||
<ul>
|
||||
<li><span class="code">keystroke(alt+left) = switchInDirection(left)</span>
|
||||
</p><p>
|
||||
Switches to the screen to left when the left arrow key is pressed
|
||||
in combination with the Alt key.
|
||||
</p><p>
|
||||
<li><span class="code">keystroke(shift+control+alt+super) = switchToScreen(moe)</span>
|
||||
</p><p>
|
||||
Switches to screen <span class="code">moe</span> when all of the
|
||||
Shift, Control, Alt, and Super modifier keys are pressed together.
|
||||
</p><p>
|
||||
<li><span class="code">keystroke(alt+f1) = ; lockCursorToScreen(toggle)</span>
|
||||
</p><p>
|
||||
Toggles locking the cursor to the screen when Alt+F1 is released.
|
||||
</p><p>
|
||||
<li><span class="code">mousebutton(2) = mouseDown(control+1) ; mouseUp(control+1)</span>
|
||||
</p><p>
|
||||
While on a secondary screen clicking the middle mouse button will
|
||||
become a Control click of the primary button.
|
||||
</p><p>
|
||||
<li><span class="code">keystroke(super+f1) = keystroke(super+L,larry), keystroke(control+alt+delete,curly)</span>
|
||||
</p><p>
|
||||
Pressing Super+F1 (on any screen) will synthesize Super+L on screen
|
||||
<span class="code">larry</span> and Control+Alt+Delete on screen
|
||||
<span class="code">curly</span>.
|
||||
</p><p>
|
||||
</ul></span>
|
||||
</p><p>
|
||||
<a name="keynames">Valid key names</a> are:
|
||||
<span class="code"><ul>
|
||||
<li>AppMail
|
||||
<li>AppMedia
|
||||
<li>AppUser1
|
||||
<li>AppUser2
|
||||
<li>AudioDown
|
||||
<li>AudioMute
|
||||
<li>AudioNext
|
||||
<li>AudioPlay
|
||||
<li>AudioPrev
|
||||
<li>AudioStop
|
||||
<li>AudioUp
|
||||
<li>BackSpace
|
||||
<li>Begin
|
||||
<li>Break
|
||||
<li>Cancel
|
||||
<li>CapsLock
|
||||
<li>Clear
|
||||
<li>Delete
|
||||
<li>Down
|
||||
<li>Eject
|
||||
<li>End
|
||||
<li>Escape
|
||||
<li>Execute
|
||||
<li>F1
|
||||
<li>F2
|
||||
<li>F3
|
||||
<li>F4
|
||||
<li>F5
|
||||
<li>F6
|
||||
<li>F7
|
||||
<li>F8
|
||||
<li>F9
|
||||
<li>F10
|
||||
<li>F11
|
||||
<li>F12
|
||||
<li>F13
|
||||
<li>F14
|
||||
<li>F15
|
||||
<li>F16
|
||||
<li>F17
|
||||
<li>F18
|
||||
<li>F19
|
||||
<li>F20
|
||||
<li>F21
|
||||
<li>F22
|
||||
<li>F23
|
||||
<li>F24
|
||||
<li>F25
|
||||
<li>F26
|
||||
<li>F27
|
||||
<li>F28
|
||||
<li>F29
|
||||
<li>F30
|
||||
<li>F31
|
||||
<li>F32
|
||||
<li>F33
|
||||
<li>F34
|
||||
<li>F35
|
||||
<li>Find
|
||||
<li>Help
|
||||
<li>Home
|
||||
<li>Insert
|
||||
<li>KP_0
|
||||
<li>KP_1
|
||||
<li>KP_2
|
||||
<li>KP_3
|
||||
<li>KP_4
|
||||
<li>KP_5
|
||||
<li>KP_6
|
||||
<li>KP_7
|
||||
<li>KP_8
|
||||
<li>KP_9
|
||||
<li>KP_Add
|
||||
<li>KP_Begin
|
||||
<li>KP_Decimal
|
||||
<li>KP_Delete
|
||||
<li>KP_Divide
|
||||
<li>KP_Down
|
||||
<li>KP_End
|
||||
<li>KP_Enter
|
||||
<li>KP_Equal
|
||||
<li>KP_F1
|
||||
<li>KP_F2
|
||||
<li>KP_F3
|
||||
<li>KP_F4
|
||||
<li>KP_Home
|
||||
<li>KP_Insert
|
||||
<li>KP_Left
|
||||
<li>KP_Multiply
|
||||
<li>KP_PageDown
|
||||
<li>KP_PageUp
|
||||
<li>KP_Right
|
||||
<li>KP_Separator
|
||||
<li>KP_Space
|
||||
<li>KP_Subtract
|
||||
<li>KP_Tab
|
||||
<li>KP_Up
|
||||
<li>Left
|
||||
<li>LeftTab
|
||||
<li>Linefeed
|
||||
<li>Menu
|
||||
<li>NumLock
|
||||
<li>PageDown
|
||||
<li>PageUp
|
||||
<li>Pause
|
||||
<li>Print
|
||||
<li>Redo
|
||||
<li>Return
|
||||
<li>Right
|
||||
<li>ScrollLock
|
||||
<li>Select
|
||||
<li>Sleep
|
||||
<li>Space
|
||||
<li>SysReq
|
||||
<li>Tab
|
||||
<li>Undo
|
||||
<li>Up
|
||||
<li>WWWBack
|
||||
<li>WWWFavorites
|
||||
<li>WWWForward
|
||||
<li>WWWHome
|
||||
<li>WWWRefresh
|
||||
<li>WWWSearch
|
||||
<li>WWWStop
|
||||
<li>Space
|
||||
<li>Exclaim
|
||||
<li>DoubleQuote
|
||||
<li>Number
|
||||
<li>Dollar
|
||||
<li>Percent
|
||||
<li>Ampersand
|
||||
<li>Apostrophe
|
||||
<li>ParenthesisL
|
||||
<li>ParenthesisR
|
||||
<li>Asterisk
|
||||
<li>Plus
|
||||
<li>Comma
|
||||
<li>Minus
|
||||
<li>Period
|
||||
<li>Slash
|
||||
<li>Colon
|
||||
<li>Semicolon
|
||||
<li>Less
|
||||
<li>Equal
|
||||
<li>Greater
|
||||
<li>Question
|
||||
<li>At
|
||||
<li>BracketL
|
||||
<li>Backslash
|
||||
<li>BracketR
|
||||
<li>Circumflex
|
||||
<li>Underscore
|
||||
<li>Grave
|
||||
<li>BraceL
|
||||
<li>Bar
|
||||
<li>BraceR
|
||||
<li>Tilde
|
||||
</ul></span>
|
||||
Additionally, a name of the form <span class="code">\uXXXX</span> where
|
||||
<span class="code">XXXX</span> is a hexadecimal number is interpreted as
|
||||
a unicode character code.
|
||||
Key and modifier names are case-insensitive. Keys that don't exist on
|
||||
the keyboard or in the default keyboard layout will not work.
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
44
doc/contact.html
Normal file
44
doc/contact.html
Normal file
@@ -0,0 +1,44 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy Contact Info</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
Use the following addresses to contact the synergy project:
|
||||
</p><p>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td align="right">Bug reports:</td>
|
||||
<td> </td>
|
||||
<td><a target="_top" href="http://sourceforge.net/tracker/?func=add&group_id=59275&atid=490467">Add Synergy Bug</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Help:</td>
|
||||
<td> </td>
|
||||
<td><span class="fakelink">synergy-help@groundhog.pair.<span class="hide">.no_spam</span>com</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">General:</td>
|
||||
<td> </td>
|
||||
<td><span class="fakelink">crs23@users.sourceforge.<span class="hide">.no_spam</span>net</span></td>
|
||||
</tr>
|
||||
</table>
|
||||
</p><p>
|
||||
To avoid spam bots, the above email addresses have ".no_spam"
|
||||
hidden near the end. If you copy and paste the text be sure to
|
||||
remove it.
|
||||
</p><p>
|
||||
Please check the
|
||||
<a target="_top" href="http://sourceforge.net/tracker/?func=browse&group_id=59275&atid=490467">
|
||||
bug list</a> before reporting a bug. You may also find answers at the
|
||||
synergy <a target="_top" href="http://sourceforge.net/forum/?group_id=59275">forums</a>.
|
||||
Emails for help asking questions answered on this site will go unanswered.
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
81
doc/developer.html
Normal file
81
doc/developer.html
Normal file
@@ -0,0 +1,81 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy Developer Documentation</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
Synergy is reasonably well commented so reading the source code
|
||||
should be enough to understand particular pieces. See the
|
||||
<span class="code">doc/PORTING</span>
|
||||
file in the synergy source code for more high-level information.
|
||||
</p><p>
|
||||
</p><h4>How it works</h4><p>
|
||||
</p><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
|
||||
<span class="code">doc/PORTING</span> file in the synergy source
|
||||
code for more information.
|
||||
</p><p>
|
||||
</p><h4>Auto-generated Documentation</h4><p>
|
||||
</p><p>
|
||||
Synergy can automatically generate documentation from the comments
|
||||
in the code using <a target="_top" href="http://www.doxygen.org/">doxygen</a>.
|
||||
Use <span class="command">make doxygen</span> to build it yourself
|
||||
from the source code into the <span class="code">doc/doxygen/html</span>
|
||||
directory.
|
||||
</p>
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
898
doc/doxygen.cfg.in
Normal file
898
doc/doxygen.cfg.in
Normal file
@@ -0,0 +1,898 @@
|
||||
# Doxyfile 1.2.13.1
|
||||
|
||||
# This file describes the settings to be used by the documentation system
|
||||
# doxygen (www.doxygen.org) for a project
|
||||
#
|
||||
# All text after a hash (#) is considered a comment and will be ignored
|
||||
# The format is:
|
||||
# TAG = value [value, ...]
|
||||
# For lists items can also be appended using:
|
||||
# TAG += value [value, ...]
|
||||
# Values that contain spaces should be placed between quotes (" ")
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
|
||||
# by quotes) that should identify the project.
|
||||
|
||||
PROJECT_NAME = @PACKAGE@
|
||||
|
||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
|
||||
# This could be handy for archiving the generated documentation or
|
||||
# if some version control system is used.
|
||||
|
||||
PROJECT_NUMBER = @VERSION@
|
||||
|
||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
|
||||
# base path where the generated documentation will be put.
|
||||
# If a relative path is entered, it will be relative to the location
|
||||
# where doxygen was started. If left blank the current directory will be used.
|
||||
|
||||
OUTPUT_DIRECTORY = doc/doxygen
|
||||
|
||||
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
|
||||
# documentation generated by doxygen is written. Doxygen will use this
|
||||
# information to generate all constant output in the proper language.
|
||||
# The default language is English, other supported languages are:
|
||||
# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French,
|
||||
# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish,
|
||||
# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
|
||||
|
||||
OUTPUT_LANGUAGE = English
|
||||
|
||||
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
|
||||
# documentation are documented, even if no documentation was available.
|
||||
# Private class members and static file members will be hidden unless
|
||||
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
|
||||
|
||||
EXTRACT_ALL = NO
|
||||
|
||||
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
|
||||
# will be included in the documentation.
|
||||
|
||||
EXTRACT_PRIVATE = NO
|
||||
|
||||
# If the EXTRACT_STATIC tag is set to YES all static members of a file
|
||||
# will be included in the documentation.
|
||||
|
||||
EXTRACT_STATIC = NO
|
||||
|
||||
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
|
||||
# defined locally in source files will be included in the documentation.
|
||||
# If set to NO only classes defined in header files are included.
|
||||
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
|
||||
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
|
||||
# undocumented members of documented classes, files or namespaces.
|
||||
# If set to NO (the default) these members will be included in the
|
||||
# various overviews, but no documentation section is generated.
|
||||
# This option has no effect if EXTRACT_ALL is enabled.
|
||||
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
|
||||
# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
|
||||
# undocumented classes that are normally visible in the class hierarchy.
|
||||
# If set to NO (the default) these class will be included in the various
|
||||
# overviews. This option has no effect if EXTRACT_ALL is enabled.
|
||||
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
|
||||
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
|
||||
# include brief member descriptions after the members that are listed in
|
||||
# the file and class documentation (similar to JavaDoc).
|
||||
# Set to NO to disable this.
|
||||
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
|
||||
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
|
||||
# the brief description of a member or function before the detailed description.
|
||||
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
|
||||
# brief descriptions will be completely suppressed.
|
||||
|
||||
REPEAT_BRIEF = YES
|
||||
|
||||
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
|
||||
# Doxygen will generate a detailed section even if there is only a brief
|
||||
# description.
|
||||
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
|
||||
# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited
|
||||
# members of a class in the documentation of that class as if those members were
|
||||
# ordinary class members. Constructors, destructors and assignment operators of
|
||||
# the base classes will not be shown.
|
||||
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
|
||||
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
|
||||
# path before files name in the file list and in the header files. If set
|
||||
# to NO the shortest path that makes the file name unique will be used.
|
||||
|
||||
FULL_PATH_NAMES = NO
|
||||
|
||||
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
|
||||
# can be used to strip a user defined part of the path. Stripping is
|
||||
# only done if one of the specified strings matches the left-hand part of
|
||||
# the path. It is allowed to use relative paths in the argument list.
|
||||
|
||||
STRIP_FROM_PATH =
|
||||
|
||||
# The INTERNAL_DOCS tag determines if documentation
|
||||
# that is typed after a \internal command is included. If the tag is set
|
||||
# to NO (the default) then the documentation will be excluded.
|
||||
# Set it to YES to include the internal documentation.
|
||||
|
||||
INTERNAL_DOCS = NO
|
||||
|
||||
# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
|
||||
# doxygen to hide any special comment blocks from generated source code
|
||||
# fragments. Normal C and C++ comments will always remain visible.
|
||||
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
|
||||
# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
|
||||
# file names in lower case letters. If set to YES upper case letters are also
|
||||
# allowed. This is useful if you have classes or files whose names only differ
|
||||
# in case and if your file system supports case sensitive file names. Windows
|
||||
# users are adviced to set this option to NO.
|
||||
|
||||
CASE_SENSE_NAMES = YES
|
||||
|
||||
# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
|
||||
# (but less readable) file names. This can be useful is your file systems
|
||||
# doesn't support long names like on DOS, Mac, or CD-ROM.
|
||||
|
||||
SHORT_NAMES = NO
|
||||
|
||||
# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
|
||||
# will show members with their full class and namespace scopes in the
|
||||
# documentation. If set to YES the scope will be hidden.
|
||||
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
|
||||
# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
|
||||
# will generate a verbatim copy of the header file for each class for
|
||||
# which an include is specified. Set to NO to disable this.
|
||||
|
||||
VERBATIM_HEADERS = YES
|
||||
|
||||
# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
|
||||
# will put list of the files that are included by a file in the documentation
|
||||
# of that file.
|
||||
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
|
||||
# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
|
||||
# will interpret the first line (until the first dot) of a JavaDoc-style
|
||||
# comment as the brief description. If set to NO, the JavaDoc
|
||||
# comments will behave just like the Qt-style comments (thus requiring an
|
||||
# explict @brief command for a brief description.
|
||||
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
|
||||
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
|
||||
# member inherits the documentation from any documented member that it
|
||||
# reimplements.
|
||||
|
||||
INHERIT_DOCS = YES
|
||||
|
||||
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
|
||||
# is inserted in the documentation for inline members.
|
||||
|
||||
INLINE_INFO = YES
|
||||
|
||||
# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
|
||||
# will sort the (detailed) documentation of file and class members
|
||||
# alphabetically by member name. If set to NO the members will appear in
|
||||
# declaration order.
|
||||
|
||||
SORT_MEMBER_DOCS = YES
|
||||
|
||||
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
|
||||
# tag is set to YES, then doxygen will reuse the documentation of the first
|
||||
# member in the group (if any) for the other members of the group. By default
|
||||
# all members of a group must be documented explicitly.
|
||||
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
|
||||
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
|
||||
# Doxygen uses this value to replace tabs by spaces in code fragments.
|
||||
|
||||
TAB_SIZE = 4
|
||||
|
||||
# The GENERATE_TODOLIST tag can be used to enable (YES) or
|
||||
# disable (NO) the todo list. This list is created by putting \todo
|
||||
# commands in the documentation.
|
||||
|
||||
GENERATE_TODOLIST = YES
|
||||
|
||||
# The GENERATE_TESTLIST tag can be used to enable (YES) or
|
||||
# disable (NO) the test list. This list is created by putting \test
|
||||
# commands in the documentation.
|
||||
|
||||
GENERATE_TESTLIST = YES
|
||||
|
||||
# The GENERATE_BUGLIST tag can be used to enable (YES) or
|
||||
# disable (NO) the bug list. This list is created by putting \bug
|
||||
# commands in the documentation.
|
||||
|
||||
GENERATE_BUGLIST = YES
|
||||
|
||||
# This tag can be used to specify a number of aliases that acts
|
||||
# as commands in the documentation. An alias has the form "name=value".
|
||||
# For example adding "sideeffect=\par Side Effects:\n" will allow you to
|
||||
# put the command \sideeffect (or @sideeffect) in the documentation, which
|
||||
# will result in a user defined paragraph with heading "Side Effects:".
|
||||
# You can put \n's in the value part of an alias to insert newlines.
|
||||
|
||||
ALIASES =
|
||||
|
||||
# The ENABLED_SECTIONS tag can be used to enable conditional
|
||||
# documentation sections, marked by \if sectionname ... \endif.
|
||||
|
||||
ENABLED_SECTIONS =
|
||||
|
||||
# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
|
||||
# the initial value of a variable or define consist of for it to appear in
|
||||
# the documentation. If the initializer consists of more lines than specified
|
||||
# here it will be hidden. Use a value of 0 to hide initializers completely.
|
||||
# The appearance of the initializer of individual variables and defines in the
|
||||
# documentation can be controlled using \showinitializer or \hideinitializer
|
||||
# command in the documentation regardless of this setting.
|
||||
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
|
||||
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
|
||||
# only. Doxygen will then generate output that is more tailored for C.
|
||||
# For instance some of the names that are used will be different. The list
|
||||
# of all members will be omitted, etc.
|
||||
|
||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||
|
||||
# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
|
||||
# at the bottom of the documentation of classes and structs. If set to YES the
|
||||
# list will mention the files that were used to generate the documentation.
|
||||
|
||||
SHOW_USED_FILES = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# The QUIET tag can be used to turn on/off the messages that are generated
|
||||
# by doxygen. Possible values are YES and NO. If left blank NO is used.
|
||||
|
||||
QUIET = NO
|
||||
|
||||
# The WARNINGS tag can be used to turn on/off the warning messages that are
|
||||
# generated by doxygen. Possible values are YES and NO. If left blank
|
||||
# NO is used.
|
||||
|
||||
WARNINGS = YES
|
||||
|
||||
# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
|
||||
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
|
||||
# automatically be disabled.
|
||||
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
|
||||
# The WARN_FORMAT tag determines the format of the warning messages that
|
||||
# doxygen can produce. The string should contain the $file, $line, and $text
|
||||
# tags, which will be replaced by the file and line number from which the
|
||||
# warning originated and the warning text.
|
||||
|
||||
WARN_FORMAT =
|
||||
|
||||
# The WARN_LOGFILE tag can be used to specify a file to which warning
|
||||
# and error messages should be written. If left blank the output is written
|
||||
# to stderr.
|
||||
|
||||
WARN_LOGFILE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# The INPUT tag can be used to specify the files and/or directories that contain
|
||||
# documented source files. You may enter file names like "myfile.cpp" or
|
||||
# directories like "/usr/src/myproject". Separate the files or directories
|
||||
# with spaces.
|
||||
|
||||
INPUT = .
|
||||
|
||||
# If the value of the INPUT tag contains directories, you can use the
|
||||
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
|
||||
# and *.h) to filter out the source-files in the directories. If left
|
||||
# blank the following patterns are tested:
|
||||
# *.c *.cc *.cxx *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp
|
||||
# *.h++ *.idl
|
||||
|
||||
FILE_PATTERNS = *.cpp *.h
|
||||
|
||||
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
|
||||
# should be searched for input files as well. Possible values are YES and NO.
|
||||
# If left blank NO is used.
|
||||
|
||||
RECURSIVE = YES
|
||||
|
||||
# The EXCLUDE tag can be used to specify files and/or directories that should
|
||||
# excluded from the INPUT source files. This way you can easily exclude a
|
||||
# subdirectory from a directory tree whose root is specified with the INPUT tag.
|
||||
|
||||
EXCLUDE =
|
||||
|
||||
# If the value of the INPUT tag contains directories, you can use the
|
||||
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
|
||||
# certain files from those directories.
|
||||
|
||||
EXCLUDE_PATTERNS =
|
||||
|
||||
# The EXAMPLE_PATH tag can be used to specify one or more files or
|
||||
# directories that contain example code fragments that are included (see
|
||||
# the \include command).
|
||||
|
||||
EXAMPLE_PATH =
|
||||
|
||||
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
|
||||
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
|
||||
# and *.h) to filter out the source-files in the directories. If left
|
||||
# blank all files are included.
|
||||
|
||||
EXAMPLE_PATTERNS =
|
||||
|
||||
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
|
||||
# searched for input files to be used with the \include or \dontinclude
|
||||
# commands irrespective of the value of the RECURSIVE tag.
|
||||
# Possible values are YES and NO. If left blank NO is used.
|
||||
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
|
||||
# The IMAGE_PATH tag can be used to specify one or more files or
|
||||
# directories that contain image that are included in the documentation (see
|
||||
# the \image command).
|
||||
|
||||
IMAGE_PATH =
|
||||
|
||||
# The INPUT_FILTER tag can be used to specify a program that doxygen should
|
||||
# invoke to filter for each input file. Doxygen will invoke the filter program
|
||||
# by executing (via popen()) the command <filter> <input-file>, where <filter>
|
||||
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
|
||||
# input file. Doxygen will then use the output that the filter program writes
|
||||
# to standard output.
|
||||
|
||||
INPUT_FILTER =
|
||||
|
||||
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
|
||||
# INPUT_FILTER) will be used to filter the input files when producing source
|
||||
# files to browse.
|
||||
|
||||
FILTER_SOURCE_FILES = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the SOURCE_BROWSER tag is set to YES then a list of source files will
|
||||
# be generated. Documented entities will be cross-referenced with these sources.
|
||||
|
||||
SOURCE_BROWSER = YES
|
||||
|
||||
# Setting the INLINE_SOURCES tag to YES will include the body
|
||||
# of functions and classes directly in the documentation.
|
||||
|
||||
INLINE_SOURCES = NO
|
||||
|
||||
# If the REFERENCED_BY_RELATION tag is set to YES (the default)
|
||||
# then for each documented function all documented
|
||||
# functions referencing it will be listed.
|
||||
|
||||
REFERENCED_BY_RELATION = YES
|
||||
|
||||
# If the REFERENCES_RELATION tag is set to YES (the default)
|
||||
# then for each documented function all documented entities
|
||||
# called/used by that function will be listed.
|
||||
|
||||
REFERENCES_RELATION = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
|
||||
# of all compounds will be generated. Enable this if the project
|
||||
# contains a lot of classes, structs, unions or interfaces.
|
||||
|
||||
ALPHABETICAL_INDEX = YES
|
||||
|
||||
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
|
||||
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
|
||||
# in which this list will be split (can be a number in the range [1..20])
|
||||
|
||||
COLS_IN_ALPHA_INDEX = 3
|
||||
|
||||
# In case all classes in a project start with a common prefix, all
|
||||
# classes will be put under the same header in the alphabetical index.
|
||||
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
|
||||
# should be ignored while generating the index headers.
|
||||
|
||||
IGNORE_PREFIX =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
|
||||
# generate HTML output.
|
||||
|
||||
GENERATE_HTML = YES
|
||||
|
||||
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
|
||||
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||
# put in front of it. If left blank `html' will be used as the default path.
|
||||
|
||||
HTML_OUTPUT =
|
||||
|
||||
# The HTML_HEADER tag can be used to specify a personal HTML header for
|
||||
# each generated HTML page. If it is left blank doxygen will generate a
|
||||
# standard header.
|
||||
|
||||
HTML_HEADER =
|
||||
|
||||
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
|
||||
# each generated HTML page. If it is left blank doxygen will generate a
|
||||
# standard footer.
|
||||
|
||||
HTML_FOOTER =
|
||||
|
||||
# The HTML_STYLESHEET tag can be used to specify a user defined cascading
|
||||
# style sheet that is used by each HTML page. It can be used to
|
||||
# fine-tune the look of the HTML output. If the tag is left blank doxygen
|
||||
# will generate a default style sheet
|
||||
|
||||
HTML_STYLESHEET =
|
||||
|
||||
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
|
||||
# files or namespaces will be aligned in HTML using tables. If set to
|
||||
# NO a bullet list will be used.
|
||||
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
|
||||
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
|
||||
# will be generated that can be used as input for tools like the
|
||||
# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
|
||||
# of the generated HTML documentation.
|
||||
|
||||
GENERATE_HTMLHELP = NO
|
||||
|
||||
# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
|
||||
# controls if a separate .chi index file is generated (YES) or that
|
||||
# it should be included in the master .chm file (NO).
|
||||
|
||||
GENERATE_CHI = NO
|
||||
|
||||
# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
|
||||
# controls whether a binary table of contents is generated (YES) or a
|
||||
# normal table of contents (NO) in the .chm file.
|
||||
|
||||
BINARY_TOC = NO
|
||||
|
||||
# The TOC_EXPAND flag can be set to YES to add extra items for group members
|
||||
# to the contents of the Html help documentation and to the tree view.
|
||||
|
||||
TOC_EXPAND = NO
|
||||
|
||||
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
|
||||
# top of each HTML page. The value NO (the default) enables the index and
|
||||
# the value YES disables it.
|
||||
|
||||
DISABLE_INDEX = NO
|
||||
|
||||
# This tag can be used to set the number of enum values (range [1..20])
|
||||
# that doxygen will group on one line in the generated HTML documentation.
|
||||
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
|
||||
# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
|
||||
# generated containing a tree-like index structure (just like the one that
|
||||
# is generated for HTML Help). For this to work a browser that supports
|
||||
# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+,
|
||||
# or Internet explorer 4.0+). Note that for large projects the tree generation
|
||||
# can take a very long time. In such cases it is better to disable this feature.
|
||||
# Windows users are probably better off using the HTML help feature.
|
||||
|
||||
GENERATE_TREEVIEW = NO
|
||||
|
||||
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
|
||||
# used to set the initial width (in pixels) of the frame in which the tree
|
||||
# is shown.
|
||||
|
||||
TREEVIEW_WIDTH = 250
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
|
||||
# generate Latex output.
|
||||
|
||||
GENERATE_LATEX = NO
|
||||
|
||||
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
|
||||
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||
# put in front of it. If left blank `latex' will be used as the default path.
|
||||
|
||||
LATEX_OUTPUT =
|
||||
|
||||
# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
|
||||
# LaTeX documents. This may be useful for small projects and may help to
|
||||
# save some trees in general.
|
||||
|
||||
COMPACT_LATEX = NO
|
||||
|
||||
# The PAPER_TYPE tag can be used to set the paper type that is used
|
||||
# by the printer. Possible values are: a4, a4wide, letter, legal and
|
||||
# executive. If left blank a4wide will be used.
|
||||
|
||||
PAPER_TYPE = a4wide
|
||||
|
||||
# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
|
||||
# packages that should be included in the LaTeX output.
|
||||
|
||||
EXTRA_PACKAGES =
|
||||
|
||||
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
|
||||
# the generated latex document. The header should contain everything until
|
||||
# the first chapter. If it is left blank doxygen will generate a
|
||||
# standard header. Notice: only use this tag if you know what you are doing!
|
||||
|
||||
LATEX_HEADER =
|
||||
|
||||
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
|
||||
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
|
||||
# contain links (just like the HTML output) instead of page references
|
||||
# This makes the output suitable for online browsing using a pdf viewer.
|
||||
|
||||
PDF_HYPERLINKS = NO
|
||||
|
||||
# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
|
||||
# plain latex in the generated Makefile. Set this option to YES to get a
|
||||
# higher quality PDF documentation.
|
||||
|
||||
USE_PDFLATEX = NO
|
||||
|
||||
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
|
||||
# command to the generated LaTeX files. This will instruct LaTeX to keep
|
||||
# running if errors occur, instead of asking the user for help.
|
||||
# This option is also used when generating formulas in HTML.
|
||||
|
||||
LATEX_BATCHMODE = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
|
||||
# The RTF output is optimised for Word 97 and may not look very pretty with
|
||||
# other RTF readers or editors.
|
||||
|
||||
GENERATE_RTF = NO
|
||||
|
||||
# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
|
||||
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||
# put in front of it. If left blank `rtf' will be used as the default path.
|
||||
|
||||
RTF_OUTPUT =
|
||||
|
||||
# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
|
||||
# RTF documents. This may be useful for small projects and may help to
|
||||
# save some trees in general.
|
||||
|
||||
COMPACT_RTF = NO
|
||||
|
||||
# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
|
||||
# will contain hyperlink fields. The RTF file will
|
||||
# contain links (just like the HTML output) instead of page references.
|
||||
# This makes the output suitable for online browsing using WORD or other
|
||||
# programs which support those fields.
|
||||
# Note: wordpad (write) and others do not support links.
|
||||
|
||||
RTF_HYPERLINKS = NO
|
||||
|
||||
# Load stylesheet definitions from file. Syntax is similar to doxygen's
|
||||
# config file, i.e. a series of assigments. You only have to provide
|
||||
# replacements, missing definitions are set to their default value.
|
||||
|
||||
RTF_STYLESHEET_FILE =
|
||||
|
||||
# Set optional variables used in the generation of an rtf document.
|
||||
# Syntax is similar to doxygen's config file.
|
||||
|
||||
RTF_EXTENSIONS_FILE =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
|
||||
# generate man pages
|
||||
|
||||
GENERATE_MAN = NO
|
||||
|
||||
# The MAN_OUTPUT tag is used to specify where the man pages will be put.
|
||||
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||
# put in front of it. If left blank `man' will be used as the default path.
|
||||
|
||||
MAN_OUTPUT =
|
||||
|
||||
# The MAN_EXTENSION tag determines the extension that is added to
|
||||
# the generated man pages (default is the subroutine's section .3)
|
||||
|
||||
MAN_EXTENSION =
|
||||
|
||||
# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
|
||||
# then it will generate one additional man file for each entity
|
||||
# documented in the real man page(s). These additional files
|
||||
# only source the real man page, but without them the man command
|
||||
# would be unable to find the correct page. The default is NO.
|
||||
|
||||
MAN_LINKS = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_XML tag is set to YES Doxygen will
|
||||
# generate an XML file that captures the structure of
|
||||
# the code including all documentation. Note that this
|
||||
# feature is still experimental and incomplete at the
|
||||
# moment.
|
||||
|
||||
GENERATE_XML = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
|
||||
# generate an AutoGen Definitions (see autogen.sf.net) file
|
||||
# that captures the structure of the code including all
|
||||
# documentation. Note that this feature is still experimental
|
||||
# and incomplete at the moment.
|
||||
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
|
||||
# evaluate all C-preprocessor directives found in the sources and include
|
||||
# files.
|
||||
|
||||
ENABLE_PREPROCESSING = YES
|
||||
|
||||
# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
|
||||
# names in the source code. If set to NO (the default) only conditional
|
||||
# compilation will be performed. Macro expansion can be done in a controlled
|
||||
# way by setting EXPAND_ONLY_PREDEF to YES.
|
||||
|
||||
MACRO_EXPANSION = YES
|
||||
|
||||
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
|
||||
# then the macro expansion is limited to the macros specified with the
|
||||
# PREDEFINED and EXPAND_AS_PREDEFINED tags.
|
||||
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
|
||||
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
|
||||
# in the INCLUDE_PATH (see below) will be search if a #include is found.
|
||||
|
||||
SEARCH_INCLUDES = YES
|
||||
|
||||
# The INCLUDE_PATH tag can be used to specify one or more directories that
|
||||
# contain include files that are not input files but should be processed by
|
||||
# the preprocessor.
|
||||
|
||||
INCLUDE_PATH =
|
||||
|
||||
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
|
||||
# patterns (like *.h and *.hpp) to filter out the header-files in the
|
||||
# directories. If left blank, the patterns specified with FILE_PATTERNS will
|
||||
# be used.
|
||||
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
|
||||
# The PREDEFINED tag can be used to specify one or more macro names that
|
||||
# are defined before the preprocessor is started (similar to the -D option of
|
||||
# gcc). The argument of the tag is a list of macros of the form: name
|
||||
# or name=definition (no spaces). If the definition and the = are
|
||||
# omitted =1 is assumed.
|
||||
|
||||
PREDEFINED =
|
||||
|
||||
# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
|
||||
# this tag can be used to specify a list of macro names that should be expanded.
|
||||
# The macro definition that is found in the sources will be used.
|
||||
# Use the PREDEFINED tag if you want to use a different macro definition.
|
||||
|
||||
EXPAND_AS_DEFINED =
|
||||
|
||||
# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
|
||||
# doxygen's preprocessor will remove all function-like macros that are alone
|
||||
# on a line and do not end with a semicolon. Such function macros are typically
|
||||
# used for boiler-plate code, and will confuse the parser if not removed.
|
||||
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# The TAGFILES tag can be used to specify one or more tagfiles.
|
||||
|
||||
TAGFILES =
|
||||
|
||||
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
|
||||
# a tag file that is based on the input files it reads.
|
||||
|
||||
GENERATE_TAGFILE =
|
||||
|
||||
# If the ALLEXTERNALS tag is set to YES all external classes will be listed
|
||||
# in the class index. If set to NO only the inherited external classes
|
||||
# will be listed.
|
||||
|
||||
ALLEXTERNALS = NO
|
||||
|
||||
# The PERL_PATH should be the absolute path and name of the perl script
|
||||
# interpreter (i.e. the result of `which perl').
|
||||
|
||||
PERL_PATH =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
|
||||
# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or
|
||||
# super classes. Setting the tag to NO turns the diagrams off. Note that this
|
||||
# option is superceded by the HAVE_DOT option below. This is only a fallback. It is
|
||||
# recommended to install and use dot, since it yield more powerful graphs.
|
||||
|
||||
CLASS_DIAGRAMS = NO
|
||||
|
||||
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
|
||||
# available from the path. This tool is part of Graphviz, a graph visualization
|
||||
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
|
||||
# have no effect if this option is set to NO (the default)
|
||||
|
||||
HAVE_DOT = @HAVE_DOT@
|
||||
|
||||
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
|
||||
# will generate a graph for each documented class showing the direct and
|
||||
# indirect inheritance relations. Setting this tag to YES will force the
|
||||
# the CLASS_DIAGRAMS tag to NO.
|
||||
|
||||
CLASS_GRAPH = YES
|
||||
|
||||
# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
|
||||
# will generate a graph for each documented class showing the direct and
|
||||
# indirect implementation dependencies (inheritance, containment, and
|
||||
# class references variables) of the class with other documented classes.
|
||||
|
||||
COLLABORATION_GRAPH = YES
|
||||
|
||||
# If set to YES, the inheritance and collaboration graphs will show the
|
||||
# relations between templates and their instances.
|
||||
|
||||
TEMPLATE_RELATIONS = YES
|
||||
|
||||
# If set to YES, the inheritance and collaboration graphs will hide
|
||||
# inheritance and usage relations if the target is undocumented
|
||||
# or is not a class.
|
||||
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
|
||||
# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
|
||||
# tags are set to YES then doxygen will generate a graph for each documented
|
||||
# file showing the direct and indirect include dependencies of the file with
|
||||
# other documented files.
|
||||
|
||||
INCLUDE_GRAPH = YES
|
||||
|
||||
# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
|
||||
# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
|
||||
# documented header file showing the documented files that directly or
|
||||
# indirectly include this file.
|
||||
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
|
||||
# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
|
||||
# will graphical hierarchy of all classes instead of a textual one.
|
||||
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
|
||||
# The tag DOT_PATH can be used to specify the path where the dot tool can be
|
||||
# found. If left blank, it is assumed the dot tool can be found on the path.
|
||||
|
||||
DOT_PATH =
|
||||
|
||||
# The DOTFILE_DIRS tag can be used to specify one or more directories that
|
||||
# contain dot files that are included in the documentation (see the
|
||||
# \dotfile command).
|
||||
|
||||
DOTFILE_DIRS =
|
||||
|
||||
# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
|
||||
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
|
||||
# this value, doxygen will try to truncate the graph, so that it fits within
|
||||
# the specified constraint. Beware that most browsers cannot cope with very
|
||||
# large images.
|
||||
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
|
||||
# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
|
||||
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
|
||||
# this value, doxygen will try to truncate the graph, so that it fits within
|
||||
# the specified constraint. Beware that most browsers cannot cope with very
|
||||
# large images.
|
||||
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
|
||||
# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
|
||||
# generate a legend page explaining the meaning of the various boxes and
|
||||
# arrows in the dot generated graphs.
|
||||
|
||||
GENERATE_LEGEND = YES
|
||||
|
||||
# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
|
||||
# remove the intermedate dot files that are used to generate
|
||||
# the various graphs.
|
||||
|
||||
DOT_CLEANUP = YES
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
# The SEARCHENGINE tag specifies whether or not a search engine should be
|
||||
# used. If set to NO the values of all tags below this one will be ignored.
|
||||
|
||||
SEARCHENGINE = NO
|
||||
|
||||
# The CGI_NAME tag should be the name of the CGI script that
|
||||
# starts the search engine (doxysearch) with the correct parameters.
|
||||
# A script with this name will be generated by doxygen.
|
||||
|
||||
CGI_NAME =
|
||||
|
||||
# The CGI_URL tag should be the absolute URL to the directory where the
|
||||
# cgi binaries are located. See the documentation of your http daemon for
|
||||
# details.
|
||||
|
||||
CGI_URL =
|
||||
|
||||
# The DOC_URL tag should be the absolute URL to the directory where the
|
||||
# documentation is located. If left blank the absolute path to the
|
||||
# documentation, with file:// prepended to it, will be used.
|
||||
|
||||
DOC_URL =
|
||||
|
||||
# The DOC_ABSPATH tag should be the absolute path to the directory where the
|
||||
# documentation is located. If left blank the directory on the local machine
|
||||
# will be used.
|
||||
|
||||
DOC_ABSPATH =
|
||||
|
||||
# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
|
||||
# is installed.
|
||||
|
||||
BIN_ABSPATH =
|
||||
|
||||
# The EXT_DOC_PATHS tag can be used to specify one or more paths to
|
||||
# documentation generated for other projects. This allows doxysearch to search
|
||||
# the documentation for these projects as well.
|
||||
|
||||
EXT_DOC_PATHS =
|
||||
266
doc/faq.html
Normal file
266
doc/faq.html
Normal file
@@ -0,0 +1,266 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy Frequently Asked Questions</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p></p>
|
||||
<h3>Synergy Frequently Asked Questions</h3>
|
||||
</p><p>
|
||||
<h4>Questions</h4>
|
||||
<ol>
|
||||
<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, Num-Lock, Scroll-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>
|
||||
<li><a href="#faq19">How do I stop my game from minimizing when I leave the screen?</a>
|
||||
</ol>
|
||||
<h4>Answers</h4>
|
||||
<ol>
|
||||
<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
|
||||
primary screens 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 configured to autostart when the computer starts for
|
||||
this to work.)
|
||||
</p><p>
|
||||
On a primary screen running on an OS X system, you can use
|
||||
ctrl+command+del. Using the pause key isn't necessary since OS X
|
||||
doesn't treat ctrl+command+del differently. And using the pause
|
||||
key isn't usually possible because there isn't one on most OS X
|
||||
systems. Use command instead of option/alt because
|
||||
the command key, not the option/alt key, maps to alt on windows.
|
||||
The reason is because the command key is in the same physical
|
||||
location and performs the same general function (menu shortcuts)
|
||||
as alt on a windows system. This mapping can be modified in
|
||||
the configuration.
|
||||
</p><p>
|
||||
On mac laptops, the key labeled "delete" is actually backspace
|
||||
and ctrl+command+delete won't work. However fn+delete really
|
||||
is delete so fn+ctrl+command+delete will act as ctrl+alt+del
|
||||
on a windows secondary screen.
|
||||
</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><p>
|
||||
<pre>
|
||||
ssh -f -N -L 24800:<span class="arg">server-hostname</span>:24800 <span class="arg">server-hostname</span>
|
||||
</pre>
|
||||
</p><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 target="_top" href="http://www.openssh.com/">OpenSSH</a>. For
|
||||
Windows there's a port of OpenSSH using
|
||||
<a target="_top" 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, Num-Lock, Scroll-Lock keys act funny?</span>
|
||||
<p>
|
||||
Some systems treat the Caps-Lock, Num-Lock, and Scroll-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, any or all of these lines as appropriate:
|
||||
</p><p>
|
||||
<pre>
|
||||
halfDuplexCapsLock = true
|
||||
halfDuplexNumLock = true
|
||||
halfDuplexScrollLock = true
|
||||
</pre>
|
||||
</p><p>
|
||||
Then restart synergy on the server or reload the configuration.
|
||||
</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. See the
|
||||
<a href="trouble.html">troublshooting</a> page for more help.
|
||||
</p>
|
||||
<li><a name="faq13"></a><span class="fakelink">Linking fails on Solaris. What's wrong?</span>
|
||||
<p>
|
||||
Did you add
|
||||
</p><p>
|
||||
<pre>
|
||||
<nobr>--x-includes=/usr/openwin/include --x-libraries=/usr/openwin/lib</nobr>
|
||||
</pre>
|
||||
</p><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>
|
||||
<li><a name="faq19"></a><span class="fakelink">How do I stop my game from minimizing when I leave the screen?</span>
|
||||
<p>
|
||||
Many full screen applications, particularly games, automatically
|
||||
minimize when they're no longer the active (foreground) application
|
||||
on Microsoft Windows. The synergy server normally becomes the foreground
|
||||
when you switch to another screen in order to more reliably capture all
|
||||
user input causing those full screen applications to minimize. To
|
||||
prevent synergy from stealing the foreground just click "Options..."
|
||||
and check "Don't take foreground window on Windows servers." If you
|
||||
turn this on then be aware that synergy may not function correctly when
|
||||
certain programs, particularly the command prompt, are the foreground
|
||||
when you switch to other screens. Simply make a different program the
|
||||
foreground before switching to work around that.
|
||||
</p>
|
||||
</ol>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
30
doc/history.html
Normal file
30
doc/history.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy History</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
</p><h3>Synergy History</h3><p>
|
||||
</p><p>
|
||||
The first incarnation of synergy was CosmoSynergy, created by
|
||||
Richard Lee and Adam Feder then at Cosmo Software, Inc., a
|
||||
subsidiary of SGI (nee Silicon Graphics, Inc.), at the end of
|
||||
1996. They wrote it, and Chris Schoeneman contributed, to
|
||||
solve a problem: most of the engineers in Cosmo Software had
|
||||
both an Irix and a Windows box on their desks and switchboxes
|
||||
were expensive and annoying. CosmoSynergy was a great success
|
||||
but Cosmo Software declined to productize it and the company
|
||||
was later closed.
|
||||
</p><p>
|
||||
Synergy is a from-scratch reimplementation of CosmoSynergy.
|
||||
It provides most of the features of the original and adds a
|
||||
few improvements.
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
61
doc/home.html
Normal file
61
doc/home.html
Normal file
@@ -0,0 +1,61 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
</p><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. <a href="about.html">Learn more</a>
|
||||
about how it works.
|
||||
</p><p>
|
||||
Synergy is open source and released under the
|
||||
<a href="license.html#GPL">GNU Public License (GPL)</a>.
|
||||
</p><p>
|
||||
</p><h4>System Requirements</h4><p>
|
||||
</p><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</span>" 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 target="_top" 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),
|
||||
the cursor won't hide when not on the screen, and there may be problems
|
||||
with mouse wheel acceleration. Other problems should be
|
||||
<a target="_top" href="http://sourceforge.net/tracker/?func=add&group_id=59275&atid=490467">filed as bugs</a>.
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
BIN
doc/images/logo.gif
Normal file
BIN
doc/images/logo.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
BIN
doc/images/warp.gif
Normal file
BIN
doc/images/warp.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 67 KiB |
33
doc/index.html
Normal file
33
doc/index.html
Normal file
@@ -0,0 +1,33 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy</title>
|
||||
</head>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
pageName = (location.search ? location.search.substring(1) + location.hash : "home.html");
|
||||
document.write('<frameset rows="77,2,*" frameborder="no" framespacing="0" border="0">');
|
||||
document.write('<frame name="banner" noresize="yes" marginwidth="0" marginheight="0" scrolling="no" src="banner.html">');
|
||||
document.write('<frame name="border" noresize="yes" marginwidth="0" marginheight="0" scrolling="no" src="border.html">');
|
||||
document.write('<frameset cols="120,*">');
|
||||
document.write('<frame name="toc" noresize="yes" marginwidth="0" marginheight="0" scrolling="no" src="toc.html">');
|
||||
document.write('<frame name="page" noresize="yes" marginwidth="0" marginheight="0" scrolling="yes" src="' + pageName + '">');
|
||||
document.write('</frameset>');
|
||||
document.write('</frameset>');
|
||||
//-->
|
||||
</script>
|
||||
<noscript>
|
||||
<frameset rows="77,2,*" frameborder="no" framespacing="0" border="0">
|
||||
<frame name="banner" noresize="yes" marginwidth="0" marginheight="0" scrolling="no" src="banner.html">
|
||||
<frame name="border" noresize="yes" marginwidth="0" marginheight="0" scrolling="no" src="border.html">
|
||||
<frameset cols="120,*">
|
||||
<frame name="toc" noresize="yes" marginwidth="0" marginheight="0" scrolling="no" src="toc.html">
|
||||
<frame name="page" noresize="yes" marginwidth="0" marginheight="0" scrolling="yes" src="home.html">
|
||||
</frameset>
|
||||
</frameset>
|
||||
</noscript>
|
||||
</html>
|
||||
313
doc/license.html
Normal file
313
doc/license.html
Normal file
@@ -0,0 +1,313 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy License and Copyright</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
</p><h3>Synergy License and Copyright</h3><p>
|
||||
</p><p>
|
||||
Synergy is copyright (C) 2002 Chris Schoeneman.<br>
|
||||
Synergy is distributed under the GNU GENERAL PUBLIC LICENSE.
|
||||
</p><p>
|
||||
</p><h4><a name="GPL"></a>GNU GENERAL PUBLIC LICENSE</h4><p>
|
||||
<b>Version 2, June 1991</b>
|
||||
</p><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
|
||||
of this license document, but changing it is not allowed.
|
||||
</p><p>
|
||||
</p><h4>Preamble</h4><p>
|
||||
</p><p>
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
</p><p>
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
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
|
||||
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.
|
||||
</p><p>
|
||||
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.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
</p><p>
|
||||
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
|
||||
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
|
||||
rights.
|
||||
</p><p>
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
</p><p>
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
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
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
</p><p>
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
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.
|
||||
</p><p>
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
</p><p>
|
||||
</p><h4>GNU GENERAL PUBLIC LICENSE<br>
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</h4><p>
|
||||
</p><p>
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
</p><p>
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
</p><p>
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
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
|
||||
along with the Program.
|
||||
</p><p>
|
||||
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.
|
||||
</p><p>
|
||||
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
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
</p><p>
|
||||
<table><tr><td> </td>
|
||||
<td>
|
||||
</p><p>
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
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
|
||||
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
|
||||
parties under the terms of this License.
|
||||
</p><p>
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
</p><p>
|
||||
</td></tr></table>
|
||||
</p><p>
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
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
|
||||
this License, whose permissions for other licensees extend to the
|
||||
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
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
</p><p>
|
||||
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
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
</p><p>
|
||||
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
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
</p><p>
|
||||
<table><tr><td> </td>
|
||||
<td>
|
||||
</p><p>
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
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
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
</p><p>
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
</p><p>
|
||||
</td></tr></table>
|
||||
</p><p>
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
</p><p>
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
</p><p>
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
</p><p>
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
</p><p>
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
</p><p>
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
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
|
||||
refrain entirely from distribution of the Program.
|
||||
</p><p>
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
</p><p>
|
||||
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
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
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
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
</p><p>
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
</p><p>
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
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
|
||||
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
|
||||
address new problems or concerns.
|
||||
</p><p>
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
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
|
||||
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
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
</p><p>
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
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 promoting the sharing and reuse of software generally.
|
||||
</p><p>
|
||||
<b>NO WARRANTY</b>
|
||||
</p><p>
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE
|
||||
IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE
|
||||
COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM
|
||||
"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
|
||||
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
|
||||
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
</p><p>
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED
|
||||
TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY
|
||||
WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED
|
||||
ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
|
||||
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
|
||||
THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT
|
||||
LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
|
||||
LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
|
||||
PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
|
||||
HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
</p><p>
|
||||
<b>END OF TERMS AND CONDITIONS</b>
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
599
doc/news.html
Normal file
599
doc/news.html
Normal file
@@ -0,0 +1,599 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy News</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
<span class="date">Apr-02-2006</span> - Synergy 1.3.1 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Hot key screen switching now restores last cursor position
|
||||
<li>Fixed loss of hot keys when reloading configuration
|
||||
<li>Fixed autorepeating on win32 (no longer sending repeating key releases)
|
||||
<li>Fixed autorepeating on X11 (non-repeating keys were repeating)
|
||||
<li>Fixed AltGr issues on X11
|
||||
<li>Fixed modifier mapping bug on OS X client (caused wrong characters)
|
||||
<li>Fixed one way for modifiers to get stuck active on all platforms
|
||||
<li>Fixed bugs in win32 GUI
|
||||
<li>Removed alloca() from unix code (should fix FreeBSD build)
|
||||
<li>Added more debugging output for network problems
|
||||
<li>Fixed failure to detect some errors on X11
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Mar-22-2006</span> - Synergy 1.3.0 released
|
||||
</p><p>
|
||||
Made following additions:
|
||||
<ul>
|
||||
<li>Console window on win32 can now be closed (reopened from tray menu)
|
||||
<li>Can now change logging level on the fly from win32 tray menu
|
||||
<li>Added client keep alive (lost connections are now detected reliably)
|
||||
<li>Added support for linking portions of screen edges
|
||||
<li>Added version number to UI in win32
|
||||
<li>Added GUI for hot key configuration on win32
|
||||
<li>Hot keys can now perform actions on press and/or release
|
||||
<li>Added key down, key up, mouse down, and mouse up hot key actions
|
||||
<li>Key actions can be directed to particular screens
|
||||
<li>Hot keys can each perform multiple actions
|
||||
</ul>
|
||||
</p><p>
|
||||
Made following fixes:
|
||||
<ul>
|
||||
<li>Fixed AltGr key mappings (again)
|
||||
<li>Fixed assertion when pasting on X11
|
||||
<li>Fixed modifier keys in VMware on X11
|
||||
<li>OS X server now treats sends option/alt as AltGr or super depending on key
|
||||
<li>Improved handling of AltGr on win32
|
||||
<li>Fixed not removing client when connection is lost
|
||||
<li>Clients now detect loss of connection to server and reconnect
|
||||
<li>Fixed mouse jumping on OS X multimonitor systems
|
||||
<li>Closing console on win32 no longer quits synergy
|
||||
<li>Fixed Num Lock breaking certain keys
|
||||
<li>Fixed Scroll Lock not locking cursor to screen
|
||||
<li>Fixed mapping of delete key on X11
|
||||
<li>Fixed loss of clipboard after a particular copy/paste sequence
|
||||
<li>Fixed compatibility with windows 95/98/Me (ToUnicodeEx)
|
||||
<li>Fixed bad argument to function on OS X
|
||||
<li>Fixed error parsing comments in configuration
|
||||
<li>Fixed autorepeat on win32 servers
|
||||
<li>Fixed X11 keyboard focus bug when reentering screen
|
||||
<li>Fixed (suppressed) hot key autorepeating
|
||||
<li>Fixed mousebutton action when Caps/Num/Scroll Lock were on
|
||||
<li>Added documentation on firewalls
|
||||
<li>Fixed documentation formatting on IE6
|
||||
</ul>
|
||||
</p><p>
|
||||
Hot keys support has one known major bug: key actions cannot be directed
|
||||
to the server (primary) screen. The configuration file syntax has changed
|
||||
from earlier versions; users will have to modify the configurations by
|
||||
hand.
|
||||
</p><p>
|
||||
<span class="date">Dec-18-2005</span> - Synergy 1.2.7 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Added preliminary support for configurable hot keys (Lorenz Schori)
|
||||
<li>Major rewrite of keyboard handling code
|
||||
<li>Fixed non-US keyboard handling (AltGr and ISO_Level3_Shift)
|
||||
<li>Now supporting all installed keyboard layouts simultaneously
|
||||
<li>Fixed bug in handling remapped caps-lock on X11
|
||||
<li>Fixed control and alt keys getting stuck on on X11
|
||||
<li>Fixed desktop focus problems requiring extra clicks on win32
|
||||
<li>Fixed alt key event getting passed to server when on client on win32
|
||||
<li>Synergy would prevent alt+numpad character entry; this is fixed
|
||||
<li>Fixed suppression of xscreensaver 2.21 on X11
|
||||
<li>Fixed middle mouse button dragging on OSX server (Brian Kendall)
|
||||
<li>Fixed caps/num/scroll lock toggles getting out of sync
|
||||
<li>Enhanced support for converting clipboard text to the Latin-1 encoding
|
||||
<li>Added autostart documentation for KDE users
|
||||
<li>Added more details about using Terminal for OSX users
|
||||
<li>Fixed crash when using --help on certain platforms
|
||||
</ul>
|
||||
</p><p>
|
||||
The hot key support is known to have bugs. The configuration file
|
||||
syntax for hot keys is likely to change and the documentation for it
|
||||
is minimal. The graphical UI on windows does not provide any support
|
||||
for editing hot keys.
|
||||
</p><p>
|
||||
<span class="date">Nov-12-2005</span> - Synergy 1.2.6 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Fixed permission problem saving autostart configuration in win32 launcher
|
||||
<li>Disabled buggy fix for loss of clipboard change detection
|
||||
<li>Restored pthread signal autoconf code
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Oct-17-2005</span> - Synergy 1.2.5 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Win32 launcher now saves configuration automatically
|
||||
<li>Fixed failure to save autostart configuration on win32
|
||||
<li>Fixed output bottom-right configuration flag
|
||||
<li>Now properly releasing keys when leaving a client screen
|
||||
<li>Fixed stuck-Alt on win32
|
||||
<li>Fixed 64-bit problem with clipboard on X11
|
||||
<li>Fixed BadAtom bug on X11
|
||||
<li>Fixed loss of detection of clipboard changes on win32
|
||||
<li>Added support for the MightyMouse
|
||||
<li>Added support for buttons 4 and 5 on OSX
|
||||
<li>Now shutting down win32 services when uninstalling
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Aug-07-2005</span> - Synergy 1.2.4 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Fixed gcc 4.0 warnings
|
||||
<li>Fixed autoconf/automake problems
|
||||
<li>Fixed scroll-lock on X windows
|
||||
<li>Added option to suppress foreground window grabbing on win32
|
||||
<li>Fixed --daemon option on win32 client
|
||||
<li>Fixed --no-restart on client
|
||||
<li>Updated OS X autostart documentation
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Jul-27-2005</span> - Synergy 1.2.3 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Added OS X screensaver synchronization support (Lorenz Schori)
|
||||
<li>Added OS X sleep support (Lorenz Schori)
|
||||
<li>Added OS X fast user switching support (Lorenz Schori)
|
||||
<li>Fixed international keyboard support on OS X (Lorenz Schori)
|
||||
<li>Now capturing global hotkeys (e.g. cmd+tab, etc) on OS X (Lorenz Schori)
|
||||
<li>Added support for SO_REUSEADDR (Don Eisele)
|
||||
<li>Added "dead" corners feature
|
||||
<li>Fixed "resource temporarily unavailable" warning when quiting on OS X
|
||||
<li>Win32 now defaults to WARNING log level to avoid console window
|
||||
<li>Now disabling foreground window on win32 when leaving server (Brent Priddy)
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Jan-26-2005</span> - Synergy 1.2.2 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Fixed major OS X modifier key handling bug
|
||||
<li>Fixed handling of ISO_Level3_Shift on X11
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Jan-04-2005</span> - Synergy 1.2.1 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Fixed major OS X keyboard handling bug
|
||||
<li>Fixed some minor documentation bugs
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Dec-30-2004</span> - Synergy 1.2.0 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Improved support for moving laptops between networks (Brent Priddy)
|
||||
<li>Added ISO_Level3_Shift support on X windows
|
||||
<li>Now doing PageUp/PageDown if no mouse wheel on X windows (Tom Chadwick)
|
||||
<li>Fixed handling of number pad number keys on Windows 95/98/Me
|
||||
<li>Fixed handling of non-existant 4th and 5th mouse buttons on Windows
|
||||
<li>Added support for Unicode keyboard layouts on OS X
|
||||
<li>Fixed memory leak on OS X
|
||||
<li>Added OS X autostart documentation (Tor Slettnes)
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Nov-12-2004</span> - Synergy 1.1.10 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Fixed race in condition variable wrapper; caused synergy to hang randomly
|
||||
<li>Fixed modifier key and caps-lock handling on OSX
|
||||
<li>System info log message now filtered like all other messages
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Nov-07-2004</span> - Synergy 1.1.9 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Fixed compiler error on gcc 3.4 and later
|
||||
<li>Worked around minor gcc -O3 compiler bug
|
||||
<li>Now logging system info at startup
|
||||
<li>Config file errors now logged as errors rather than debug warnings
|
||||
<li>Added half-duplex scroll lock option
|
||||
<li>Fixed tracking of half-duplex toggle key state
|
||||
<li>Now accepting screen names ending in dot (.) for OS X convenience
|
||||
<li>OS X key mapping now loaded from system resources rather than hard coded
|
||||
<li>Fixed multimonitor OS X pimary screen bug; multimon OS X should now work
|
||||
<li>Added experimental workaround for laggy mouse when running linux -> OS X
|
||||
<li>Fixed bug in win32 installer packaging
|
||||
<li>Fixed unrequested continuous mouse wheel scrolling on win32
|
||||
<li>Added win32 GUI to set server address to listen on
|
||||
<li>Fixed resource leak on win32
|
||||
<li>Fixed screensaver detection on windows 2000 and XP
|
||||
<li>Fixed flickering mouse on multimon windows NT/2000/XP
|
||||
<li>Fixed quiting when powerdvd stops playing (may fix other situations, too)
|
||||
<li>Added tray icon menu item to force clients to reconnect
|
||||
<li>Fixed handling of number pad keys with num-lock off on win32
|
||||
<li>Fixed shift key not working when a console windows has focus on win32 server
|
||||
<li>Improved configure of Xinerama and DPMS
|
||||
<li>Improved portability (removed recursive mutexes and _*_SOURCE defines)
|
||||
<li>Now handling DPMS headers without prototypes
|
||||
<li>Fixed dead key and AltGr+shift handling on X11
|
||||
<li>Fixed use of freed memory on unix
|
||||
<li>Fixed AltGr mapping to Ctrl and not Ctrl+Alt on X11 without Alt_R mapped
|
||||
<li>Added -display option for X11
|
||||
<li>Added support for X11 compose key (Multi_key)
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Aug-05-2004</span> - Synergy 1.1.8 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<ul>
|
||||
<li>Removed key event capture on X11 (was breaking terminal keyboard input)
|
||||
<li>Worked around win32 command prompt stealing shift key events
|
||||
<li>Fixed handling of pause key on win32
|
||||
<li>Fixed handling of backslash on win32 internation keyboard mapping
|
||||
<li>Fixed handling of ctrl and alt keys on NT/2k/XP
|
||||
<li>Fixed XCode project (removed cross-compile)
|
||||
<li>Worked around select() bug in OS X
|
||||
<li>Worked around bug in ifstream on OS X
|
||||
<li>Fixed handling of modifier keys on OS X synergy server
|
||||
<li>Fixed handling of space key on OS X synergy server
|
||||
<li>Fixed handling of key autorepeat on OS X server
|
||||
<li>Fixed mouse wheel drift on OS X client
|
||||
<li>Reorganized documentation and converted to HTML
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Jun-13-2004</span> - Synergy 1.1.7 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<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>
|
||||
</p><p>
|
||||
<span class="date">May-26-2004</span> - Synergy 1.1.6 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<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><p>
|
||||
The OS X port does not yet support:
|
||||
<ul>
|
||||
<li>HTML and bitmap clipboard data
|
||||
<li>Screen saver synchronization
|
||||
<li>Non-US English keyboards
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">May-05-2004</span> - Synergy 1.1.5 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<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>
|
||||
</p><p>
|
||||
<span class="date">Mar-31-2004</span> - Synergy 1.1.4 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<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>
|
||||
</p><p>
|
||||
<span class="date">Mar-28-2004</span> - Synergy 1.1.3 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<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><p>
|
||||
Note: the tray icon on windows is known to not work correctly when
|
||||
running the synergy server on Windows 95/95/Me.
|
||||
</p><p>
|
||||
<span class="date">Aug-24-2003</span> - Synergy 1.0.14 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
<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>
|
||||
</p><p>
|
||||
<span class="date">Jul-20-2003</span> - Synergy 1.0.12 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
</p><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:
|
||||
<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>
|
||||
</p><p>
|
||||
<span class="date">May-10-2003</span> - Synergy 1.0.8 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
</p><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>
|
||||
</p><p>
|
||||
<span class="date">Apr-26-2003</span> - Added roadmap
|
||||
</p><p>
|
||||
There's now a <a href="roadmap.html">roadmap</a> for Synergy
|
||||
describing the plans for further development.
|
||||
</p><p>
|
||||
<span class="date">Apr-26-2003</span> - Added Paypal donation page
|
||||
</p><p>
|
||||
There's now a <a href="donate.html">donate</a> button for those
|
||||
who'd like to make a monetary contribution to the further
|
||||
development of Synergy.
|
||||
</p><p>
|
||||
<span class="date">Apr-26-2003</span> - Development update
|
||||
</p><p>
|
||||
Synergy 1.0.8 will include fixes for the following problems.
|
||||
These are already fixed and some are in development version 1.0.7.
|
||||
</p><p>
|
||||
<ul>
|
||||
<li>Mouse events at edge of screen are stolen
|
||||
<li>Windows key doesn't work on clients
|
||||
<li>Alt+[Shift+]Tab, Alt+[Shift+]Esc, Ctrl+Esc don't work on Win 95/98/Me
|
||||
<li>Scroll lock doesn't lock to Windows server screen
|
||||
<li>Screen flashes every 5 seconds on some X11 systems
|
||||
<li>Synergy doesn't work properly with Xinerama
|
||||
<li>Screen names with underscores are not allowed
|
||||
</ul>
|
||||
</p><p>
|
||||
Synergy 1.0.8 will probably include fixes for these problems:
|
||||
</p><p>
|
||||
<ul>
|
||||
<li>AltGr/Mode_switch doesn't work
|
||||
<li>Non-ASCII keys aren't supported
|
||||
<li>Synergy performs badly on a busy Windows system
|
||||
<li>Unexpected key repeats on X11 clients
|
||||
</ul>
|
||||
</p><p>
|
||||
Synergy 1.0.8 should be available in the first half of May.
|
||||
</p><p>
|
||||
<span class="date">Mar-27-2003</span> - Synergy 1.0.6 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
</p><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>
|
||||
</p><p>
|
||||
In addition, the version number scheme has been changed. Given a
|
||||
version number X.Y.Z, release versions will always have Y and Z
|
||||
even while development versions will have Y and Z odd.
|
||||
</p><p>
|
||||
<span class="date">Mar-27-2003</span> - Synergy featured in Linux Journal.
|
||||
</p><p>
|
||||
The April 2003 issue of Linux Journal includes an article on Synergy.
|
||||
Written by Chris Schoeneman, it describes configuring synergy between
|
||||
two linux systems.
|
||||
</p><p>
|
||||
<span class="date">Mar-27-2003</span> - Contributions to Synergy.
|
||||
</p><p>
|
||||
Many thanks to Girard Thibaut for providing a version of the win32
|
||||
launch dialog translated into French. I hope to integrate these
|
||||
changes into future releases.
|
||||
</p><p>
|
||||
Thanks also to "wrhodes" who provided source files for
|
||||
building an InstallShield installer for Synergy. They'll be
|
||||
integrated into an upcoming release.
|
||||
</p><p>
|
||||
<span class="date">Feb-18-2003</span> - Synergy 1.0.3 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
</p><p>
|
||||
<ul>
|
||||
<li>Added 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>
|
||||
</p><p>
|
||||
<span class="date">Jan-25-2003</span> - Synergy 1.0.2 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
</p><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>
|
||||
</p><p>
|
||||
<span class="date">Jan-22-2003</span> - Synergy 1.0.1 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
</p><p>
|
||||
<ul>
|
||||
<li>Fixed running as a service on Windows NT family
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Jan-20-2003</span> - Synergy 1.0.0 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
</p><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><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><p>
|
||||
<span class="date">Dec-25-2002</span> - Synergy 0.9.14 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
</p><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>
|
||||
</p><p>
|
||||
<span class="date">Nov-05-2002</span> - Synergy 0.9.13 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
</p><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>
|
||||
</p><p>
|
||||
<span class="date">Sep-14-2002</span> - Synergy 0.9.12 released
|
||||
</p><p>
|
||||
Made following changes:
|
||||
</p><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>
|
||||
</p><p>
|
||||
<span class="date">Sep-04-2002</span> - Synergy 0.9.11 released
|
||||
</p><p>
|
||||
Fixed following bugs:
|
||||
</p><p>
|
||||
<ul>
|
||||
<li>Worked around missing SendInput() on windows 95/NT 4 prior to SP3
|
||||
<li>Fixed keyboard mapping on X11 synergy client
|
||||
</ul>
|
||||
</p><p>
|
||||
<span class="date">Sep-02-2002</span> - Synergy 0.9.10 released
|
||||
</p><p>
|
||||
Fixed following bugs:
|
||||
</p><p>
|
||||
<ul>
|
||||
<li>The Pause/Break and keypad 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>
|
||||
</p><p>
|
||||
<span class="date">Aug-18-2002</span> - Synergy 0.9.9 released
|
||||
</p><p>
|
||||
Fixed three bugs:
|
||||
</p><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>
|
||||
</p><p>
|
||||
<span class="date">Aug-11-2002</span> - Synergy 0.9.8 released
|
||||
</p><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>
|
||||
92
doc/roadmap.html
Normal file
92
doc/roadmap.html
Normal file
@@ -0,0 +1,92 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy Roadmap</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
</p><h3>Synergy Roadmap</h3><p>
|
||||
</p><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'll arrive.
|
||||
</p><p>
|
||||
</p><h4>Short term</h4><p>
|
||||
</p><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><p>
|
||||
The highest priority feature is currently splitting synergy into
|
||||
front-ends and a back-end. The back-end does the real work. The
|
||||
front-ends are console, GUI, or background applications that
|
||||
communicate with the back-end, either controlling it or receiving
|
||||
notifications from it.
|
||||
</p><p>
|
||||
On win32, there'd be a front-end for the tray icon and a dialog to
|
||||
start, stop, and control the back-end. OS X and X11 would have
|
||||
similar front-ends. Splitting out the front-end has the added
|
||||
benefit on X11 of keeping the back-end totally independent of
|
||||
choice of GUI toolkit (KDE, Gnome, etc.)
|
||||
</p><p>
|
||||
One can also imagine a front-end that does nothing but put monitors
|
||||
into power-saving mode when the cursor is not on them. If you have
|
||||
one monitor auto-senses two inputs, this would automatically switch
|
||||
the display when you move the cursor to one screen or another.
|
||||
</p><p>
|
||||
</p><h4>Medium term</h4><p>
|
||||
</p><p>
|
||||
Some features fit well into Synergy's current design and may simply
|
||||
enhance it's current capabilities.
|
||||
</p><p>
|
||||
<ul>
|
||||
<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><p>
|
||||
A popup menu would be new for Synergy, which currently doesn't have
|
||||
to do any drawing. That opens up many possibilities. Ideally,
|
||||
front-ends request hot keys from the back-end and then tell the back
|
||||
end what to do when they're invoked. This keeps the back-end
|
||||
independent of the user interface.
|
||||
</p><p>
|
||||
</p><h4>Long term</h4><p>
|
||||
</p><p>
|
||||
Two features stand out as long term goals:
|
||||
</p><p>
|
||||
<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>
|
||||
394
doc/running.html
Normal file
394
doc/running.html
Normal file
@@ -0,0 +1,394 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy User Guide</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
</p><h3>Running Synergy</h3><p>
|
||||
</p><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><p>
|
||||
</p><h4>Step 1 - Choose a server</h4><p>
|
||||
</p><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><p>
|
||||
</p><h4>Step 2 - Install the software</h4><p>
|
||||
</p><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
|
||||
(clients and server). On OS X you'll just have a folder with some
|
||||
documentation and two programs. You can put this folder anywhere.
|
||||
</p><p>
|
||||
</p><h4>Step 3 - Configure and start the server</h4><p>
|
||||
</p><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>
|
||||
<a name="asymmetric"></a>
|
||||
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">Share this computer's keyboard and mouse (server)</span> radio button
|
||||
<li>Click the <span class="code">Screens & Links Configure...</span> button
|
||||
<li>Click the <span class="code">+</span> button 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 the <span class="code">+</span> button 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 Screen</span> dialog
|
||||
</ul>
|
||||
<li>Use the controls under <span class="code">Links</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>Click <span class="code">OK</span> to close the <span class="code">Screens & Links</span> dialog
|
||||
<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. See Step 5
|
||||
for typical errors.
|
||||
</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.
|
||||
</p><p>
|
||||
On unix type the command below in a shell. If synergys is not in your
|
||||
PATH then use the full pathname.
|
||||
<pre>
|
||||
synergys -f --config synergy.conf
|
||||
</pre>
|
||||
On OS X open Terminal in the Utilities folder in the Applications folder.
|
||||
Drag the synergys program from the synergy folder onto the Terminal window.
|
||||
The path to the synergys program will appear. Add the following to the
|
||||
same line, type a space at the end of the line but don't press enter:
|
||||
<pre>
|
||||
-f --config
|
||||
</pre>
|
||||
Now drag the synergy.conf file onto the Terminal window and press enter.
|
||||
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><p>
|
||||
</p><h4>Step 4 - Start the clients</h4><p>
|
||||
</p><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">Use another computer's shared keyboard and mouse (client)</span> radio button
|
||||
<li>Enter the server's computer name next to <span class="code">Other Computer's 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 on unix, 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. If synergyc is not in
|
||||
your PATH then use the full pathname.
|
||||
</p><p>
|
||||
On OS X open Terminal in the Utilities folder in the Applications folder.
|
||||
Drag the synergyc program from the synergy folder onto the Terminal window.
|
||||
The path to the synergys program will appear. Add the following to the
|
||||
same line and press enter:
|
||||
<pre>
|
||||
-f <span class="arg">server-host-name</span>
|
||||
</pre>
|
||||
</p><p>
|
||||
When you added the client to the server's configuration you chose a
|
||||
name for the client. If that name was not client's host name then
|
||||
you must tell the client the name you used. Instead of the above
|
||||
command use this instead:
|
||||
<pre>
|
||||
synergyc -f --name <span class="arg">name</span> <span class="arg">server-host-name</span>
|
||||
</pre>
|
||||
where <span class="arg">name</span> is the name for the client in
|
||||
the server's configuration. (On OS X drag the synergyc program to the
|
||||
Terminal window rather than typing synergyc.)
|
||||
</p><p>
|
||||
</p><h4>Step 5 - Test</h4><p>
|
||||
</p><p>
|
||||
Clients should immediately report a successful connection or one or
|
||||
more error messages. Some typical problems and possible solutions are
|
||||
below. See the <a href="trouble.html">troubleshooting</a> and the
|
||||
<a href="faq.html">FAQ</a> pages for more help.
|
||||
<ul>
|
||||
<li>failed to open screen (X11 only)
|
||||
</p><p>
|
||||
Check permission to open the X display;<br>
|
||||
check that the DISPLAY environment variable is set<br>
|
||||
use the <span class="code">--display</span> command line option.
|
||||
</p><p>
|
||||
<li>address already in use
|
||||
</p><p>
|
||||
Another program (maybe another copy of synergy) is using the synergy port;
|
||||
stop the other program or choose a different port in the
|
||||
<span class="code">Advanced...</span> dialog. If you change the port
|
||||
you must make the same change on all of the clients, too.
|
||||
</p><p>
|
||||
<li>connection forcefully rejected
|
||||
</p><p>
|
||||
The synergy client successfully contacted the server but synergy wasn't
|
||||
running or it's running on a different port. You may also see this if
|
||||
there's a firewall blocking the host or port. Make sure synergy is
|
||||
running on the server and check for a firewall.
|
||||
</p><p>
|
||||
<li>already connected
|
||||
</p><p>
|
||||
Check that the synergy client isn't already running.
|
||||
</p><p>
|
||||
<li>refused client
|
||||
</p><p>
|
||||
Add the client to the server's configuration file.
|
||||
</p><p>
|
||||
<li>connection timed out
|
||||
</p><p>
|
||||
Check that <span class="arg">server-host-name</span> is correct.<br>
|
||||
Check that you don't have a firewall blocking the server or synergy port.
|
||||
</p><p>
|
||||
<li>connection failed
|
||||
</p><p>
|
||||
Check that <span class="arg">server-host-name</span> is correct.
|
||||
</p><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><p>
|
||||
</p><h4>Step 6 - Run</h4><p>
|
||||
</p><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. On Windows before
|
||||
clicking <span class="code">Start</span> you may want to set the
|
||||
<span class="code">Logging Level</span> to
|
||||
<span class="code">Warning</span> so the logging window doesn't pop
|
||||
up (because you currently can't close it, just minimize it).
|
||||
</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><p>
|
||||
</p><h4><a name="options"></a>Command Line Options Guide</h4><p>
|
||||
</p><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>.
|
||||
<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"> </span></td>
|
||||
<td><span class="code">--display <span class="arg">display</span></span></td>
|
||||
<td> </td><td>connect to X server at <span class="arg">display</span> (X11 only)</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><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><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><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>.
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
55
doc/security.html
Normal file
55
doc/security.html
Normal file
@@ -0,0 +1,55 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy Network Security Guide</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
</p><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 target="_top" href="http://www.openssh.com/">OpenSSH</a> and runs
|
||||
on Linux, many Unixes, and Windows (in combination with
|
||||
<a target="_top" href="http://www.cygwin.com/">Cygwin</a>).
|
||||
</p><p>
|
||||
</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><p>
|
||||
</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>
|
||||
166
doc/synergy.css
Normal file
166
doc/synergy.css
Normal file
@@ -0,0 +1,166 @@
|
||||
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 new;
|
||||
font-size: 87.5%;
|
||||
}
|
||||
|
||||
.banner {
|
||||
font-weight: normal;
|
||||
font-variant: small-caps;
|
||||
font-size: 400%;
|
||||
width: 100%;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
border: 0px;
|
||||
}
|
||||
.banner a {
|
||||
color: #000000;
|
||||
}
|
||||
.banner a:hover {
|
||||
text-decoration: none;
|
||||
color: #000000;
|
||||
}
|
||||
.bannerb {
|
||||
color: #ffffff;
|
||||
background-color: #ffffff;
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
border-bottom: solid #6699ff 1px;
|
||||
}
|
||||
|
||||
.nav {
|
||||
font-size: x-small;
|
||||
font-weight: normal;
|
||||
background-color: #d4d4d4;
|
||||
|
||||
padding: 2px 0px 2px 0px;
|
||||
margin: 0px;
|
||||
border-bottom: solid #d4d4d4 300px;
|
||||
}
|
||||
.nav a:hover {
|
||||
text-decoration: none;
|
||||
color: #666666;
|
||||
}
|
||||
.nav td {
|
||||
padding-right: 20px;
|
||||
padding-left: 5px;
|
||||
text-indent: 1em;
|
||||
}
|
||||
.nav .section {
|
||||
width: 120px;
|
||||
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 new;
|
||||
}
|
||||
|
||||
.userinput {
|
||||
display: block;
|
||||
white-space: pre;
|
||||
font-family: courier new;
|
||||
font-size: 87.5%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.code {
|
||||
font-family: courier new;
|
||||
}
|
||||
|
||||
.code table {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
/* block of code */
|
||||
.codeblock {
|
||||
display: block;
|
||||
white-space: pre;
|
||||
font-family: courier new;
|
||||
font-size: 87.5%;
|
||||
border: 1px solid #000000;
|
||||
padding: 1em;
|
||||
padding-top: 0em;
|
||||
margin: 1em;
|
||||
background-color: #cccccc;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.fakelink {
|
||||
color: #6699ff;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display:none
|
||||
}
|
||||
81
doc/tips.html
Normal file
81
doc/tips.html
Normal file
@@ -0,0 +1,81 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy Tips and Tricks</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p>
|
||||
</p><h3>Tips and Tricks</h3><p>
|
||||
<ul>
|
||||
<li>
|
||||
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 configured to autostart when the computer starts
|
||||
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><p>
|
||||
<li>
|
||||
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><p>
|
||||
<li>
|
||||
You cannot switch screens when the Scroll Lock is toggled on. Use
|
||||
this to prevent unintentional switching. You can configure other
|
||||
hot keys to do this instead; see
|
||||
<a href="configuration.html#lockCursor">lockCursorToScreen</a>.
|
||||
</p><p>
|
||||
<li>
|
||||
Turn off mouse driven virtual desktop switching on X windows. It
|
||||
will interfere with synergy. Use keyboard shortcuts instead.
|
||||
</p><p>
|
||||
<li>
|
||||
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><p>
|
||||
<li>
|
||||
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><p>
|
||||
<li>
|
||||
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><p>
|
||||
<li>
|
||||
A client's keyboard and mouse are fully functional while synergy is
|
||||
running. You can use them in case synergy locks up.
|
||||
</p><p>
|
||||
<li>
|
||||
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><p>
|
||||
<li>
|
||||
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><p>
|
||||
</ul>
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
43
doc/toc.html
Normal file
43
doc/toc.html
Normal file
@@ -0,0 +1,43 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy TOC</title>
|
||||
<base target="page">
|
||||
</head>
|
||||
<body>
|
||||
<table class="nav">
|
||||
<tr><td class="section"><nobr>General</nobr></td></tr>
|
||||
<tr><td><nobr><a href="home.html">Home</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="about.html">About</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="news.html">News</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="authors.html">Authors</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="license.html">License</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="history.html">History</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="roadmap.html">Future</a></nobr></td></tr>
|
||||
<tr><td></td></tr>
|
||||
<tr><td class="section"><nobr>Documentation</nobr></td></tr>
|
||||
<tr><td><nobr><a href="running.html">Using Synergy</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="security.html">Security</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="configuration.html">Configuration</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="autostart.html">Autostarting</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="compiling.html">Compiling</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="developer.html">Developer</a></nobr></td></tr>
|
||||
<tr><td></td></tr>
|
||||
<tr><td class="section"><nobr>Help</nobr></td></tr>
|
||||
<tr><td><nobr><a href="faq.html">FAQ</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="trouble.html">Troubleshooting</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="tips.html">Tips</a></nobr></td></tr>
|
||||
<tr><td><nobr><a target="_top" href="http://sourceforge.net/tracker/?func=browse&group_id=59275&atid=490467">Known Bugs</a></nobr></td></tr>
|
||||
<tr><td><nobr><a target="_top" href="http://sourceforge.net/tracker/?func=add&group_id=59275&atid=490467">Report Bug</a></nobr></td></tr>
|
||||
<tr><td><nobr><a href="contact.html">Contact</a></nobr></td></tr>
|
||||
<tr><td></td></tr>
|
||||
<tr><td class="section"><nobr>Community</nobr></td></tr>
|
||||
<tr><td><nobr><a target="_top" href="http://sourceforge.net/projects/synergy2/">Project Home</a></nobr></td></tr>
|
||||
<tr><td><nobr><a target="_top" href="http://sourceforge.net/forum/?group_id=59275">Forums</a></nobr></td></tr>
|
||||
<tr><td><nobr><a target="_top" href="http://sourceforge.net/donate/index.php?group_id=59275">Donate</a></nobr></td></tr>
|
||||
</table>
|
||||
</body>
|
||||
70
doc/todo.html
Normal file
70
doc/todo.html
Normal file
@@ -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>
|
||||
204
doc/trouble.html
Normal file
204
doc/trouble.html
Normal file
@@ -0,0 +1,204 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
|
||||
<meta name="keywords" content="Virtual Screen, Open Source, Software" />
|
||||
<meta name="description" content="Mouse and Keyboard Sharing" />
|
||||
<link rel="stylesheet" type="text/css" href="synergy.css" media="screen" />
|
||||
<title>Synergy Troubleshooting</title>
|
||||
</head>
|
||||
<body class="main">
|
||||
<p> </p>
|
||||
<h3>Synergy Troubleshooting</h3>
|
||||
<h4>Problems</h4>
|
||||
<ol>
|
||||
<li><a href="#problem1">Cannot read configuration</a>
|
||||
<li><a href="#problem2">Connection forcefully rejected</a>
|
||||
<li><a href="#problem3">Connection timed out</a>
|
||||
<li><a href="#problem4">Cannot listen for clients</a>
|
||||
<li><a href="#problem5">Unknown screen name "XXX"</a>
|
||||
<li><a href="#problem6">Server refused client with name "XXX"</a>
|
||||
<br><a href="#problem6">A client with name "XXX" is not in the map</a>
|
||||
<li><a href="#problem7">Server already has a connected client with name "XXX"</a>
|
||||
<br><a href="#problem7">A client with name "XXX" is already connected</a>
|
||||
<li><a href="#problem8">Server has incompatible version</a>
|
||||
<li><a href="#problem9">The cursor goes to secondary screen but won't come back</a>
|
||||
</ol>
|
||||
<h4>Solutions</h4>
|
||||
<ol>
|
||||
<li><a name="problem1"></a><span class="fakelink">Cannot read configuration</span>
|
||||
<p>
|
||||
There's an error in the configuration file. This error is always
|
||||
accompanied by another message describing the problem. Use that
|
||||
message and the <a href="configuration.html">configuration documentation</a>
|
||||
to determine the fix.
|
||||
</p>
|
||||
<li><a name="problem2"></a><span class="fakelink">Connection forcefully rejected</span>
|
||||
<p>
|
||||
The client was able to contact the server computer but the server was
|
||||
not listening for clients. Possible reasons are:
|
||||
</p>
|
||||
<ul>
|
||||
<li>The client is using the wrong server
|
||||
<p>
|
||||
Make sure the client is using the hostname or IP address of the computer
|
||||
running the synergy server.
|
||||
</p>
|
||||
<li>Synergy isn't running on the server
|
||||
<p>
|
||||
Make sure the synergy server is running on the server computer. Make
|
||||
sure the server is ready to accept connections. If another program is
|
||||
using synergy's port (24800 by default) then synergy can't start unless
|
||||
you specify a different port.
|
||||
</p>
|
||||
<li>The client is using the wrong port
|
||||
<p>
|
||||
Synergy uses port 24800 by default but you can specify a different port.
|
||||
If you do use a different port you must use that port on the server and
|
||||
all clients.
|
||||
</p>
|
||||
</ul>
|
||||
<li><a name="problem3"></a><span class="fakelink">Connection timed out</span>
|
||||
<p>
|
||||
The most likely reasons for this are:
|
||||
</p>
|
||||
<ul>
|
||||
<li>A firewall
|
||||
<p>
|
||||
A firewall is a program or device that deliberately blocks network
|
||||
connections for security reasons. Typically, they'll silently drop
|
||||
packets they don't want rather than sending a rejection to the sender.
|
||||
This makes it more difficult for intruders to break in.
|
||||
</p><p>
|
||||
When synergy traffic hits a firewall and gets dropped, eventually the
|
||||
synergy client will give up waiting for a response and time out. To
|
||||
allow synergy traffic through first find all the firewalls on the
|
||||
network between and on the synergy client and server computers.
|
||||
</p><p>
|
||||
A firewall on the server or any network device between the server and
|
||||
any client should allow packets to TCP port 24800. (Port 24800 is the
|
||||
default; use whichever port you've selected.) You'll have to consult
|
||||
the manual for your operating system, device, or firewall software to
|
||||
find out how to do this.
|
||||
</p><p>
|
||||
Usually you'll won't need to adjust a firewall on client machines.
|
||||
That's because firewalls normally allow incoming traffic on any port
|
||||
they've initiated a connection on. The reasoning is, of course, if
|
||||
you started a conversation you probably want to hear the reply.
|
||||
</p>
|
||||
<li>The network is down or busy
|
||||
<p>
|
||||
Correct the network problem and try again. You might try
|
||||
<span class="code">ping</span> to see if the two computers can see
|
||||
each other on the network.
|
||||
</p>
|
||||
<li>The server is frozen
|
||||
<p>
|
||||
If the synergy server is running but locked up or very busy then the
|
||||
client may get this message. If the server is locked up then you'll
|
||||
probably have to restart it. If it's just very busy then the client
|
||||
should successfully connect automatically once the server settles down.
|
||||
</p>
|
||||
</ul>
|
||||
<li><a name="problem4"></a><span class="fakelink">Cannot listen for clients</span>
|
||||
<p>
|
||||
Synergy tried to start listening for clients but the network port is
|
||||
unavailable for some reason. Typical reasons are:
|
||||
</p>
|
||||
<ul>
|
||||
<li>No network devices
|
||||
<p>
|
||||
You must have a TCP/IP network device installed and enabled to use
|
||||
synergy.
|
||||
</p>
|
||||
<li>A synergy server is already running
|
||||
<p>
|
||||
Check that a synergy server isn't already running.
|
||||
</p>
|
||||
<li>Another program is using synergy's port
|
||||
<p>
|
||||
Only one program at a time can listen for connections on a given port.
|
||||
If the specific error is that the address is already in use and you've
|
||||
ruled out the other causes, then it's likely another program is already
|
||||
using synergy's port. By default synergy uses port 24800. Try having
|
||||
synergy use a different port number, like 24801 or 24900. Note that
|
||||
the server and all clients must use the same port number. Alternatively,
|
||||
find the other program and stop it or have it use another port.
|
||||
</p>
|
||||
</ul>
|
||||
<li><a name="problem5"></a><span class="fakelink">Unknown screen name "XXX"</span>
|
||||
<p>
|
||||
This error can be reported when reading the configuration; see
|
||||
<a href="#problem1">cannot read configuration</a>. If the configuration
|
||||
was read successfully and you get this error then it means that the
|
||||
server's screen is not in the configuration. All screens must be listed
|
||||
in the configuration.
|
||||
</p><p>
|
||||
A common reason for this is when you haven't used the system's hostname
|
||||
as its screen name. By default, synergy uses the hostname as the screen
|
||||
name. If you used a different screen name in the configuration then you
|
||||
must tell synergy what that name is. Let's say the hostname is
|
||||
<span class="code">frederick</span> but the configuration defines a screen
|
||||
named <span class="code">fred</span>. Then you must tell the server
|
||||
that its screen name is <span class="code">fred</span> by using the
|
||||
<span class="code">--name fred</span> command line option or setting
|
||||
the screen name in the advanced options dialog to
|
||||
<span class="code">fred</span>.
|
||||
</p><p>
|
||||
Alternatively, you can specify one name as an alias of another. See
|
||||
the <a href="configuration.html#aliases">configuration documentation</a>
|
||||
for details.
|
||||
</p><p>
|
||||
Another common reason for this is a mismatch between what you think the
|
||||
hostname is and what synergy thinks it is. Typically this is a problem
|
||||
with fully qualified domain names (FQDN). Perhaps you think your system
|
||||
is named <span class="code">fred</span> but synergy thinks it's
|
||||
<span class="code">fred.nowhere.com</span> or
|
||||
<span class="code">fred.local</span>. You can use either solution above
|
||||
to fix this.
|
||||
</p>
|
||||
<li><a name="problem6"></a><span class="fakelink">Server refused client with name "XXX"</span>
|
||||
<br><span class="fakelink">A client with name "XXX" is not in the map</span>
|
||||
<p>
|
||||
The client is using a screen name not in the server's configuration.
|
||||
This is essentially the same problem as <a href="#problem5">Unknown
|
||||
screen name "XXX"</a> and has the same solutions: specify another
|
||||
screen name or add an alias.
|
||||
</p>
|
||||
<li><a name="problem7"></a><span class="fakelink">Server already has a connected client with name "XXX"</span>
|
||||
<br><span class="fakelink">A client with name "XXX" is already connected</span>
|
||||
<p>
|
||||
This happens when:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Two clients try use the same screen name
|
||||
<p>
|
||||
Each client must have a unique screen name. Configure at least one
|
||||
client to use a different screen name.
|
||||
</p>
|
||||
<li>One client reconnects without cleanly disconnecting
|
||||
<p>
|
||||
It's possible for a client to disconnect without the server knowing,
|
||||
usually by being disconnected from the network or possibly by going
|
||||
to sleep or even crashing. The server is left thinking the client is
|
||||
still connected so when the client reconnects the server will think
|
||||
this is a different client using the same name. Synergy will usually
|
||||
detect and correct this problem within a few seconds. If it doesn't
|
||||
then restart the server.
|
||||
</p>
|
||||
</ul>
|
||||
<li><a name="problem8"></a><span class="fakelink">Server has incompatible version</span>
|
||||
<p>
|
||||
You're using different versions of synergy on the client and server.
|
||||
You should use the same version on all systems.
|
||||
</p>
|
||||
<li><a name="problem9"></a><span class="fakelink">The cursor goes to secondary screen but won't come back</span>
|
||||
<p>
|
||||
This is <a href="faq.html#faq17">FAQ #17</a> and is also mentioned in
|
||||
the documentation for <a href="running.html#asymmetric">using synergy</a>
|
||||
and <a href="configuration.html#asymmetric">configuration</a>.
|
||||
</p>
|
||||
</ol>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user