Newer Older
1 2 3 4 5 6

  x11spice connects a running X server as a Spice server.

It owes a debt to the excellent x11vnc project, from the libvncserver project.
Jeremy White's avatar
Jeremy White committed
7 8 9 10 11 12 13 14 15 16 17 18 19 20
That project proved that this could be done, and done well.  Some of the
logic, notably that of scan.c, was inspired by the code in x11vnc.

x11spice has been developed and tested on Linux desktop systems.
It could be extended to work on other UNIX systems with X11 servers with
a modest amount of work.

It has not at all been designed or intended to work with non X systems,
such as Windows or macOS.  The code was written with the hope that others
could make such an extension if they wanted to do the work, but it would
be a substantial amount of effort.
21 22 23 24 25


Jeremy White's avatar
Jeremy White committed
26 27 28 29
Building is pretty much a matter of doing configure && make.

If you are building from git, you will likely want to do:
30 31
to create and run configure.  You will need autoconf and automake.

Jeremy White's avatar
Jeremy White committed
32 33 34

If you have a regular source drop, you should be able to do:

Jeremy White's avatar
Jeremy White committed
36 37
Presuming that first step runs successfully, then you can just invoke:

Jeremy White's avatar
Jeremy White committed
39 40 41 42 43 44 45 46 47 48 49
To build x11spice.

You can perform
    make install
to install x11spice to your system, although x11spice will run fine
out of the source tree simply by running

You can invoke
    make check
to run the regression tests to make sure everything is working well.
50 51 52 53 54 55

x11spice will use, in this order:
  - Command line parameters
Jeremy White's avatar
Jeremy White committed
56 57
  - An x11spice file in the users's config directory (e.g. ~/.config/x11spice/x11spice.conf)
  - An x11spice file in the system configuration directory (e.g. /etc/xdg/x11spice/x11spice.conf)
58 59 60 61

Some options are only available in the configuration file, in an attempt to
make the command line usage somewhat more simple.

Jeremy White's avatar
Jeremy White committed
The xdg/x11spice//x11spice.conf file contains a commented example with all the
63 64 65 66 67 68 69 70 71
configuration examples described.

The general idea is to invoke x11spice while connected to your X server.

You will need to select a port to listen to and a password.  There are
a variety of options to help with that selection.  The simplest command:
Jeremy White's avatar
Jeremy White committed
72 73
    x11spice --generate-password
should start a session on port 5900 and give you a one time
74 75 76 77
password you can use to connect.

Refer to the x11spice man page for more details.

78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
Spice Video Dummy Driver
If you wish to create a 'headless' connection to a server - create an
X session without using the main system display - there is a straight
forward process that is now included with x11spice.

That is, x11spice now optionally builds an Xorg driver that is based
on the dummy driver and the modesetting driver.  This gives a virtual
frame buffer driver which should include modern Mesa capabilities.

To use this driver, simply add:


to the configure line.  This will build the Xorg driver.  A simplistic
example is included showing the general concepts of using this driver.
Refer to the spice-video-dummy/ bash script for more

Jeremy White's avatar
Jeremy White committed

98 99 100 101 102
Using code coverage (gcov)
If you want to use gcov for source code coverage, you will need
the AX_CODE_COVERAGE macro.  On Fedora, that is installed
by the autoconf-archive package.  Once you have that available,
Jeremy White's avatar
Jeremy White committed
103 104 105
uncomment the appropriate line in and src/,
reconfigure with --enable-code-coverage, and rebuild.  That will
then enable a check-code-coverage target in the Makefile.
106 107

Jeremy White's avatar
Jeremy White committed
108 109 110 111 112 113 114
As of July 2016, x11spice was maintained by the Spice community, at  An IRC channel (#SPICE) and a mailing list (spice-devel)
are available.

115 116 117 118
x11spice was initially created by Jeremy White <>
in July of 2016.