From 4c6eb241a643e7d1851f889d359739065c3caf43 Mon Sep 17 00:00:00 2001 From: crs Date: Sun, 11 Aug 2002 22:43:07 +0000 Subject: [PATCH] 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. --- BUGS | 11 -- INSTALL | 183 +++++++++++------- NEWS | 10 +- PORTING | 156 ++++++++++++--- README | 138 ++++++++----- cmd/Makefile.am | 4 +- cmd/launcher/launcher.cpp | 2 +- cmd/{synergy => synergyc}/Makefile.am | 14 +- cmd/{synergy => synergyc}/resource.h | 0 .../synergy.cpp => synergyc/synergyc.cpp} | 2 +- .../synergy.dsp => synergyc/synergyc.dsp} | 28 +-- .../synergy.ico => synergyc/synergyc.ico} | Bin .../synergy.rc => synergyc/synergyc.rc} | 0 cmd/{synergyd => synergys}/Makefile.am | 14 +- cmd/{synergyd => synergys}/resource.h | 0 .../synergyd.cpp => synergys/synergys.cpp} | 16 +- .../synergyd.dsp => synergys/synergys.dsp} | 26 +-- .../synergy.ico => synergys/synergys.ico} | Bin .../synergyd.rc => synergys/synergys.rc} | 0 configure.in | 4 +- dist/rpm/synergy.spec.in | 8 +- synergy.dsw | 8 +- 22 files changed, 398 insertions(+), 226 deletions(-) rename cmd/{synergy => synergyc}/Makefile.am (89%) rename cmd/{synergy => synergyc}/resource.h (100%) rename cmd/{synergy/synergy.cpp => synergyc/synergyc.cpp} (99%) rename cmd/{synergy/synergy.dsp => synergyc/synergyc.dsp} (78%) rename cmd/{synergy/synergy.ico => synergyc/synergyc.ico} (100%) rename cmd/{synergy/synergy.rc => synergyc/synergyc.rc} (100%) rename cmd/{synergyd => synergys}/Makefile.am (90%) rename cmd/{synergyd => synergys}/resource.h (100%) rename cmd/{synergyd/synergyd.cpp => synergys/synergys.cpp} (98%) rename cmd/{synergyd/synergyd.dsp => synergys/synergys.dsp} (85%) rename cmd/{synergyd/synergy.ico => synergys/synergys.ico} (100%) rename cmd/{synergyd/synergyd.rc => synergys/synergys.rc} (100%) diff --git a/BUGS b/BUGS index 912ef100..e429fda7 100644 --- a/BUGS +++ b/BUGS @@ -6,11 +6,6 @@ Report bugs to: synergy@groundhog.pair.com When reporting bugs, please include the version of the operating 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 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 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. diff --git a/INSTALL b/INSTALL index ea076b28..d5a49793 100644 --- a/INSTALL +++ b/INSTALL @@ -13,31 +13,19 @@ To build synergy from the sources you'll need the following: * gcc 2.95 (or up?) * 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 --------------------- 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: - % ./configure + ./configure For a list of options to configure use: - % ./configure --help + ./configure --help Building @@ -45,22 +33,13 @@ Building Windows: Start VC++ and open `synergy.dsw'. Set the active configuration - (Build | Set Active Configuration) to `All - Debug' or `All - Release'. - Then build. - - 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. + (Build | Set Active Configuration) to `All - Debug' or `All - Release' + then build. Binaries are built into ./Debug or ./Release. Linux: Simply enter: - % make + make This will build the client and server and leave them in their respective source directories. @@ -71,22 +50,84 @@ Installing Windows: There is no support for creating an installer for synergy or installing - the files in a particular location. The only requirement for installed - files is that synrgyhk.dll is in the same directory as synergyd.exe or - in one of the system directories. + the files in a particular location. Instead, just copy the following + files from the Debug or Release directory to a directory you choose + (perhaps under the Program Files directory): + + * synergy.exe + * synergyc.exe + * synergys.exe + * synrgyhk.dll Linux: - % make install + make install will install the client and server into /usr/local/bin unless you specified a different directory when you ran configure. -See `Starting Automatically' for details on how to have synergy start up -automatically when the computer starts. +See `Starting Automatically on ...' below for details on how to have +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 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 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 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 command line: - synergyd -f --config + synergys -f --config Replace 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. If you didn't include the system's hostname in the configuration file (either as a screen name or an alias) then you'll have to add `--name ' to the command line, where 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. -On Windows, the file synrgyhk.dll must be in the same directory as -synergyd.exe or in a system directory otherwise the server will -refuse to start. +See `Starting Automatically on Linux' below for running synergy +automatically when the X server starts. -Running the Client ------------------- +Running the Client on Linux +--------------------------- Run the client on all computers that aren't the server using the following command line: - synergy -f --no-camp + synergyc -f --no-camp Replace with the hostname or address of 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 that the DISPLAY environment variable is set. * already connected: - check that synergy isn't already running. + check that the synergy client isn't already running. * refused client: add client to the server's configuration file. * 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 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: - Start the client or server normally except add `--install' as the - first option on the command line, followed by the usual options - except do not include `-f' or `--no-daemon'. This will install - synergy as a service that will be started at system boot. +When all the clients work you're ready to have synergy start +automatically each time the system (re)starts. Click `Stop' on all +the clients then on the server'. Then Click `Start' on the server. +If it starts successfully then click `OK' to close the message box +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 - was installed. The server will also look for the configuration - file in the path specified by the `--config' option, if supplied, - and for synrgyhk.dll in the same directory as synergyd.exe or in - 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. +If you ever want to prevent synergy from starting automatically when +the computer does, double click `synergy', choose `Client' or `Server' +(whichever the computer is running as), then click `No Auto-Start'. +Click `OK' to dismiss the message box then `Quit' to close the dialog. - 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 - `--uninstall' command line option. +Starting Automatically on Linux +------------------------------- Linux: 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 like: - /usr/bin/killall synergy - /usr/local/bin/synergy [] + /usr/bin/killall synergyc + /usr/local/bin/synergyc [] must not include `-f' or `--no-daemon'. Change the paths as necessary. It's important to make sure no old copies @@ -291,8 +328,8 @@ Linux: To start the server use something like: - /usr/bin/killall synergyd - /usr/local/bin/synergyd [] --config + /usr/bin/killall synergys + /usr/local/bin/synergys [] --config Again, must not include `-f' or `--no-daemon'. If 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. On X11 both the client and server will also terminate if the connection to the X server is lost. Since xdm will normally restart -the server and synergy, this is the correct behavior. +the X server and synergy, this is the correct behavior. Server Command Line Options diff --git a/NEWS b/NEWS index 1473e6db..fd79e553 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,10 @@ Synergy News ============ -* Initial version of synergy released. Supports ASCII keys, 5 button - wheel mouse, Unicode text clipboard, and screen saver synchronization. - Runs on Linux and Microsoft Windows. +* Aug-11-2002 - Synergy 0.9.8 released + + Supports any number of clients under Linux or Windows 95 or NT4 + or later. Includes mouse and keyboard sharing, clipboard + synchronization and screen saver synchronization. Supports ASCII + keystrokes, 5 button mouse with wheel, and Unicode text clipboard + format. diff --git a/PORTING b/PORTING index 6740b032..2689c73f 100644 --- a/PORTING +++ b/PORTING @@ -41,19 +41,99 @@ 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. + 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 + 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 '. 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: @@ -134,42 +214,53 @@ following these guidelines. 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. + + * 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. -- 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. +- Makefiles + Automake's makefiles (named Makefile.am) have a few requirements: + * Define the following macros at the top of the file: + NULL = + DEPTH = + VDEPTH = ./$(VPATH)/$(DEPTH) + 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. - 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 +- 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 * Open braces ({) go on same line as introducing statement @@ -190,6 +281,7 @@ following these guidelines. * Use Qt style comments for extraction by doxygen * Mark incomplete or buggy code with `FIXME' + Class Relationships ------------------- diff --git a/README b/README index 351eb35d..87245fbd 100644 --- a/README +++ b/README @@ -25,17 +25,19 @@ The synergy project page is: http://sourceforge.net/projects/synergy2/ 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: AUTHORS -- The list of synergy's authors BUGS -- A list of known bugs and limitations COPYING -- The license synergy is release under +FAQ -- Frequently asked questions about synergy HISTORY -- A brief history of synergy INSTALL -- Detailed build and installation instructions NEWS -- News about the synergy project PORTING -- Porting guide for developers +TODO -- List of things to add to synergy System Requirements @@ -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 systems. -Third, you create a configuration file for the server. Only the -server requires configuration. Create a text file named -synergy.conf with the following: +Third, you configure and start the server. + Windows + ------- + Run `synergy' by double clicking on it. This brings up a dialog. + Configure the server: + + * Click the `Server' radio button + * Click `Add' to add the server to the `Screens' list + * Enter the name of server (the computer name is recommended) + * Enter other names the server is known by + * Click OK + * Use `Add' to add your other computers + * Use the controls under `Layout' to link screens together + * Click (once) on the server's name in the `Screens' list + * Choose the screen to the left of the server + * Use `---' if there is no screen to the left of the server + * Choose the screens to the right, above and below the server + * Repeat the above steps for all the other screens + * Enter the server's screen name next to `Screen Name' + * This defaults to the computer's name (recommended) + + Now click `Test'. The server will start and you'll see a console window + with log messages telling you about synergy's progress. If an error + occurs you'll get a dialog box telling you synergy is about to quit; + read the log messages to determine the problem then correct it and try + `Test' again. + + Linux + ----- + Create a text file named synergy.conf with the following: section: screens : @@ -95,36 +124,55 @@ synergy.conf with the following: left = end -Replace each occurrence of `' with the host name of the -primary screen computer and `' with the host name of a -secondary screen computer. In the above example, is to -the right of and is to the left of . -If necessary you should replace `right' and `left' with `left', -`right', 'up', or `down'. If you have more than two computers -you can add those too: add each computer's host name in the -`screens' section and add the appropriate links. + Replace each occurrence of `' with the host name of the + primary screen computer and `' with the host name of a + secondary screen computer. In the above example, is to + the right of and is to the left of . + If necessary you should replace `right' and `left' with `left', + `right', 'up', or `down'. If you have more than two computers + you can add those too: add each computer's host name in the + `screens' section and add the appropriate links. -Finally, you start the server then all of the clients. Normally -synergy wants to run "in the background." It detaches from the -terminal and doesn't have a visible window, effectively -disappearing from view. Until you're sure your configuration -works you should start synergy "in the foreground" using the `-f' -command line option. + Now start the server. Normally synergy wants to run "in the + background." It detaches from the terminal and doesn't have a + visible window, effectively disappearing from view. Until you're + sure your configuration works you should start synergy "in the + foreground" using the `-f' command line option: -To get a command line on Windows, choose Run... from the Start -menu. Type `cmd' if you're using the Windows NT family or -`command' if you're using the Windows 95 family and press enter. + synergys -f --config synergy.conf -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: -To start a client, enter the following: + * 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' - synergy -f + 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. -where `' is replaced by the name of the computer -running the synergy server. + Linux + ----- + + To start a client, enter the following: + + synergyc -f + + where `' is replaced by the name of the computer + running the synergy server. If an error is reported use ctrl+c to + stop synergy, fix the error, and try again. Both the client and server should immediately report the connection or an error. If successful, you should now be able to move the @@ -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 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 -under `Starting Automatically' for details on running synergy in -the background and on starting synergy automatically when you start +under `Starting Automatically on ...' for details on running synergy +in the background and on starting synergy automatically when you start your computers. Tips and Tricks --------------- +* Be aware that not all keystrokes can be handled by synergy. In + particular, ctrl+alt+del is not handled. You cannot use synergy + to log into a Windows NT family system that requires the user to + press ctrl+alt+del to log on. You'll need to keep that computer's + keyboard handy in order to log on. + +* To work around the lack of ctrl+alt+del, you can configure Windows + 2000 and XP to not require ctrl+alt+del to log on using the System + control panel. If you're the only user of an NT system you might + want to enable auto-logon. In any case, you should keep each + computer's keyboard handy, perhaps under the desk or on top of the + computer itself. If the system supports USB you should also be able + to attach/detach a keyboard as necessary. + * A screen can be its own neighbor. That allows a screen to "wrap". For example, if a configuration linked the left and right sides of a screen to itself then moving off the left of the screen would put @@ -169,14 +225,6 @@ Tips and Tricks the extension). Starting with 4.0 you must enable the corresponding 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 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 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 diff --git a/cmd/Makefile.am b/cmd/Makefile.am index e267fba6..c1953b4c 100644 --- a/cmd/Makefile.am +++ b/cmd/Makefile.am @@ -17,8 +17,8 @@ VDEPTH = ./$(VPATH)/$(DEPTH) SUBDIRS = \ launcher \ - synergy \ - synergyd \ + synergyc \ + synergys \ $(NULL) EXTRA_DIST = \ diff --git a/cmd/launcher/launcher.cpp b/cmd/launcher/launcher.cpp index e8d96cc6..e18aa892 100644 --- a/cmd/launcher/launcher.cpp +++ b/cmd/launcher/launcher.cpp @@ -26,7 +26,7 @@ #define CONFIG_NAME "synergy.sgc" #define CLIENT_APP "synergyc.exe" -#define SERVER_APP "synergyd.exe" +#define SERVER_APP "synergys.exe" typedef std::vector CStringList; diff --git a/cmd/synergy/Makefile.am b/cmd/synergyc/Makefile.am similarity index 89% rename from cmd/synergy/Makefile.am rename to cmd/synergyc/Makefile.am index f1b78a25..98ab2824 100644 --- a/cmd/synergy/Makefile.am +++ b/cmd/synergyc/Makefile.am @@ -17,20 +17,20 @@ VDEPTH = ./$(VPATH)/$(DEPTH) EXTRA_DIST = \ resource.h \ - synergy.dsp \ - synergy.ico \ - synergy.rc \ + synergyc.dsp \ + synergyc.ico \ + synergyc.rc \ $(NULL) MAINTAINERCLEANFILES = \ Makefile.in \ $(NULL) -bin_PROGRAMS = synergy -synergy_SOURCES = \ - synergy.cpp \ +bin_PROGRAMS = synergyc +synergyc_SOURCES = \ + synergyc.cpp \ $(NULL) -synergy_LDADD = \ +synergyc_LDADD = \ $(DEPTH)/lib/client/libclient.a \ $(DEPTH)/lib/platform/libplatform.a \ $(DEPTH)/lib/synergy/libsynergy.a \ diff --git a/cmd/synergy/resource.h b/cmd/synergyc/resource.h similarity index 100% rename from cmd/synergy/resource.h rename to cmd/synergyc/resource.h diff --git a/cmd/synergy/synergy.cpp b/cmd/synergyc/synergyc.cpp similarity index 99% rename from cmd/synergy/synergy.cpp rename to cmd/synergyc/synergyc.cpp index f9dbb118..94771f79 100644 --- a/cmd/synergy/synergy.cpp +++ b/cmd/synergyc/synergyc.cpp @@ -42,7 +42,7 @@ #if WINDOWS_LIKE #define DAEMON_NAME "Synergy Client" #elif UNIX_LIKE -#define DAEMON_NAME "synergy" +#define DAEMON_NAME "synergyc" #endif // diff --git a/cmd/synergy/synergy.dsp b/cmd/synergyc/synergyc.dsp similarity index 78% rename from cmd/synergy/synergy.dsp rename to cmd/synergyc/synergyc.dsp index a55230a2..ad4e1f1c 100644 --- a/cmd/synergy/synergy.dsp +++ b/cmd/synergyc/synergyc.dsp @@ -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 # ** DO NOT EDIT ** # 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 use the Export Makefile command and run !MESSAGE -!MESSAGE NMAKE /f "synergy.mak". +!MESSAGE NMAKE /f "synergyc.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE -!MESSAGE NMAKE /f "synergy.mak" CFG="synergy - Win32 Debug" +!MESSAGE NMAKE /f "synergyc.mak" CFG="synergyc - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE -!MESSAGE "synergy - Win32 Release" (based on "Win32 (x86) Application") -!MESSAGE "synergy - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "synergyc - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "synergyc - Win32 Debug" (based on "Win32 (x86) Application") !MESSAGE # Begin Project @@ -29,7 +29,7 @@ CPP=cl.exe MTL=midl.exe RSC=rc.exe -!IF "$(CFG)" == "synergy - Win32 Release" +!IF "$(CFG)" == "synergyc - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 @@ -43,7 +43,7 @@ RSC=rc.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # 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 # ADD BASE 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 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_Debug_Libraries 1 @@ -87,18 +87,18 @@ LINK32=link.exe # Begin Target -# Name "synergy - Win32 Release" -# Name "synergy - Win32 Debug" +# Name "synergyc - Win32 Release" +# Name "synergyc - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File -SOURCE=.\synergy.cpp +SOURCE=.\synergyc.cpp # End Source File # Begin Source File -SOURCE=.\synergy.rc +SOURCE=.\synergyc.rc # End Source File # End Group # 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" # Begin Source File -SOURCE=.\synergy.ico +SOURCE=.\synergyc.ico # End Source File # End Group # End Target diff --git a/cmd/synergy/synergy.ico b/cmd/synergyc/synergyc.ico similarity index 100% rename from cmd/synergy/synergy.ico rename to cmd/synergyc/synergyc.ico diff --git a/cmd/synergy/synergy.rc b/cmd/synergyc/synergyc.rc similarity index 100% rename from cmd/synergy/synergy.rc rename to cmd/synergyc/synergyc.rc diff --git a/cmd/synergyd/Makefile.am b/cmd/synergys/Makefile.am similarity index 90% rename from cmd/synergyd/Makefile.am rename to cmd/synergys/Makefile.am index 5868830f..9a200c51 100644 --- a/cmd/synergyd/Makefile.am +++ b/cmd/synergys/Makefile.am @@ -17,20 +17,20 @@ VDEPTH = ./$(VPATH)/$(DEPTH) EXTRA_DIST = \ resource.h \ - synergy.ico \ - synergyd.dsp \ - synergyd.rc \ + synergys.ico \ + synergys.dsp \ + synergys.rc \ $(NULL) MAINTAINERCLEANFILES = \ Makefile.in \ $(NULL) -bin_PROGRAMS = synergyd -synergyd_SOURCES = \ - synergyd.cpp \ +bin_PROGRAMS = synergys +synergys_SOURCES = \ + synergys.cpp \ $(NULL) -synergyd_LDADD = \ +synergys_LDADD = \ $(DEPTH)/lib/server/libserver.a \ $(DEPTH)/lib/platform/libplatform.a \ $(DEPTH)/lib/synergy/libsynergy.a \ diff --git a/cmd/synergyd/resource.h b/cmd/synergys/resource.h similarity index 100% rename from cmd/synergyd/resource.h rename to cmd/synergys/resource.h diff --git a/cmd/synergyd/synergyd.cpp b/cmd/synergys/synergys.cpp similarity index 98% rename from cmd/synergyd/synergyd.cpp rename to cmd/synergys/synergys.cpp index 43b84a8e..0d0a479f 100644 --- a/cmd/synergyd/synergyd.cpp +++ b/cmd/synergys/synergys.cpp @@ -41,14 +41,16 @@ #if WINDOWS_LIKE #define DAEMON_NAME "Synergy Server" #elif UNIX_LIKE -#define DAEMON_NAME "synergyd" +#define DAEMON_NAME "synergys" #endif // configuration file name #if WINDOWS_LIKE -#define CONFIG_NAME "synergy.sgc" +#define USR_CONFIG_NAME "synergy.sgc" +#define SYS_CONFIG_NAME "synergy.sgc" #elif UNIX_LIKE -#define CONFIG_NAME "synergy.conf" +#define USR_CONFIG_NAME ".synergy.conf" +#define SYS_CONFIG_NAME "synergy.conf" #endif // @@ -344,10 +346,10 @@ PLATFORM_EXTRA kDefaultPort, platform.addPathComponent( platform.getUserDirectory(), - CONFIG_NAME).c_str(), + USR_CONFIG_NAME).c_str(), platform.addPathComponent( platform.getSystemDirectory(), - CONFIG_NAME).c_str())); + SYS_CONFIG_NAME).c_str())); } static @@ -586,7 +588,7 @@ loadConfig() CString path = platform.getUserDirectory(); if (!path.empty()) { // complete path - path = platform.addPathComponent(path, CONFIG_NAME); + path = platform.addPathComponent(path, USR_CONFIG_NAME); // now try loading the user's configuration loaded = loadConfig(path.c_str(), false); @@ -595,7 +597,7 @@ loadConfig() // try the system-wide config file path = platform.getSystemDirectory(); if (!path.empty()) { - path = platform.addPathComponent(path, CONFIG_NAME); + path = platform.addPathComponent(path, SYS_CONFIG_NAME); loadConfig(path.c_str(), false); } } diff --git a/cmd/synergyd/synergyd.dsp b/cmd/synergys/synergys.dsp similarity index 85% rename from cmd/synergyd/synergyd.dsp rename to cmd/synergys/synergys.dsp index 31195ecc..c9853f5d 100644 --- a/cmd/synergyd/synergyd.dsp +++ b/cmd/synergys/synergys.dsp @@ -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 # ** DO NOT EDIT ** # 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 use the Export Makefile command and run !MESSAGE -!MESSAGE NMAKE /f "synergyd.mak". +!MESSAGE NMAKE /f "synergys.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE -!MESSAGE NMAKE /f "synergyd.mak" CFG="synergyd - Win32 Debug" +!MESSAGE NMAKE /f "synergys.mak" CFG="synergys - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE -!MESSAGE "synergyd - Win32 Release" (based on "Win32 (x86) Application") -!MESSAGE "synergyd - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "synergys - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "synergys - Win32 Debug" (based on "Win32 (x86) Application") !MESSAGE # Begin Project @@ -29,7 +29,7 @@ CPP=cl.exe MTL=midl.exe RSC=rc.exe -!IF "$(CFG)" == "synergyd - Win32 Release" +!IF "$(CFG)" == "synergys - Win32 Release" # PROP BASE Use_MFC 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 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_Debug_Libraries 1 @@ -87,18 +87,18 @@ LINK32=link.exe # Begin Target -# Name "synergyd - Win32 Release" -# Name "synergyd - Win32 Debug" +# Name "synergys - Win32 Release" +# Name "synergys - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File -SOURCE=.\synergyd.cpp +SOURCE=.\synergys.cpp # End Source File # Begin Source File -SOURCE=.\synergyd.rc +SOURCE=.\synergys.rc # End Source File # End Group # 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" # Begin Source File -SOURCE=.\synergy.ico +SOURCE=.\synergys.ico # End Source File # End Group # End Target diff --git a/cmd/synergyd/synergy.ico b/cmd/synergys/synergys.ico similarity index 100% rename from cmd/synergyd/synergy.ico rename to cmd/synergys/synergys.ico diff --git a/cmd/synergyd/synergyd.rc b/cmd/synergys/synergys.rc similarity index 100% rename from cmd/synergyd/synergyd.rc rename to cmd/synergys/synergys.rc diff --git a/configure.in b/configure.in index babd1f72..213705f3 100644 --- a/configure.in +++ b/configure.in @@ -91,8 +91,8 @@ lib/client/Makefile lib/server/Makefile cmd/Makefile cmd/launcher/Makefile -cmd/synergy/Makefile -cmd/synergyd/Makefile +cmd/synergyc/Makefile +cmd/synergys/Makefile dist/Makefile dist/rpm/Makefile dist/rpm/synergy.spec diff --git a/dist/rpm/synergy.spec.in b/dist/rpm/synergy.spec.in index 124f0e55..a8a7d5fd 100644 --- a/dist/rpm/synergy.spec.in +++ b/dist/rpm/synergy.spec.in @@ -25,16 +25,16 @@ make %install make install DESTDIR=$RPM_BUILD_ROOT -strip $RPM_BUILD_ROOT/usr/bin/synergy -strip $RPM_BUILD_ROOT/usr/bin/synergyd +strip $RPM_BUILD_ROOT/usr/bin/synergyc +strip $RPM_BUILD_ROOT/usr/bin/synergys %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-, root, root) -/usr/bin/synergy -/usr/bin/synergyd +/usr/bin/synergyc +/usr/bin/synergys %doc AUTHORS %doc BUGS %doc COPYING diff --git a/synergy.dsw b/synergy.dsw index b5b1ab12..baae1dce 100644 --- a/synergy.dsw +++ b/synergy.dsw @@ -12,10 +12,10 @@ Package=<5> Package=<4> {{{ Begin Project Dependency - Project_Dep_Name synergy + Project_Dep_Name synergyc End Project Dependency Begin Project Dependency - Project_Dep_Name synergyd + Project_Dep_Name synergys End Project Dependency Begin Project Dependency 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> {{{ @@ -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> {{{