I too was thinking along the lines of "all messages from all clients are sent" and they all contribute, but whilst keeping Synergy 2's switchable master methodology. If we want to keep the master-client analogy and not broadcast to all clients, we could do:   - there is one shared mouse pointer - master = computer with shared mouse pointer within it's bounds - all clients send any input (mouse or keyboard) to this master (and keyboard input is only applied to the master as it has mouse pointer within it's bounds) - this master decides whether it should pass on being the master to another client, and will do if it receives input that would take the shared mouse pointer out of it's bounds, at which point it nominates a new master   However, I think a simpler solution to get it working quicker with how Synergy 2 seems to work (any keyboard or mouse button makes the computer the master) would be to do the following: - make mouse/trackpad movement also trigger becoming a master - when a client becomes a master, make it remember the last shared mouse position and to keep it there (so then all clients should always know the shared mouse position for if they become master)   This solution however would cause 2 computers to constantly become masters (if the user is using a keyboard and mouse on different computers) but it may just work with less modification. I don't really consider race conditions of multiple mouse/trackpads much of an issue as in real life it would be one device that is used at any one time (since it'd be one person).