ggivnc as a proxy

Since the addition of the display-vnc target to libggi, ggivnc is automatically usable as a vnc proxy (and as a mux/demux). This can be usable if you for example want to provide a view-only password in addition to the normal password, and the "real" vnc server doesn't support such a configuration.

Other situations where a proxy comes in handy is if you want to support more (or less) encodings, or if you want to relieve the real vnc server computer from the strain of serving many vnc clients.

Normal Proxy

You can for example add support for view-only connections to the vnc server at If this server has the password "secret", and you want to additionally allow the password "public", but that password should not allow any modifications to the software running at, first create a text file for each of the passwords containing just the password:

$ echo secret > pass
$ echo public > view

Then configure the environment and fire up the proxy:

$ export GGI_DISPLAY="vnc: -passwd=pass -viewpw=view"
$ ggivnc -p pass

On other shells, the environment modification might work differently than the above export, e.g. in a Windows cmd shell, you would write:

C:\>set GGI_DISPLAY=vnc: -passwd=pass -viewpw=view
C:\>ggivnc -p pass

Note: Don't use quotes when setting the environment variable in the Windows cmd shell

Splitting a Multimonitor VNC Connection

Consider a vnc server which provides a multimonitor system as one big framebuffer. ggivnc can be used to split this big framebuffer up in the original screens.

For example, if the server has screen one at origin coordinates 0,0 and size 1024,768, and screen two at origin 1024,0 with size 1600,1200, you can use display-tile and display-vnc to split them up like this:

$ export GGI_DISPLAY="tile:0,0,1024,768,(vnc: -display=1):1024,0,1600,1200,(vnc: -display=2)"
$ ggivnc -p pass

You can now connect to localhost:1 (or localhost::5901) to interact with screen one, and localhost:2 for screen two.


There will always be a vnc connection to the real vnc server in these setups. This can be worked around by starting ggivnc from inetd.

Neither ggivnc nor display-vnc support clipboard operations so those will not work across the vnc connection. Chat, resize and file transfers are not supported either. And the only supported authentication scheme is vnc authentication. Logo