directvnc(1) a vnc client for the linux framebuffer device


directvnc server:display [options]


DirectVNC is a client implementing the remote framebuffer protocol (rfb) which is used by VNC servers. If a VNC server is running on a machine you can connect to it using this client and have the contents of its display shown on your screen. Keyboard and mouse events are sent to the server, so you can basically control a VNC server remotely. There are servers (and other clients) freely available for all operating systems.

What makes DirectVNC different from other unix vnc clients is that it uses the linux framebuffer device through the DirectFB library which enables it to run on anything that has a framebuffer without the need for a running X server. This includes embedded devices. DirectFB even uses acceleration features of certain graphics cards. Thus a lot of configuration can be done by creating the library specific configuration file /etc/directfbrc or the program-specific configuration file /etc/directfbrc.directvnc. See directfbrc(5) or find out all about DirectFB here:

DirectVNC basically provides a very thin VNC client for unix framebuffer systems.


Hitting <ctrl-q> exits the viewer.                                         


-h, --help
display help output and exit
-v, --version
output version information and exit
-p, --password
password string to be passed to the server for authentication. Use this with care!
-b, --bpp
the bits per pixel to be used by the client. Currently only 16 and 24 bpp are available.
-e --encodings
DirectVNC supports several different compression methods to encode screen updates; this option specifies a set of them to use in order of preference. Encodings are specified separated with spaces, and must thus be enclosed in quotes if more than one is specified. Available encodings, in default order for a remote connection, are "copyrect tight hextile zlib corre rre raw". For a local connection (to the same machine), the default order to try is "raw copyrect tight hextile zlib corre rre". Raw encoding is always assumed as a last option if no other encoding can be used for some reason.
-f --pollfrequency
time in ms to wait between polls for screen updates when no events are to be processed. This reduces cpu and network load. Default is 50 ms.
-s, --shared (default)
Don't disconnect already connected clients.
-n, --noshared
Disconnect already connected clients.
-n, --nolocalcursor
Disable local cursor tracking By default, and if the server is capable of the SoftCursor encoding, mouse movements do not generate framebuffer updates and the cursor state is kept locally. This removes mouse pointer lag and lets the connection appear faster.

-c --compresslevel level
Use specified compression level (0..9) for "tight" and "zlib" encodings (only usable with servers capable of those encodings). Level 1 uses minimum of CPU time and achieves weak compression ratios, while level 9 offers best compression but is slow in terms of CPU time consumption on the server side. Use high levels with very slow network connections, and low levels when working over high-speed LANs. It's not recommended to use compression level 0, reasonable choices start from the level 1.

-q --quality level
Use the specified image quality level (0..9) for "tight" encoding (only usable with servers capable of those encodings). Specifying this option allows "tight" encoder to use lossy JPEG compression. Quality level 0 denotes bad image quality but very impressive compression ratios, while level 9 offers very good image quality at lower compression ratios. Note that "tight" encoder uses JPEG to encode only those screen areas that look suitable for lossy compression, so quality level 0 does not always mean unacceptable image quality.

-m --modmap PATH
Path to the modmap (subset of X-style) file to load. With this option, it is possible to set an alternative keyboard layout, with ability to support non-latin characters such as Cyrillic. A plain text file, containing a subset of xmodmap(1) syntax (only keycode expressions are recognized with up to four KEYSYMNAMEs) can be converted into the format that directvnc understands, and can be loaded upon directvnc startup with this option. See directvnc-kbmapping(7).


At the moment, it is still necessary to use the --bpp command line option to set color depth. When negotiating with the remote VNC server side, color depth supplied by the server will be used. It is therefore necessary to make sure (at least in the present) that screen color depth (default, or set in the DirectFB configuration file), color depth supplied at the command line, and remote VNC server color depth all match.


Till Adam, Dimitry Golubovsky, Malte S. Stretz, Loris Boillet and others, based on AT&T and tightvnc VNC implementations.