xpra

Brandon Rozek

January 15, 2020

xpra allows one to run persistent X applications on a remote host and display it on a local machine. It’s a combination of SSH X11 Forwarding and Screen.

To get started you need to install the xpra package on both the server and client. On Ubuntu 18.04, this package isn’t configured properly so one should use this PPA instead.

sudo add-apt-repository ppa:mikhailnov/xpra

To install,

sudo apt install xpra

Now you can from the client open up an application with one command

xpra start ssh:user@host --exit-with-children --start-child="executable"

If you want it to behave more like screen. Then on the server.

xpra start :100

Where you can replace :100 with another high display number.

Then you can run the executable,

DISPLAY=:100 executable

From the client,

xpra attach ssh:user@host:100

xpra has heuristics that determines the encoding of the images passed. You can however override it using the --encodings flag to better tailor to your needs.

More resources: