This is ggivnc, a VNC client using libraries from the GGI project to draw graphics and handle input.

The reason this VNC client came about was to fill the need for a companion to the VNC target in libggi. All existing VNC code was at the time of writing and to the best of my knowledge GPL and originating from the original AT&T code base (either that, or hidden from sight). This VNC client is an implementation from scratch featuring the following encodings:

Raw, CopyRect, RRE, CoRRE, Hextile, Tight, Zlib, ZlibHex, ZRLE, LastRect, DesktopName, DesktopSize, WMVi and gii.


ggivnc currently requires cvs-head versions of the GGI libraries (to be 3.0) and an as of yet unreleased version of the ggi-widgets library for full functionallity. It will get by with latest stable GGI libraries though (i.e. version 2.x), but then you will not get scrollbars.

Interesting Properties

Thanks to the versatility of the GGI libraries, a number of interesting properties of ggivnc deserves to be mentioned. ggivnc can be used as:

And I'm sure there are other possibilities.

Latest Release

The latest release is 0.5.0, which can be downloaded from sourceforge:

ggivnc-0.5.0.tar.gz (source)
ggivnc-0.5.0.exe (Win32 executable)

The Win32 executable is standalone, and no installation is necessary.

Man Page

The man page describes the encodings and the options.

Bleeding Edge

To get the latest version of ggivnc, the git repository can be cloned like this:

git clone git://

Significant changes are listed in the change log.

SourceForge Project

The project is hosted on

Freshmeat Page

New versions are announced on

CIA Notifications

Commit messages are sent to CIA.


Here is a screenshot.

Get ggivnc at