Probably the most useful Open Source tool of all (ok, SSH is more useful), VNC was originally created by the AT&T Research facility in Cambrige and is a remote display protocol that, despite being rather inefficient (something modern forks try to improve upon, but certaintly still less than RDP), has the advantage of being very simple and with very light clients (the Windows binary is contained within just 230KB, and Java implementations can be downloaded on-the-fly from any browser).
Mac OS X includes a VNC server (check the Sharing preference pane, it's part of Apple Remote Desktop).
Clients (Mac OS X):
- JollysFastVNC - currently in alpha, but already the best client out there in terms of speed and international keyboard support.
- VNCDimension seems to have partial support for non-US keyboards (but no dead keys) and very fast graphical updates.
- Chicken of the VNC - No international key support, works OK with the built-in Mac OS X server.
- VNCThing - read my blog entry for more (and a link to the source code).
- Workspot modified VNC
Clients (Other):
- FlashVNC - a Flash viewer.
- MochaVNC - for Palm and Pocket PC, supports the newer procotol versions and has a built-in SSH tunneler.
- PVNC, a VNC client for the PlayStation Portable
- DirectVNC, fbvnc - framebuffer-based clients.
- Palm VNC - with server-side scaling extensions
- Enhanced Full-Screen Clients
- SSHVNC - a combined client
Servers:
- Schnitz Remote - for reverse connections.
- Alkit VNC - allows single-window sharing.
- RealVNC - the original (and still the reference) implementation. Also has the most efficient client (old homepage)
- Vine Server (formerly called OSXvnc) - native Mac OS X server, which now supports multiple simultaneous remote sessions
- Ultra VNC Single-Click Server - a nice, customizable Windows server that helpdesk staff can e-mail to someone in need of help.
- J2ME VNC - for MIDP/J2ME
- MetaVNC, an intriguing way to share single windows
Tools and Libraries:
- VNC Snapshot - can take screenshots of a section of the display and save them in JPEG format.
- VNCj - a nice way to serve Java AWT applications.
- Vnc2swf - a Flash recording tool, which now has an editing tool available.
- LibVNCServer - also has a client library
- perlVNC - fear.
- PyVNC - a Python VNC client
- VNC Reflector
Tricks:
My current (minimalistic) startup file, so that I remember that unsetting SESSION_MANAGER is the right way to avoid complaints from gnome-session:
$ cat .vnc/xstartup #!/bin/sh unset SESSION_MANAGER [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & gnome-session &
Multi-Machine (a2b):
These allow you to have two different machines side by side and move the mouse/keyboard across machines. Not all of them are related to VNC, but VNC has been used for this purpose for a long time now and is better understood by most people:
- Synergy - a platform-agnostic package focused on precisely this application - QuickSynergy is a very nice repackaging.
- osx2x - does it all, Mac to X or VNC
- osx2vnc
- x2vnc - X to VNC
- win2vnc - Windows to VNC, not multi-monitor friendly, (another version which is multi-monitor friendly)
- x2x - the original concept, for completeness