[Sugar-devel] WatchMe-1, a VNC activity

Benjamin M. Schwartz bmschwar at fas.harvard.edu
Wed Aug 12 00:25:14 EDT 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Announcing WatchMe-1, an activity that brings VNC to Sugar.

How to try it:
On two Sugar instances:
1. su -c yum install gtk-vnc-python (or equivalent for your operating system)
2. Install http://bemasc.net/~bens/WatchMe-1.xo
3. Start the activity on one instance, and share it with the other.

What it does:
WatchMe lets you share a view of your screen.  Anyone who joins a shared
WatchMe instance can see everything that happens on the initiator's
screen.  Participants cannot affect the contents of the screen; WatchMe is
"view-only".

Why do this:
Live sharing of screens may have educational utility.  Most obviously, it
allows live demonstrations of arbitrary actions from one screen to others.

How it works:
WatchMe contains a static binary of x11vnc [1], a VNC server that shares
an existing X session.  The initiator starts a server, accepting
connections only from localhost.  The activity forwards the localhost port
over a Telepathy stream tube.  Joiners connect to the stream tube, and
connect a VNC client to it.  The VNC client is gtk-vnc's python bindings [2].

Help needed:
1. The GUI is singularly uninspiring.  GUI developers help welcome.
2. The package has external dependencies and contains static binaries,
both of which are irritating.  Unfortunately, neither x11vnc nor any
suitable substitute is packaged for Fedora, so binaries in the package are
unavoidable.  Therefore, moving all dependencies into the bundle would be
helpful, but I don't know how.
3. gtk-vnc-viewer is terribly slow and laggy.  RealVNC's vncviewer [3] is
much faster and generally better, but I cannot figure out how to use it in
an activity.  It opens its own X window, which appears separately in the
activities tray as an anonymous circle.  Help from someone who understands
window management would be greatly appreciated.
4. Testing.  In particular, scalability would be good to know.  I suspect
that more than about 4 simultaneous clients will become unusable on a
wireless network, but this is purely a guess.
5. More advanced functionality?  Remote screenshots? Sound? Unix sockets?
XS reflectors?

Security notes:
WatchMe does not represent a significant security threat, in my opinion.
It does not permit remote users to take any  action on your machine except
to fetch bitmaps.  If you share a session by invitation, then only invited
users may participate.  However, it is worth noting that WatchMe would be
impossible to implement as an activity in a more secure Sugar system.  An
arbitrary activity should not be able to observe all of the user's actions
and transmit those actions in full over the network.  Moreover, WatchMe is
only a few lines of code away from an activity that allows the remote user
to control your mouse and keyboard.

If a security system is ever implemented that breaks WatchMe, I will be
happy, and I will gladly rewrite it as a Glucose component.

[1] http://www.karlrunge.com/x11vnc/
[2] http://live.gnome.org/gtk-vnc
[3] http://www.realvnc.com/products/free/4.1/man/vncviewer.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.11 (GNU/Linux)

iEYEARECAAYFAkqCRCoACgkQUJT6e6HFtqTtbQCeJPYcdNvCo8hsZnm7vbDZ2/du
EiIAn3r4iaPqZFfDp74/H4l0BsdKSLYc
=M2u9
-----END PGP SIGNATURE-----


More information about the Sugar-devel mailing list