Collaborative VNC (v.0.5.1)

What is Collaborative VNC?

Collaborative VNC lets you share a computer desktop between multiple people, who can each be all the way across the Internet from each other. Everyone can see everyone else's mouse pointers, and you can take turns controlling the desktop, so that everyone is not clicking on everyone else's toes all the time.

It should be noted that Collaborative VNC is really only a prototype at this stage. Be aware that this code is not production quality. I'm looking forward to rewriting it at a patch to some more portable vnc implementation. But for now, if you find problems with it, please let me know!

Where is Collaborative VNC?

My current patch to VNC is here. It should be applied to TightVNC for unix/linux version 1.2.9 with the command `patch -p1 < ../vnc-collaborate5.1.diff` from within the un-tgz'ed vnc_unixsrc directory, and with the diff in the same directory that the vnc_unixsrc is in.

What does Collaborative VNC do?

Multiple Mouse Pointers (Sort of)

With Collaborative VNC, when multiple people connect to one desktop, you can see everyone else's mouse pointer. As of version 0.5, each user's mouse pointer (besides your own) is labelled with that user's name. Everyone can move their own pointer independently from the others, although only one mouse at a time can actually interact with the desktop. Every member (every instance of vncviewer) connected to any given desktop (Xvnc session) gets a different colored mouse pointer. The first 8 members each get unique colors, and then it begins recycling.

(If you think you can come up with a larger, better set of colors that are easily distinguishable, please tell me!)

Floor Passing: Controlling Who's in Control

With Collaborative VNC, you have control over who "has the floor" (is controlling the desktop). You can set it up in many ways, ranging from a setup where everyone can take control whenever they want, to a setup where whoever has control keeps it until they decide to give it up.

The Member List in the Menu

When you pop up the VNC menu by pressing the F8 key, the bottom part of this menu contains a list of the names of all the members of this desktop. Clicking on a name gives that person control.

Command-line Options

Why would I want to use it?

It makes shared vnc sessions work much more smoothly. And being able to see everyone else's mouse pointers can add a much needed method of spatial communication. It can also be nice for demos where you want one person in control, and everyone else to be able to point as they ask questions. (Use vncviewer -autoreleasedelay -1 to disable automatically giving up control.)

I also think it could be useful as a way to work remotely with others. Try opening up one Xvnc session per application you're sharing. Maximize each the shared application to make it fill its Xvnc desktop. Now each person can be in control of a different app, and you can easily pass control of the apps around. So two people could take turns editing, and watching/pointing in an emacs window, while someone else looks up info in a mozilla window. Then someone could take control of the mozilla window, copy some text from it, take control of the emacs window and copy it into there...

Todo List

These are lots of things I still want to do with this project. And I'm doing them! With various speeds and intensities. This list is much shorter than it was in January... But I'd like to grow this list with new ideas so I can keep choosing the coolest and most fun tasks to work on.

Contact Me

Feel free to email me with questions, comments, feature requests, etc. at levittben at yahoo com. (Please excuse the low-tech and inaccurate obfuscation.)