Multi-pointer Remote Desktop: Ending the Mouse/Keyboard Wars

Jan 27, 2009

Developer Chris Ball has patched the Vino Virtual Network Computing (VNC) server to display multiple simultaneous mouse and keyboard events. The result could be an end to the battle over mouse and keyboard control among local and remote users in a VNC environment.

As Chris Ball says in his blog, "Remote desktop is a pretty useful technology. It would be more useful if it wasn't so competitive, though; when someone joins, the sharer has to sit back and watch, or fight over who gets control. Well, now it's cooperative."

Ball has patched the Vino VNC server so that all VNC clients have independent mouse and keyboard control. The patch is based on Peter Hutterer's Multi-pointer X (MPX) extensions to (destined for X Server 1.6.0) that allow driving a desktop with multiple mice and keyboards.

The patch applies to the server only; the clients don't need to be modified to cooperate. Every newly connected mouse/keyboard pair is registered and events are sent to the appropriate client. Ball admits that his patch is still a prototype, with some bugs. Notably, "each client can only see the pointer of themselves and the server, although the server can see everyone's pointer." He's actively working on fixing the bugs and integrating the changes into the Vino repository "so that it's ready for when the distros start shipping a multi-pointer X server." VNC would then give a user the choice of a shared cursor or multiple cursors, assuming the user's X server supports MPX.

Testing the new functionality requires an MPX-compliant X Server, an MPX-capable window manager (such as Compiz) and Ball's patches. His blog also includes a demo video of his patched VNC in action.

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More