Table of Contents
Xvfb - virtual framebuffer X server for X
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 supports 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 /* if
you aren't already building other servers */
#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[@x,y]
- This option
creates screen screennum and sets its width, height, and depth to W, H,
and D respectively, and optionally the screen origin (for Xinerama purposes)
to (x,y). By default, only screen 0 exists and has the dimensions 1280x1024x8.
If a screen origin is not specified when using Xinerama, the default is
for screen N to be positioned to the right of screen N-1.
- -pixdepths list-of-depths
- This option specifies a list of pixmap depths that the server should support
in addition to the depths implied by the supported screens. list-of-depths
is a space-separated list of integers that can have values from 1 to 32.
- -fbdir framebuffer-directory
- 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 interface.
-shmem nor -fbdir is specified, the framebuffer memory will be allocated
The following files are created if the -fbdir option is given.
- -linebias n
- 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 pixelization
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
- 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
- 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 1600x1200.
- 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
screen 0 of the server started by the preceding example.
David P. Wiggins, The Open Group, Inc.
Table of Contents