Docker/Xephyr environment for XFCE testing
Clone or download


Currently this is just a playground to setup xfce in docker.
This is a xubuntu 17.10, with a build from git sources of all core Xfce components + some apps for testing.


The tests are run automatically by travis.

Those test are usually errored or failed as we are building master of the xfce repositories. A more stable branch will follow.

Build Status


This test is set-up as a docker container which is displaying it's X11 content on a Xephyr instance on your screen.

The first process to be started is LDTP As "toolkit-accessibility" is activated (see Dockerfile) LDTP provides an XMLRPC port to run automated tests.

On top of LDTP there is Behave running a series of tests.

You can also just start the container and "play around" in the newest XFCE environment...

make manual-session


either "read" the Makefile :) or at least assure docker and Xephyr to be on-board

sudo apt install -y xserver-xephyr xvfb


If you don't want to build this docker image on your own (with the Makefile from github) you should

  • pull the image from docker-hub
  • start Xephyr
  • run the container (having the X11 displayed in Xephyr)

here are those steps as copy'n'paste lines

docker pull schuellerf/xfce-test:latest
Xephyr :1 -ac -screen 800x600 &
docker run --name xfce-test --rm --env DISPLAY=":1" --volume /tmp/.X11-unix:/tmp/.X11-unix schuellerf/xfce-test:latest

to stop testing you can leave the xfce-session and close Xephyr or

killall Xephyr

or just close Xephyr - which would be "the hard way"


To inspect stuff inside the docker to help create more tests you might want to start sniff which will help you identify the windows and buttons for LDTP.

You should start the tests with

make debug

This way the tests will stop executing and stay in the python debugger once a step fails. Once this happens you can inspect the current state of "behave" or checkout the current state in the Xephyr window or open up a second shell and start make run-manual-session to examine the current state


When you want to make screenshots for each test step just set the variable SCREENSHOTS to ALWAYS


Don't forget to delete the Screenshots folder before each run. Otherwise those pictures will get mixed up!

Package compilation

You can also use this container as test and compilation environment. When you are in a source folder of a component (e.g. xfce4-panel) then you should set the SRC_DIR to be a full path e.g.

your_host:~/xfce4-panel$ export SRC_DIR=$(pwd)

then start your compile and test enviroment (assuming that you have checked out in your home)

your_host:~/xfce4-panel$ make -C ~/xfce-test compile-local

then you can go into the directory /data in the docker container and compile/install and test in the Xephyr window

finally quit the bash of the docker container and tear down the container and Xephyr with

your_host:~/xfce4-panel$ make -C ~/xfce-test test-teardown