I find myself ready to start working from any of the three machines I use in my Synergy configuration. I wonder if you could allow for the clients that are connected to the server to also be able to act as the server does, i.e. control the mouse and keyboard of any of the hardware connected in synergy.
While this sounds feasible, it has some potential down sides as well.
The clients would need to capture their mouse/keyboard and relay actions to the server, which would then send them back out to the active screen. This would introduce some additional delay, which might cause mouse movement to feel a bit sluggish. There is already some latency when the mouse is on a client screen - using the client's mouse would probably increase it somewhere between 2 to 4 times.
As Synergy would have to take over the client's mouse and keyboard, you wouldn't have them instantly available for "local" actions on that system. I've found that to be occasionally handy, but that's definitely a personal preference. A more general concern is that things sometimes get unstable - network issues, bugs in Synergy, local system issues - and with Synergy attempting to co-op client input devices you might lose reliable local input control when external issues are glitching Synergy, and local issues have an increased chance of causing issues for all your Synergy connected systems.
Synergy is already fairly complex, and there are a lot of subtle issues that come up due to supporting multiple platforms, all the timing issues related to edge detection, switching screens, clipboard transfer, etc. Adding client-side control increases the places where bugs can hide due to all the additional interactions it would introduce with the existing factors.
If you really want something like this, it might be cleaner to find a way to capture local mouse/keyboard activity on a system and forward them to another as a virtual remote mouse/keyboard, totally independent of Synergy. This would theoretically give you the ability to use any of your system's input devices, without adding additional complexity to Synergy. There would still be additional latency, and some potential for lockout, but it should work without requiring any changes to Synergy itself.
+1 this would be very slick if at all possible.
+1 why not no server and no clients? Synergy is only Synergy on all Machines and works on every machine as server and client?
I really like this idea, as sometimes I want to control my laptop from my desktop, and sometimes it's the other way around. Could some sort of toggle switch in the interface work, say a "Server active" checkbox in the system tray menu? If that is clicked, then a signal is sent to all connected devices informing them of the new server, forcing the old server to be delegated to client. Every device in the network would probably have to be configured on every other device, but if autoconfiguration works then it should be fine.
This fits my use case well. Sometimes, I set my laptop in front of my desktop, and it's nice to be able to use the desktop mouse, and the laptop keyboard. This would solve my use case.
I just purchased Synergy Pro and this is actually the use case I had in mind, I am mildly disappointing it isn't an option. I have my MacBook and Windows PC both setup on the same desk and would love to be able to start work on either machine while maintaining full control of the other.
I'm still happy with my purchase, but please consider adding this option!
Most helpful comment
+1 why not no server and no clients? Synergy is only Synergy on all Machines and works on every machine as server and client?