I have an app running remotely on a beaglebone, written in wxPython. I want to run the app inside of a virtual frame buffer, using Xvfb, and access it remotely using a VNC.
It may also be pertinent for you to know that I am launching VNC from inside of the application, like so:
display = Display(":99") root = display.screen().root win_ids = [w.id for w in root.query_tree()._data['children'] if w.get_wm_name() and 'myappname' in w.get_wm_name().lower()] if (win_ids[0]): print("Found my win id. Starting x11vnc") system("x11vnc -quiet -sid %s -forever &" % win_ids[0]) else: print("Can't find my Window ID!") EDIT: I am using Debian Jessie with kernel version 3.8.13, and xenomai. I can't find a version number for xvfb-run or Xvfb, but I can tell you that my xorg version is 1.16.4
When I launch the app with:
sudo xvfb-run ./myApp -s :99 -screen 0 1920x1080x16 -ac I see the following: 
However, when I launch Xvfb separately:
Xvfb :99 -screen 0 800x600x16 -ac & and then launch the app:
DISPLAY=:99 ./myApp I see this (what it should be):

Any insights?
sudoin the first command but not in the second. Does root have the same fonts installed as the user you're running the app? i.e. did you install fonts just for the user?sudo xvfb-run ./myApp -s :99 -screen 0 1920x1080x16 -acthe process of./myAppends in root's environment. Whilst inDISPLAY=:99 ./myAppthe process uses the environment of the user that started it and Xorg routes the actual display toXvfb's. Fonts are loaded before the Xorg routing.xvfb-runi noticed that it runs the parameters in the order they appear. Does the same happen (bad display) if you run it as:sudo xvfb-run -s :99 -screen 0 1920x1080x16 -ac ./myApp?