Xvfb - virtual framebuffer X server for X Version 11
Xvfb [ option ] ...
Xvfb is an X server that can run on machines with no display hardware and no physical
input devices. It emulates a dumb framebuffer using virtual memory.
The primary use of this server was intended to be server testing. The mfb or cfb code for
any depth can be exercised with this server without the need for real hardware that sup-
ports the desired depths. The X community has found many other novel uses for Xvfb,
including testing clients against unusual depths and screen configurations, doing batch
processing with Xvfb as a background rendering engine, load testing, as an aid to porting
the X server to a new platform, and providing an unobtrusive way to run applications that
don't really need an X server but insist on having one anyway.
To build Xvfb, put the following in your host.def and remake.
#define BuildServer YES
#define XVirtualFramebufferServer YES
In addition to the normal server options described in the Xserver(1) manual page, Xvfb
accepts the following command line switches:
-screen screennum WxHxD
This option creates screen screennum and sets its width, height, and depth to W, H,
and D respectively. By default, only screen 0 exists and has the dimensions
This option specifies a list of pixmap depths that the server should support in addi-
tion to the depths implied by the supported screens. list-of-depths is a space-sepa-
rated list of integers that can have values from 1 to 32.
This option specifies the directory in which the memory mapped files containing the
framebuffer memory should be created. See FILES. This option only exists on machines
that have the mmap and msync system calls.
This option specifies that the framebuffer should be put in shared memory. The shared
memory ID for each screen will be printed by the server. The shared memory is in xwd
format. This option only exists on machines that support the System V shared memory
If neither -shmem nor -fbdir is specified, the framebuffer memory will be allocated with
This option specifies how to adjust the pixelization of thin lines. The value n is a
bitmask of octants in which to prefer an axial step when the Bresenham error term is
exactly zero. See the file Xserver/mi/miline.h for more information. This option is
probably only useful to server developers to experiment with the range of line pix-
elization possible with the cfb and mfb code.
-blackpixel pixel-value, -whitepixel pixel-value
These options specify the black and white pixel values the server should use.
The following files are created if the -fbdir option is given.
Memory mapped file containing screen n's framebuffer memory, one file per screen. The
file is in xwd format. Thus, taking a full-screen snapshot can be done with a file
copy command, and the resulting snapshot will even contain the cursor image.
Xvfb :1 -screen 0 1600x1200x32
The server will listen for connections as server number 1, and screen 0 will be
depth 32 1600x1200.
Xvfb :1 -screen 1 1600x1200x16
The server will listen for connections as server number 1, will have the default
screen configuration (one screen, 1280x1024x8), and screen 1 will be depth 16
Xvfb -pixdepths 3 27 -fbdir /usr/tmp
The server will listen for connections as server number 0, will have the default
screen configuration (one screen, 1280x1024x8), will also support pixmap depths of
3 and 27, and will use memory mapped files in /usr/tmp for the framebuffer.
xwud -in /usr/tmp/Xvfb_screen0
Displays screen 0 of the server started by the preceding example.
X(7x), Xserver(1), xwd(1), xwud(1), XWDFile.h
David P. Wiggins, The Open Group, Inc.
X Version 11 Release 6.6 XVFB(1)