Moved synergy client to cmd/synergyc and renamed it synergyc.

Moved synergy server to cmd/synergys and renamed it synergys.
Updated documentation to reflect that and the win32 launcher.
This commit is contained in:
crs 2002-08-11 22:43:07 +00:00
parent 2bea3d1460
commit 4c6eb241a6
22 changed files with 398 additions and 226 deletions

11
BUGS
View File

@ -6,11 +6,6 @@ Report bugs to: synergy@groundhog.pair.com
When reporting bugs, please include the version of the operating When reporting bugs, please include the version of the operating
system you're using and what locale you use. system you're using and what locale you use.
* Documentation is missing
There are currently no man pages or other documents describing the
usage of the various commands.
* Not all keystrokes are handled * Not all keystrokes are handled
Certain keystrokes are not captured by the synergy server and, Certain keystrokes are not captured by the synergy server and,
@ -100,9 +95,3 @@ system you're using and what locale you use.
The automake configuration isn't complete so synergy won't build The automake configuration isn't complete so synergy won't build
properly on some (many) systems. properly on some (many) systems.
* Only text is supported on the clipboard
The clipboard supports Unicode and current locale encoded text but
there are numerous other data types it should support, e.g. images,
sound, raw binary data, etc.

183
INSTALL
View File

@ -13,31 +13,19 @@ To build synergy from the sources you'll need the following:
* gcc 2.95 (or up?) * gcc 2.95 (or up?)
* X11R4 or up headers and libraries * X11R4 or up headers and libraries
If building from CVS on Linux you'll also need:
* autoconf 2.52 (older versions may work)
* automake 1.5 (older versions may work)
Configuring the build Configuring the build
--------------------- ---------------------
This step is only necessary when building on Linux. This step is only necessary when building on Linux.
If you're building synergy from CVS you need to create the configure
script and the Makefile.in files. To do that:
% aclocal
% autoheader
% autoconf
% automake
To configure the build for your platform use the configure script: To configure the build for your platform use the configure script:
% ./configure ./configure
For a list of options to configure use: For a list of options to configure use:
% ./configure --help ./configure --help
Building Building
@ -45,22 +33,13 @@ Building
Windows: Windows:
Start VC++ and open `synergy.dsw'. Set the active configuration Start VC++ and open `synergy.dsw'. Set the active configuration
(Build | Set Active Configuration) to `All - Debug' or `All - Release'. (Build | Set Active Configuration) to `All - Debug' or `All - Release'
Then build. then build. Binaries are built into ./Debug or ./Release.
VC++ 6.0 cannot handle project files that lack \r\n newlines. If you
retrieved synergy via CVS then the files should be fine. But if the
workspace appears to be empty then close VC++ and add \r to each line.
A convenient way to do that is to get `fixcrlf.exe' from the Internet,
search the synergy files for `*.dsp' and drag-and-drop all the project
files onto fixcrlf.exe.
Binaries are built into ./Debug or ./Release.
Linux: Linux:
Simply enter: Simply enter:
% make make
This will build the client and server and leave them in their This will build the client and server and leave them in their
respective source directories. respective source directories.
@ -71,22 +50,84 @@ Installing
Windows: Windows:
There is no support for creating an installer for synergy or installing There is no support for creating an installer for synergy or installing
the files in a particular location. The only requirement for installed the files in a particular location. Instead, just copy the following
files is that synrgyhk.dll is in the same directory as synergyd.exe or files from the Debug or Release directory to a directory you choose
in one of the system directories. (perhaps under the Program Files directory):
* synergy.exe
* synergyc.exe
* synergys.exe
* synrgyhk.dll
Linux: Linux:
% make install make install
will install the client and server into /usr/local/bin unless you will install the client and server into /usr/local/bin unless you
specified a different directory when you ran configure. specified a different directory when you ran configure.
See `Starting Automatically' for details on how to have synergy start up See `Starting Automatically on ...' below for details on how to have
automatically when the computer starts. synergy start up automatically when the computer starts.
Configuring the Server Running on Windows
---------------------- ------------------
Double click `synergy' on the server computer. The server is the
computer who's mouse and keyboard will be shared. This brings up a
dialog that lets you configure the server then test out the
configuration or start the server.
First configure the server. Click the `Server' radio button
* Click the `Server' radio button
* Click `Add' to add the server to the `Screens' list
* Enter the name of server (the computer name is recommended)
* Enter other names the server is known by
* Click OK
* Use `Add' to add your other computers
* Use the controls under `Layout' to link screens together
* Click (once) on the server's name in the `Screens' list
* Choose the screen to the left of the server
* Use `---' if there is no screen to the left of the server
* Choose the screens to the right, above and below the server
* Repeat the above steps for all the other screens
* Enter the server's screen name next to `Screen Name'
* This defaults to the computer's name (recommended)
* Click `Test'
The server will start and you'll see a console window with log messages
telling you about synergy's progress. If an error occurs you'll get a
dialog box telling you synergy is about to quit; read the log messages
to determine the problem then correct it and try `Test' again.
Now that the server is running, you'll need to start a client. On any
client computer, double click `synergy'. Of course, you'll need to
have installed the four files listed under `Installing' above on the
client computer. Then configure the client:
* Click the `Client' radio button
* Enter the server's computer name in `Server Host Name'
* Do not use any of the server's screen names, unless one of those
is also the computer name
* Enter the client's screen name next to `Screen Name'
* This defaults to the computer's name (recommended)
* This must be one of the names in the server's `Screens' list
* Click `Test'
If all goes well, the client connects to the server successfully and
the mouse and keyboard are shared. If an error occurs you'll get a
dialog box telling you synergy is about to quit; read the log messages
to determine the problem then correct it and try `Test' again. When
everything is working correctly, install the software on the other
client computers (if any) and repeat the steps for configuring the
client on each.
See `Starting Automatically on Windows' below for configuring synergy
to start automatically when the computer starts.
Configuring the Server on Linux
-------------------------------
The synergy server requires configuration. The configuration file is a The synergy server requires configuration. The configuration file is a
plain text file broken into sections. Each section has the form: plain text file broken into sections. Each section has the form:
@ -166,11 +207,11 @@ The file can have the following sections.
The synergy server will try certain pathnames to load the configuration The synergy server will try certain pathnames to load the configuration
file if the user doesn't specify a path using the `--config' command file if the user doesn't specify a path using the `--config' command
line option. `synergyd --help' reports those pathnames. line option. `synergys --help' reports those pathnames.
Running the Server Running the Server on Linux
------------------ ---------------------------
Run the server on the computer that has the keyboard and mouse to Run the server on the computer that has the keyboard and mouse to
be shared. You must have prepared a configuration file before be shared. You must have prepared a configuration file before
@ -180,29 +221,28 @@ clients but that's not required.
Run the synergy server on the server system using the following Run the synergy server on the server system using the following
command line: command line:
synergyd -f --config <config-pathname> synergys -f --config <config-pathname>
Replace <config-pathname> with the path to the configuration file. Replace <config-pathname> with the path to the configuration file.
The `-f' option causes synergyd to run in the foreground. This is The `-f' option causes synergys to run in the foreground. This is
recommended until you've verified that the configuration works. recommended until you've verified that the configuration works.
If you didn't include the system's hostname in the configuration If you didn't include the system's hostname in the configuration
file (either as a screen name or an alias) then you'll have to add file (either as a screen name or an alias) then you'll have to add
`--name <screen-name>' to the command line, where <screen-name> is `--name <screen-name>' to the command line, where <screen-name> is
a name in the configuration file. You can use `synergyd --help' a name in the configuration file. You can use `synergys --help'
for a list of command line options. for a list of command line options.
On Windows, the file synrgyhk.dll must be in the same directory as See `Starting Automatically on Linux' below for running synergy
synergyd.exe or in a system directory otherwise the server will automatically when the X server starts.
refuse to start.
Running the Client Running the Client on Linux
------------------ ---------------------------
Run the client on all computers that aren't the server using the Run the client on all computers that aren't the server using the
following command line: following command line:
synergy -f --no-camp <server-hostname> synergyc -f --no-camp <server-hostname>
Replace <server-hostname> with the hostname or address of the Replace <server-hostname> with the hostname or address of the
server system. The `-f' option causes synergy to run in the server system. The `-f' option causes synergy to run in the
@ -228,7 +268,7 @@ the problem. Here are typical problems and possible solutions:
check permission to open the X display; check permission to open the X display;
check that the DISPLAY environment variable is set. check that the DISPLAY environment variable is set.
* already connected: * already connected:
check that synergy isn't already running. check that the synergy client isn't already running.
* refused client: * refused client:
add client to the server's configuration file. add client to the server's configuration file.
* connection failed: * connection failed:
@ -240,33 +280,30 @@ the problem. Here are typical problems and possible solutions:
Once all the clients are running, try moving the mouse to each Once all the clients are running, try moving the mouse to each
screen. Be sure to check all the configured links. screen. Be sure to check all the configured links.
See `Starting Automatically on Linux' below for running synergy
automatically when the X server starts.
Starting Automatically
----------------------
You can setup synergy to start automatically when your computer does. Starting Automatically on Windows
---------------------------------
Windows: When all the clients work you're ready to have synergy start
Start the client or server normally except add `--install' as the automatically each time the system (re)starts. Click `Stop' on all
first option on the command line, followed by the usual options the clients then on the server'. Then Click `Start' on the server.
except do not include `-f' or `--no-daemon'. This will install If it starts successfully then click `OK' to close the message box
synergy as a service that will be started at system boot. and the dialog. The synergy server is now running and will be
automatically started each time the system is started. Click `Start'
then `OK' on each of the clients to start the synergy client and
automatically have it start each time the computer starts.
Note that the system will look for synergy wherever it was when it If you ever want to prevent synergy from starting automatically when
was installed. The server will also look for the configuration the computer does, double click `synergy', choose `Client' or `Server'
file in the path specified by the `--config' option, if supplied, (whichever the computer is running as), then click `No Auto-Start'.
and for synrgyhk.dll in the same directory as synergyd.exe or in Click `OK' to dismiss the message box then `Quit' to close the dialog.
a system directory. Therefore, it's important that these files be
on local hard drives; network drives or removable devices may not
be available at boot.
On the Windows NT family you can start and stop the service at any
time using the Services control panel (under Administrative Tools
on Windows 2000 and XP). On the Windows 95 family you cannot
start or stop the service.
To uninstall the service, run the client or server with just the Starting Automatically on Linux
`--uninstall' command line option. -------------------------------
Linux: Linux:
Synergy requires an X server. That means a server must be Synergy requires an X server. That means a server must be
@ -282,8 +319,8 @@ Linux:
anyplace the script calls exit, start the client with something anyplace the script calls exit, start the client with something
like: like:
/usr/bin/killall synergy /usr/bin/killall synergyc
/usr/local/bin/synergy [<options>] <server-host-name> /usr/local/bin/synergyc [<options>] <server-host-name>
<options> must not include `-f' or `--no-daemon'. Change the <options> must not include `-f' or `--no-daemon'. Change the
paths as necessary. It's important to make sure no old copies paths as necessary. It's important to make sure no old copies
@ -291,8 +328,8 @@ Linux:
To start the server use something like: To start the server use something like:
/usr/bin/killall synergyd /usr/bin/killall synergys
/usr/local/bin/synergyd [<options>] --config <config-pathname> /usr/local/bin/synergys [<options>] --config <config-pathname>
Again, <options> must not include `-f' or `--no-daemon'. If Again, <options> must not include `-f' or `--no-daemon'. If
the configuration pathname is one of the default locations then the configuration pathname is one of the default locations then
@ -337,7 +374,7 @@ occurs that is sure to happen every time. For example, the server
will exit immediately if it can't find itself in the configuration. will exit immediately if it can't find itself in the configuration.
On X11 both the client and server will also terminate if the On X11 both the client and server will also terminate if the
connection to the X server is lost. Since xdm will normally restart connection to the X server is lost. Since xdm will normally restart
the server and synergy, this is the correct behavior. the X server and synergy, this is the correct behavior.
Server Command Line Options Server Command Line Options

10
NEWS
View File

@ -1,6 +1,10 @@
Synergy News Synergy News
============ ============
* Initial version of synergy released. Supports ASCII keys, 5 button * Aug-11-2002 - Synergy 0.9.8 released
wheel mouse, Unicode text clipboard, and screen saver synchronization.
Runs on Linux and Microsoft Windows. 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.

156
PORTING
View File

@ -41,19 +41,99 @@ Coding Style Guide
Synergy uses many coding conventions. Contributed code should Synergy uses many coding conventions. Contributed code should
following these guidelines. 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 - Dependencies
* No circular library dependencies * No circular library dependencies
Library dependencies form an acyclic graph. Conceptually Library dependencies form an acyclic graph. Conceptually
libraries can be arranged in layers where each library only libraries can be arranged in layers where each library only
references libraries in layers below it, not in the same references libraries in layers below it, not in the same layer
layer or layers above it. The makefiles build the lowest or layers above it. The makefiles build the lowest layer
layer libraries first and work upwards. libraries first and work upwards.
* Avoid circular uses-a relationships * Avoid circular uses-a relationships
When possible, design classes with one-way uses-a relationships When possible, design classes with one-way uses-a relationships
and avoid cycles. This makes it easier to understand the code. and avoid cycles. This makes it easier to understand the code.
However, sometimes it's not always practical so it is permitted. 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++
* C++ features * C++ features
Synergy uses the following more recent C++ features: Synergy uses the following more recent C++ features:
@ -134,42 +214,53 @@ following these guidelines.
directly or indirectly, from the class and any of those classes directly or indirectly, from the class and any of those classes
have full access to the protected data. 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.
* 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[]' * Don't test for NULL when using `delete' or `delete[]'
It's unnecessary since delete does it anyway. It's unnecessary since delete does it anyway.
- Naming - Makefiles
Names always begin with a letter (never an underscore). The first Automake's makefiles (named Makefile.am) have a few requirements:
letter of interior names are always capitalized. Acronyms should * Define the following macros at the top of the file:
be all uppercase. For example: myTextAsASCII. NULL =
DEPTH = <relative-path-to-top-level>
VDEPTH = ./$(VPATH)/$(DEPTH)
<relative-path-to-top-level> is `..', `../..', `../../..', etc,
whichever references the top directory of the synergy tree. For
example, for a subdirectory of the top level use `..', for a
subdirectory of a subdirectory of the top level use `../..'.
* 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. Lists of
subdirectories must be in the desired build order.
Names come it two flavors: leading capital and leading lowercase. - Source Formatting
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.
- Formatting
Every project has its own formatting style and no style satisfies Every project has its own formatting style and no style satisfies
everyone. New code should be consistent with existing code: everyone. New code should be consistent with existing code:
* All files should include the copyright and license notice
* Use tabs to indent * Use tabs to indent
* Tabs are 4 columns * Tabs are 4 columns
* Open braces ({) go on same line as introducing statement * Open braces ({) go on same line as introducing statement
@ -190,6 +281,7 @@ following these guidelines.
* Use Qt style comments for extraction by doxygen * Use Qt style comments for extraction by doxygen
* Mark incomplete or buggy code with `FIXME' * Mark incomplete or buggy code with `FIXME'
Class Relationships Class Relationships
------------------- -------------------

118
README
View File

@ -25,17 +25,19 @@ The synergy project page is:
http://sourceforge.net/projects/synergy2/ http://sourceforge.net/projects/synergy2/
Report bugs to: Report bugs to:
synergy@groundhog.pair.com http://sourceforge.net/tracker/?func=add&group_id=59275&atid=490467
Please see the following files for more information: Please see the following files for more information:
AUTHORS -- The list of synergy's authors AUTHORS -- The list of synergy's authors
BUGS -- A list of known bugs and limitations BUGS -- A list of known bugs and limitations
COPYING -- The license synergy is release under COPYING -- The license synergy is release under
FAQ -- Frequently asked questions about synergy
HISTORY -- A brief history of synergy HISTORY -- A brief history of synergy
INSTALL -- Detailed build and installation instructions INSTALL -- Detailed build and installation instructions
NEWS -- News about the synergy project NEWS -- News about the synergy project
PORTING -- Porting guide for developers PORTING -- Porting guide for developers
TODO -- List of things to add to synergy
System Requirements System Requirements
@ -80,9 +82,36 @@ server on the primary screen and the synergy client on all the
secondary screens. If it's easier just install both on all of the secondary screens. If it's easier just install both on all of the
systems. systems.
Third, you create a configuration file for the server. Only the Third, you configure and start the server.
server requires configuration. Create a text file named Windows
synergy.conf with the following: -------
Run `synergy' by double clicking on it. This brings up a dialog.
Configure the server:
* Click the `Server' radio button
* Click `Add' to add the server to the `Screens' list
* Enter the name of server (the computer name is recommended)
* Enter other names the server is known by
* Click OK
* Use `Add' to add your other computers
* Use the controls under `Layout' to link screens together
* Click (once) on the server's name in the `Screens' list
* Choose the screen to the left of the server
* Use `---' if there is no screen to the left of the server
* Choose the screens to the right, above and below the server
* Repeat the above steps for all the other screens
* Enter the server's screen name next to `Screen Name'
* This defaults to the computer's name (recommended)
Now click `Test'. The server will start and you'll see a console window
with log messages telling you about synergy's progress. If an error
occurs you'll get a dialog box telling you synergy is about to quit;
read the log messages to determine the problem then correct it and try
`Test' again.
Linux
-----
Create a text file named synergy.conf with the following:
section: screens section: screens
<screen1>: <screen1>:
@ -104,27 +133,46 @@ If necessary you should replace `right' and `left' with `left',
you can add those too: add each computer's host name in the you can add those too: add each computer's host name in the
`screens' section and add the appropriate links. `screens' section and add the appropriate links.
Finally, you start the server then all of the clients. Normally Now start the server. Normally synergy wants to run "in the
synergy wants to run "in the background." It detaches from the background." It detaches from the terminal and doesn't have a
terminal and doesn't have a visible window, effectively visible window, effectively disappearing from view. Until you're
disappearing from view. Until you're sure your configuration sure your configuration works you should start synergy "in the
works you should start synergy "in the foreground" using the `-f' foreground" using the `-f' command line option:
command line option.
To get a command line on Windows, choose Run... from the Start synergys -f --config synergy.conf
menu. Type `cmd' if you're using the Windows NT family or
`command' if you're using the Windows 95 family and press enter.
To start the server, enter the following on the command line: Check the reported messages for errors. Use ctrl+c to stop synergy,
correct any problems, and start it again.
synergyd -f --config synergy.conf Finally, start the clients.
Windows
-------
Run `synergy' on the client by double clicking on it. Configure the
client:
* Click the `Client' radio button
* Enter the server's computer name in `Server Host Name'
* Do not use any of the server's screen names, unless one of those
is also the computer name
* Enter the client's screen name next to `Screen Name'
* This defaults to the computer's name (recommended)
* This must be one of the names in the server's `Screens' list
* Click `Test'
If an error occurs you'll get a dialog box telling you synergy is
about to quit; read the log messages to determine the problem then
correct it and try `Test' again.
Linux
-----
To start a client, enter the following: To start a client, enter the following:
synergy -f <server-host-name> synergyc -f <server-host-name>
where `<server-host-name>' is replaced by the name of the computer where `<server-host-name>' is replaced by the name of the computer
running the synergy server. running the synergy server. If an error is reported use ctrl+c to
stop synergy, fix the error, and try again.
Both the client and server should immediately report the connection Both the client and server should immediately report the connection
or an error. If successful, you should now be able to move the or an error. If successful, you should now be able to move the
@ -134,20 +182,28 @@ except use the edge of the screens to jump to other screens. You
can also cut-and-paste across computers. Currently, only text can also cut-and-paste across computers. Currently, only text
transfers between computers. Start the remaining clients. transfers between computers. Start the remaining clients.
Be aware that not all keystrokes can be handled by synergy. In
particular, ctrl+alt+del is not handled. You cannot use synergy
to log into a Windows NT family system that requires the user to
press ctrl+alt+del to log on. You'll need to keep that computer's
keyboard handy in order to log on.
Once the configuration is verified, see the instructions in INSTALL Once the configuration is verified, see the instructions in INSTALL
under `Starting Automatically' for details on running synergy in under `Starting Automatically on ...' for details on running synergy
the background and on starting synergy automatically when you start in the background and on starting synergy automatically when you start
your computers. your computers.
Tips and Tricks Tips and Tricks
--------------- ---------------
* Be aware that not all keystrokes can be handled by synergy. In
particular, ctrl+alt+del is not handled. You cannot use synergy
to log into a Windows NT family system that requires the user to
press ctrl+alt+del to log on. You'll need to keep that computer's
keyboard handy in order to log on.
* To work around the lack of ctrl+alt+del, you can configure Windows
2000 and XP to not require ctrl+alt+del to log on using the System
control panel. If you're the only user of an NT system you might
want to enable auto-logon. In any case, you should keep each
computer's keyboard handy, perhaps under the desk or on top of the
computer itself. If the system supports USB you should also be able
to attach/detach a keyboard as necessary.
* A screen can be its own neighbor. That allows a screen to "wrap". * 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 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 a screen to itself then moving off the left of the screen would put
@ -169,14 +225,6 @@ Tips and Tricks
the extension). Starting with 4.0 you must enable the corresponding the extension). Starting with 4.0 you must enable the corresponding
option in your .xscreensaver file. option in your .xscreensaver file.
* To work around the lack of ctrl+alt+del, you can configure Windows
2000 and XP to not require ctrl+alt+del to log on using the System
control panel. If you're the only user of an NT system you might
want to enable auto-logon. In any case, you should keep each
computer's keyboard handy, perhaps under the desk or on top of the
computer itself. If the system supports USB you should also be able
to attach/detach a keyboard as necessary.
* Synergy automatically converts newlines in clipboard text (Linux * Synergy automatically converts newlines in clipboard text (Linux
expects \n to end each line while Windows expects \r\n). expects \n to end each line while Windows expects \r\n).
@ -193,6 +241,6 @@ Bug Reports
Synergy is being improved all the time but we can only fix problems Synergy is being improved all the time but we can only fix problems
that we know about. Please let us know of any problems you encounter, that we know about. Please let us know of any problems you encounter,
including confusing or unhelpful documentation. Send reports to: including confusing or unhelpful documentation. File reports at:
synergy@groundhog.pair.com http://sourceforge.net/tracker/?func=add&group_id=59275&atid=490467

View File

@ -17,8 +17,8 @@ VDEPTH = ./$(VPATH)/$(DEPTH)
SUBDIRS = \ SUBDIRS = \
launcher \ launcher \
synergy \ synergyc \
synergyd \ synergys \
$(NULL) $(NULL)
EXTRA_DIST = \ EXTRA_DIST = \

View File

@ -26,7 +26,7 @@
#define CONFIG_NAME "synergy.sgc" #define CONFIG_NAME "synergy.sgc"
#define CLIENT_APP "synergyc.exe" #define CLIENT_APP "synergyc.exe"
#define SERVER_APP "synergyd.exe" #define SERVER_APP "synergys.exe"
typedef std::vector<CString> CStringList; typedef std::vector<CString> CStringList;

View File

@ -17,20 +17,20 @@ VDEPTH = ./$(VPATH)/$(DEPTH)
EXTRA_DIST = \ EXTRA_DIST = \
resource.h \ resource.h \
synergy.dsp \ synergyc.dsp \
synergy.ico \ synergyc.ico \
synergy.rc \ synergyc.rc \
$(NULL) $(NULL)
MAINTAINERCLEANFILES = \ MAINTAINERCLEANFILES = \
Makefile.in \ Makefile.in \
$(NULL) $(NULL)
bin_PROGRAMS = synergy bin_PROGRAMS = synergyc
synergy_SOURCES = \ synergyc_SOURCES = \
synergy.cpp \ synergyc.cpp \
$(NULL) $(NULL)
synergy_LDADD = \ synergyc_LDADD = \
$(DEPTH)/lib/client/libclient.a \ $(DEPTH)/lib/client/libclient.a \
$(DEPTH)/lib/platform/libplatform.a \ $(DEPTH)/lib/platform/libplatform.a \
$(DEPTH)/lib/synergy/libsynergy.a \ $(DEPTH)/lib/synergy/libsynergy.a \

View File

@ -42,7 +42,7 @@
#if WINDOWS_LIKE #if WINDOWS_LIKE
#define DAEMON_NAME "Synergy Client" #define DAEMON_NAME "Synergy Client"
#elif UNIX_LIKE #elif UNIX_LIKE
#define DAEMON_NAME "synergy" #define DAEMON_NAME "synergyc"
#endif #endif
// //

View File

@ -1,24 +1,24 @@
# Microsoft Developer Studio Project File - Name="synergy" - Package Owner=<4> # Microsoft Developer Studio Project File - Name="synergyc" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00 # Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT ** # ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101 # TARGTYPE "Win32 (x86) Application" 0x0101
CFG=synergy - Win32 Debug CFG=synergyc - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run !MESSAGE use the Export Makefile command and run
!MESSAGE !MESSAGE
!MESSAGE NMAKE /f "synergy.mak". !MESSAGE NMAKE /f "synergyc.mak".
!MESSAGE !MESSAGE
!MESSAGE You can specify a configuration when running NMAKE !MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE !MESSAGE
!MESSAGE NMAKE /f "synergy.mak" CFG="synergy - Win32 Debug" !MESSAGE NMAKE /f "synergyc.mak" CFG="synergyc - Win32 Debug"
!MESSAGE !MESSAGE
!MESSAGE Possible choices for configuration are: !MESSAGE Possible choices for configuration are:
!MESSAGE !MESSAGE
!MESSAGE "synergy - Win32 Release" (based on "Win32 (x86) Application") !MESSAGE "synergyc - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "synergy - Win32 Debug" (based on "Win32 (x86) Application") !MESSAGE "synergyc - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE !MESSAGE
# Begin Project # Begin Project
@ -29,7 +29,7 @@ CPP=cl.exe
MTL=midl.exe MTL=midl.exe
RSC=rc.exe RSC=rc.exe
!IF "$(CFG)" == "synergy - Win32 Release" !IF "$(CFG)" == "synergyc - Win32 Release"
# PROP BASE Use_MFC 0 # PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0 # PROP BASE Use_Debug_Libraries 0
@ -43,7 +43,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W4 /GX /O2 /I "..\base" /I "..\io" /I "..\mt" /I "..\net" /I "..\synergy" /I "..\platform" /I "..\..\lib\base" /I "..\..\lib\io" /I "..\..\lib\mt" /I "..\..\lib\net" /I "..\..\lib\synergy" /I "..\..\lib\platform" /I "..\..\lib\client" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c # ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\lib\base" /I "..\..\lib\io" /I "..\..\lib\mt" /I "..\..\lib\net" /I "..\..\lib\synergy" /I "..\..\lib\platform" /I "..\..\lib\client" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
# SUBTRACT CPP /YX # SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
@ -56,7 +56,7 @@ LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"../../Release/synergyc.exe" # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"../../Release/synergyc.exe"
!ELSEIF "$(CFG)" == "synergy - Win32 Debug" !ELSEIF "$(CFG)" == "synergyc - Win32 Debug"
# PROP BASE Use_MFC 0 # PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1 # PROP BASE Use_Debug_Libraries 1
@ -87,18 +87,18 @@ LINK32=link.exe
# Begin Target # Begin Target
# Name "synergy - Win32 Release" # Name "synergyc - Win32 Release"
# Name "synergy - Win32 Debug" # Name "synergyc - Win32 Debug"
# Begin Group "Source Files" # Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File # Begin Source File
SOURCE=.\synergy.cpp SOURCE=.\synergyc.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\synergy.rc SOURCE=.\synergyc.rc
# End Source File # End Source File
# End Group # End Group
# Begin Group "Header Files" # Begin Group "Header Files"
@ -114,7 +114,7 @@ SOURCE=.\resource.h
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File # Begin Source File
SOURCE=.\synergy.ico SOURCE=.\synergyc.ico
# End Source File # End Source File
# End Group # End Group
# End Target # End Target

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -17,20 +17,20 @@ VDEPTH = ./$(VPATH)/$(DEPTH)
EXTRA_DIST = \ EXTRA_DIST = \
resource.h \ resource.h \
synergy.ico \ synergys.ico \
synergyd.dsp \ synergys.dsp \
synergyd.rc \ synergys.rc \
$(NULL) $(NULL)
MAINTAINERCLEANFILES = \ MAINTAINERCLEANFILES = \
Makefile.in \ Makefile.in \
$(NULL) $(NULL)
bin_PROGRAMS = synergyd bin_PROGRAMS = synergys
synergyd_SOURCES = \ synergys_SOURCES = \
synergyd.cpp \ synergys.cpp \
$(NULL) $(NULL)
synergyd_LDADD = \ synergys_LDADD = \
$(DEPTH)/lib/server/libserver.a \ $(DEPTH)/lib/server/libserver.a \
$(DEPTH)/lib/platform/libplatform.a \ $(DEPTH)/lib/platform/libplatform.a \
$(DEPTH)/lib/synergy/libsynergy.a \ $(DEPTH)/lib/synergy/libsynergy.a \

View File

@ -41,14 +41,16 @@
#if WINDOWS_LIKE #if WINDOWS_LIKE
#define DAEMON_NAME "Synergy Server" #define DAEMON_NAME "Synergy Server"
#elif UNIX_LIKE #elif UNIX_LIKE
#define DAEMON_NAME "synergyd" #define DAEMON_NAME "synergys"
#endif #endif
// configuration file name // configuration file name
#if WINDOWS_LIKE #if WINDOWS_LIKE
#define CONFIG_NAME "synergy.sgc" #define USR_CONFIG_NAME "synergy.sgc"
#define SYS_CONFIG_NAME "synergy.sgc"
#elif UNIX_LIKE #elif UNIX_LIKE
#define CONFIG_NAME "synergy.conf" #define USR_CONFIG_NAME ".synergy.conf"
#define SYS_CONFIG_NAME "synergy.conf"
#endif #endif
// //
@ -344,10 +346,10 @@ PLATFORM_EXTRA
kDefaultPort, kDefaultPort,
platform.addPathComponent( platform.addPathComponent(
platform.getUserDirectory(), platform.getUserDirectory(),
CONFIG_NAME).c_str(), USR_CONFIG_NAME).c_str(),
platform.addPathComponent( platform.addPathComponent(
platform.getSystemDirectory(), platform.getSystemDirectory(),
CONFIG_NAME).c_str())); SYS_CONFIG_NAME).c_str()));
} }
static static
@ -586,7 +588,7 @@ loadConfig()
CString path = platform.getUserDirectory(); CString path = platform.getUserDirectory();
if (!path.empty()) { if (!path.empty()) {
// complete path // complete path
path = platform.addPathComponent(path, CONFIG_NAME); path = platform.addPathComponent(path, USR_CONFIG_NAME);
// now try loading the user's configuration // now try loading the user's configuration
loaded = loadConfig(path.c_str(), false); loaded = loadConfig(path.c_str(), false);
@ -595,7 +597,7 @@ loadConfig()
// try the system-wide config file // try the system-wide config file
path = platform.getSystemDirectory(); path = platform.getSystemDirectory();
if (!path.empty()) { if (!path.empty()) {
path = platform.addPathComponent(path, CONFIG_NAME); path = platform.addPathComponent(path, SYS_CONFIG_NAME);
loadConfig(path.c_str(), false); loadConfig(path.c_str(), false);
} }
} }

View File

@ -1,24 +1,24 @@
# Microsoft Developer Studio Project File - Name="synergyd" - Package Owner=<4> # Microsoft Developer Studio Project File - Name="synergys" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00 # Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT ** # ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101 # TARGTYPE "Win32 (x86) Application" 0x0101
CFG=synergyd - Win32 Debug CFG=synergys - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run !MESSAGE use the Export Makefile command and run
!MESSAGE !MESSAGE
!MESSAGE NMAKE /f "synergyd.mak". !MESSAGE NMAKE /f "synergys.mak".
!MESSAGE !MESSAGE
!MESSAGE You can specify a configuration when running NMAKE !MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE !MESSAGE
!MESSAGE NMAKE /f "synergyd.mak" CFG="synergyd - Win32 Debug" !MESSAGE NMAKE /f "synergys.mak" CFG="synergys - Win32 Debug"
!MESSAGE !MESSAGE
!MESSAGE Possible choices for configuration are: !MESSAGE Possible choices for configuration are:
!MESSAGE !MESSAGE
!MESSAGE "synergyd - Win32 Release" (based on "Win32 (x86) Application") !MESSAGE "synergys - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "synergyd - Win32 Debug" (based on "Win32 (x86) Application") !MESSAGE "synergys - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE !MESSAGE
# Begin Project # Begin Project
@ -29,7 +29,7 @@ CPP=cl.exe
MTL=midl.exe MTL=midl.exe
RSC=rc.exe RSC=rc.exe
!IF "$(CFG)" == "synergyd - Win32 Release" !IF "$(CFG)" == "synergys - Win32 Release"
# PROP BASE Use_MFC 0 # PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0 # PROP BASE Use_Debug_Libraries 0
@ -56,7 +56,7 @@ LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "synergyd - Win32 Debug" !ELSEIF "$(CFG)" == "synergys - Win32 Debug"
# PROP BASE Use_MFC 0 # PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1 # PROP BASE Use_Debug_Libraries 1
@ -87,18 +87,18 @@ LINK32=link.exe
# Begin Target # Begin Target
# Name "synergyd - Win32 Release" # Name "synergys - Win32 Release"
# Name "synergyd - Win32 Debug" # Name "synergys - Win32 Debug"
# Begin Group "Source Files" # Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File # Begin Source File
SOURCE=.\synergyd.cpp SOURCE=.\synergys.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\synergyd.rc SOURCE=.\synergys.rc
# End Source File # End Source File
# End Group # End Group
# Begin Group "Header Files" # Begin Group "Header Files"
@ -114,7 +114,7 @@ SOURCE=.\resource.h
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File # Begin Source File
SOURCE=.\synergy.ico SOURCE=.\synergys.ico
# End Source File # End Source File
# End Group # End Group
# End Target # End Target

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -91,8 +91,8 @@ lib/client/Makefile
lib/server/Makefile lib/server/Makefile
cmd/Makefile cmd/Makefile
cmd/launcher/Makefile cmd/launcher/Makefile
cmd/synergy/Makefile cmd/synergyc/Makefile
cmd/synergyd/Makefile cmd/synergys/Makefile
dist/Makefile dist/Makefile
dist/rpm/Makefile dist/rpm/Makefile
dist/rpm/synergy.spec dist/rpm/synergy.spec

View File

@ -25,16 +25,16 @@ make
%install %install
make install DESTDIR=$RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT
strip $RPM_BUILD_ROOT/usr/bin/synergy strip $RPM_BUILD_ROOT/usr/bin/synergyc
strip $RPM_BUILD_ROOT/usr/bin/synergyd strip $RPM_BUILD_ROOT/usr/bin/synergys
%clean %clean
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
%files %files
%defattr(-, root, root) %defattr(-, root, root)
/usr/bin/synergy /usr/bin/synergyc
/usr/bin/synergyd /usr/bin/synergys
%doc AUTHORS %doc AUTHORS
%doc BUGS %doc BUGS
%doc COPYING %doc COPYING

View File

@ -12,10 +12,10 @@ Package=<5>
Package=<4> Package=<4>
{{{ {{{
Begin Project Dependency Begin Project Dependency
Project_Dep_Name synergy Project_Dep_Name synergyc
End Project Dependency End Project Dependency
Begin Project Dependency Begin Project Dependency
Project_Dep_Name synergyd Project_Dep_Name synergys
End Project Dependency End Project Dependency
Begin Project Dependency Begin Project Dependency
Project_Dep_Name launcher Project_Dep_Name launcher
@ -180,7 +180,7 @@ Package=<4>
############################################################################### ###############################################################################
Project: "synergy"=.\cmd\synergy\synergy.dsp - Package Owner=<4> Project: "synergyc"=.\cmd\synergyc\synergyc.dsp - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{
@ -213,7 +213,7 @@ Package=<4>
############################################################################### ###############################################################################
Project: "synergyd"=.\cmd\synergyd\synergyd.dsp - Package Owner=<4> Project: "synergys"=.\cmd\synergys\synergys.dsp - Package Owner=<4>
Package=<5> Package=<5>
{{{ {{{