Persistent remote X sessions with xpra
Published on
Updated on
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.
rgb: Raw pixel format that is lossless and uses compression. Best in high bandwidth environments.pngcompressed, lossless, but CPU intensive. May result in skipped framesh264,vp8,vp9are lossy formats that have tunable quality and speed parameters
More resources: