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 lets you easily share a single mouse and keyboard between
multiple computers through software. it also merges each system's
clipboards into one, allowing cut-and-paste between systems.
redirecting the mouse and keyboard is as simple as moving the
mouse off the edge of your screen.
multiple computers, each with its own display, using software only.
redirecting the mouse and keyboard is as simple as moving the mouse
off the edge of your screen. synergy merges the clipboards of all
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
@ -147,9 +150,7 @@ connected screen. if there is no connected screen in that
direction then the mouse will not leave the starting screen.
disconnecting a client while the mouse is on it causes the mouse
to instantly jump to the center of the server screen. note that
there's a bug in this situation where keys may be left in the
logical pressed state; see the "known bugs" section.
to instantly jump to the center of the server screen.
the clipboard is automatically transferred between screens. if
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,
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
------------------------------
@ -217,7 +229,9 @@ linux, unix:
connect to the X server until it succeeds. the DISPLAY env var
should be set appropriately before starting synergy. note that
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
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
those they themselves start from connecting to the X server
for security reasons. for these display managers, synergy
should be part of the manager's screen initialization script
and synergy should be started with the --no-restart option
since the display manager will do the restarting. otherwise,
synergy should not use the --no-restart option and it can be
started at boot time (sometime after the network is started)
or when the X server is started.
during login for security reasons. for these display managers,
synergy should be part of the manager's screen initialization
script and synergy should be started with the --no-restart
option since the display manager will do the restarting.
otherwise, synergy should not use the --no-restart option and
it can be started at boot time (sometime after the network is
started) or when the X server is started.
finally, some display managers (xdm and kdm, but not gdm)
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
-c, --config <pathname> read configuration from <pathname>
an address has one of the following forms:
<address> has one of the following forms:
<hostname>
:<port>
<hostname>:<port>
<hostname> is a hostname or address of a network interface on the
server system. <port> is a port number from 1 to 65535.
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
@ -339,7 +354,9 @@ client command line options
--no-camp try connection to server only once
<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
@ -397,22 +414,15 @@ best server.
known bugs
----------
all:
* screen savers are not handled
* 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
windows:
* 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.
* there should be a control panel
* 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:
* typing into a console window can be slow
@ -424,9 +434,6 @@ windows NT family:
* does not gracefully handle NoInteractiveServices being enabled
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
toggle off on the key release after the next key press. synergy
doesn't handle these properly.
@ -448,3 +455,4 @@ tips and tricks
* turn off mouse driven virtual desktop switching on X windows. it
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 -->
<-- 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 doxygen
@ -93,14 +104,6 @@ bug with half-duplex keys
now grace starts server and is 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
saw a goofy set of screens after update
@ -123,10 +126,17 @@ Xsetup file may have to kill previous synergy
not handling international characters
---
screen saver won't lock screen if on secondary screen
because synergy has mouse/keyboard grabbed
synergy will immediately release grabs when screen saver activates
but looks like xscreensaver wont map window until it grabs
xscreensaver won't start if pointer on secondary screen
unless using MIT or SGI screen saver extensions
otherwise it cannot know when to stop the screen saver
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
@ -142,12 +152,7 @@ not distinguishing between caps lock and shift lock
currently sending all clipboards to all clients
some clients may not need all clipboards
add filtering mechanism
---
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
setup is probably part of clipboard (format) negotiation
---
not handling large motif selections
@ -167,16 +172,6 @@ inconsistencies
should use pointers for any in/out parameter
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
using CBT hook to discard activation/focus messages
@ -200,7 +195,7 @@ keyboard hook problems (win32)
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
maybe KBD extension will help determine this
@ -219,6 +214,9 @@ adjust thread priorities on win32
haven't tried real-time priority
a very high priority on client fixes delay when typeing into console
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:
@ -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
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)
add note to README or use separate binaries for services. client
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
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
rebuild: