checkpoint.

This commit is contained in:
crs 2002-07-01 14:01:23 +00:00
parent e267d1dc1c
commit 350cd7e2ca
2 changed files with 82 additions and 63 deletions

66
README
View File

@ -3,10 +3,13 @@ synergy
synergy: [noun] a mutually advantageous conjunction of distinct elements synergy: [noun] a mutually advantageous conjunction of distinct elements
synergy lets you easily share a single mouse and keyboard between synergy lets you easily share a single mouse and keyboard between
multiple computers through software. it also merges each system's multiple computers, each with its own display, using software only.
clipboards into one, allowing cut-and-paste between systems. redirecting the mouse and keyboard is as simple as moving the mouse
redirecting the mouse and keyboard is as simple as moving the off the edge of your screen. synergy merges the clipboards of all
mouse off the edge of your screen. the systems into one, allowing cut-and-paste between systems. it
also synchronizes screensavers so they all start and stop together
and, if screen locking is enabled, only one screen requires a
password to unlock them all.
system requirements system requirements
@ -147,9 +150,7 @@ connected screen. if there is no connected screen in that
direction then the mouse will not leave the starting screen. direction then the mouse will not leave the starting screen.
disconnecting a client while the mouse is on it causes the mouse disconnecting a client while the mouse is on it causes the mouse
to instantly jump to the center of the server screen. note that to instantly jump to the center of the server screen.
there's a bug in this situation where keys may be left in the
logical pressed state; see the "known bugs" section.
the clipboard is automatically transferred between screens. if the clipboard is automatically transferred between screens. if
you copy on one screen you just switch to another screen and paste. you copy on one screen you just switch to another screen and paste.
@ -161,6 +162,17 @@ clipboard. whichever X clipboard was changed last becomes the
Windows clipboard. end-of-line sequences (LF on linux and unix, Windows clipboard. end-of-line sequences (LF on linux and unix,
CRLF on Windows) are automatically converted as necessary. CRLF on Windows) are automatically converted as necessary.
synergy synchronizes screensavers. the screensavers on client
screens are disabled when they connect to the server. when the
primary screen's screensaver starts, the screensaver on each
secondary screen starts too. all the secondary screensavers are
stopped when the primary screensaver stops. moving the mouse or
pressing a key will stop the primary screensaver, regardless of
which screen the mouse was on when the screensavers started. if
the primary screensaver requires a password to unlock then the
user is prevented from switching to the secondary screens until
the primary screen is unlocked.
installing as a daemon/service installing as a daemon/service
------------------------------ ------------------------------
@ -217,7 +229,9 @@ linux, unix:
connect to the X server until it succeeds. the DISPLAY env var connect to the X server until it succeeds. the DISPLAY env var
should be set appropriately before starting synergy. note that should be set appropriately before starting synergy. note that
it probably will not be set when running startup scripts so you it probably will not be set when running startup scripts so you
have to set it yourself (probably to ":0"). have to set it yourself (probably to ":0"). if it's not set
then synergy will use the default ":0.0" which is correct in
most cases.
if the X server goes down then all the clients connected to it if the X server goes down then all the clients connected to it
must terminate. synergy has to deal with this because some must terminate. synergy has to deal with this because some
@ -228,13 +242,13 @@ linux, unix:
some display managers also prevent any X client other than some display managers also prevent any X client other than
those they themselves start from connecting to the X server those they themselves start from connecting to the X server
for security reasons. for these display managers, synergy during login for security reasons. for these display managers,
should be part of the manager's screen initialization script synergy should be part of the manager's screen initialization
and synergy should be started with the --no-restart option script and synergy should be started with the --no-restart
since the display manager will do the restarting. otherwise, option since the display manager will do the restarting.
synergy should not use the --no-restart option and it can be otherwise, synergy should not use the --no-restart option and
started at boot time (sometime after the network is started) it can be started at boot time (sometime after the network is
or when the X server is started. started) or when the X server is started.
finally, some display managers (xdm and kdm, but not gdm) finally, some display managers (xdm and kdm, but not gdm)
grab the keyboard and do not release it until the user logs grab the keyboard and do not release it until the user logs
@ -325,12 +339,13 @@ server command line options
-a, --address <address> listen for connections on the given address -a, --address <address> listen for connections on the given address
-c, --config <pathname> read configuration from <pathname> -c, --config <pathname> read configuration from <pathname>
an address has one of the following forms: <address> has one of the following forms:
<hostname> <hostname>
:<port> :<port>
<hostname>:<port> <hostname>:<port>
<hostname> is a hostname or address of a network interface on the <hostname> is a hostname or address of a network interface on the
server system. <port> is a port number from 1 to 65535. server system. <port> is a port number from 1 to 65535. <hostname>
defaults to the system's hostname and <port> defaults to 24800.
client command line options client command line options
@ -339,7 +354,9 @@ client command line options
--no-camp try connection to server only once --no-camp try connection to server only once
<address> address of server <address> address of server
see the "server command line options" for a description of <address>. see the "server command line options" for a description of <address>
but note that there is no default <hostname> though there is a
default <port>.
release notes release notes
@ -397,22 +414,15 @@ best server.
known bugs known bugs
---------- ----------
all: all:
* screen savers are not handled
* non-ASCII characters are not supported * non-ASCII characters are not supported
* keys may be left in the logical pressed state on a client if it
terminates while the mouse is on that client. physically pressing
and releasing the key fixes the problem.
* plain text is the only supported clipboard format * plain text is the only supported clipboard format
windows: windows:
* screen flashes when entering the screen * screen flashes when entering the screen
* synergy may interfere with desktop switcher programs, however * synergy may interfere with desktop switcher programs. however,
synergy understands and handles multiple desktops. synergy understands and handles multiple desktops.
* there should be a control panel * there should be a control panel
* there should be a taskbar icon * there should be a taskbar icon
* hook DLL sometimes not properly shutdown. this is usually only
a problem when forcibly killing the synergy server then trying
to restart it. logging off and on should fix it.
windows 95 family: windows 95 family:
* typing into a console window can be slow * typing into a console window can be slow
@ -424,9 +434,6 @@ windows NT family:
* does not gracefully handle NoInteractiveServices being enabled * does not gracefully handle NoInteractiveServices being enabled
linux: linux:
* one thread may linger if the application crashes.
use kill or killall to terminate this process (threads are
processes under linux) before restarting.
* some keyboards have toggle keys that toggle on on key press and * some keyboards have toggle keys that toggle on on key press and
toggle off on the key release after the next key press. synergy toggle off on the key release after the next key press. synergy
doesn't handle these properly. doesn't handle these properly.
@ -448,3 +455,4 @@ tips and tricks
* turn off mouse driven virtual desktop switching on X windows. it * turn off mouse driven virtual desktop switching on X windows. it
will interfere with synergy. use keyboard shortcuts instead. will interfere with synergy. use keyboard shortcuts instead.
* synergy's screensaver synchronization works best with xscreensaver.

79
notes
View File

@ -7,6 +7,17 @@ hangup if invalid
query info --> query info -->
<-- info (size) <-- info (size)
---
enable heartbeat disconnection or remove heartbeat sending in client
should either ship with it fully enabled or fully disabled
possibly make it part of startup negotiation
---
sometimes jumping too far into secondary screen
probably bogus delta (adding in center pixel coords into delta?)
this is with an X primary and secondary
don't know which matters but probably X primary
--- ---
use automake use automake
use doxygen use doxygen
@ -93,14 +104,6 @@ bug with half-duplex keys
now grace starts server and is locked to screen now grace starts server and is locked to screen
grace should ignore half duplex keys when seeing if locked to screen grace should ignore half duplex keys when seeing if locked to screen
---
must send up key events when leaving screen for keys still down
some key combos get eaten and the key ups aren't sent
e.g. ctrl+alt+del on win2k to grace
mouse is forced back to to win2k
ctrl and alt up not sent to grace
grace thinks ctrl and alt are down 'til user physically press/releases them
--- ---
bug in updating screens bug in updating screens
saw a goofy set of screens after update saw a goofy set of screens after update
@ -123,10 +126,17 @@ Xsetup file may have to kill previous synergy
not handling international characters not handling international characters
--- ---
screen saver won't lock screen if on secondary screen xscreensaver won't start if pointer on secondary screen
because synergy has mouse/keyboard grabbed unless using MIT or SGI screen saver extensions
synergy will immediately release grabs when screen saver activates otherwise it cannot know when to stop the screen saver
but looks like xscreensaver wont map window until it grabs cos it can't grab mouse and keyboard
---
all screensavers hidden when showing win32 screensaver lock window
win32 kills the screen saver and shows the lock window
synergy thinks the screen saver is dead (cos the process is)
deactivates secondary screen screen savers
user is constrained to locked display, though
also, we don't detect screen saver restarting if user doesn't unlock screen
--- ---
not distinguishing between caps lock and shift lock not distinguishing between caps lock and shift lock
@ -142,12 +152,7 @@ not distinguishing between caps lock and shift lock
currently sending all clipboards to all clients currently sending all clipboards to all clients
some clients may not need all clipboards some clients may not need all clipboards
add filtering mechanism add filtering mechanism
setup is probably part of clipboard (format) negotiation
---
sometimes jumping too far into secondary screen
probably bogus delta (adding in center pixel coords into delta?)
this is with an X primary and secondary
don't know which matters but probably X primary
--- ---
not handling large motif selections not handling large motif selections
@ -167,16 +172,6 @@ inconsistencies
should use pointers for any in/out parameter should use pointers for any in/out parameter
but using references in some places but using references in some places
---
win32 hook DLL sometimes not unloaded when server is killed?
will get assertion on restart as if DLL was still loaded.
can tell because all DLL copies share data segment.
should prevent multiple copies from loading (or initializing)
replace asserts with (multithread locked) check of variables
return 0 if busy
server must handle failure
try to figure out why it's not unloading
--- ---
avoid fullscreen transparent window on win32 avoid fullscreen transparent window on win32
using CBT hook to discard activation/focus messages using CBT hook to discard activation/focus messages
@ -200,7 +195,7 @@ keyboard hook problems (win32)
thinks the key is always down. thinks the key is always down.
--- ---
try to determine keyboard quirks automatically try to determine X11 keyboard quirks automatically
in particular, set the half-duplex flags in particular, set the half-duplex flags
maybe KBD extension will help determine this maybe KBD extension will help determine this
@ -219,6 +214,9 @@ adjust thread priorities on win32
haven't tried real-time priority haven't tried real-time priority
a very high priority on client fixes delay when typeing into console a very high priority on client fixes delay when typeing into console
is it the output console causing the slowness? is it the output console causing the slowness?
mouse motion compression seems to handle slow dragging on grace
pretty sure nothing else was wrong on grace
maybe same problem and solution on win32
--- ---
results: results:
@ -371,11 +369,6 @@ send all toggle states instead of (individual) toggle ups/downs (gspencer)
and turn it off on the master (and all other clients) too, but I think and turn it off on the master (and all other clients) too, but I think
that's probably too complicated to implement. that's probably too complicated to implement.
dragging windows is too slow
grace (as client) exhibits this
dunno if it happens with audrey2 as the client
liz says her windows laptop does it too
double clicking NT binaries fails (liz) double clicking NT binaries fails (liz)
add note to README or use separate binaries for services. client add note to README or use separate binaries for services. client
would also need a dialog to query options. server would probably would also need a dialog to query options. server would probably
@ -396,6 +389,24 @@ non-functional on ctrl+alt+del screen in win2k (kurt)
i suppose it must be when win2k is the client. mouse input wasn't i suppose it must be when win2k is the client. mouse input wasn't
working. keyboard probably didn't work either. working. keyboard probably didn't work either.
gspencer:
OK, I've narrowed it down a little -- it seems to happen if you have any
key down (I tried the shift key and the letter 's' key) when you cross
over from master to client, which would make me suspect the "capture"
code, since if you have a key down you aren't supposed to be able to
cross over...
== fixed? ===
dragging windows is too slow
grace (as client) exhibits this
dunno if it happens with audrey2 as the client
liz says her windows laptop does it too
also closing/iconifying has a delay
dragging multiple files also sluggish
liz seems to still be seeing sluggish cursor updates
--- ---
automake stuff automake stuff
rebuild: rebuild: