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
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,
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 frames
vp9are lossy formats that have tunable quality and speed parameters