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 --encoding
s flag to better tailor to your needs.
rgb
: Raw pixel format that is lossless and uses compression. Best in high bandwidth environments.png
compressed, lossless, but CPU intensive. May result in skipped framesh264
,vp8
,vp9
are lossy formats that have tunable quality and speed parameters
More resources: