~/Blog

Brandon Rozek

Photo of Brandon Rozek

PhD Student @ RPI studying Automated Reasoning in AI and Linux Enthusiast.

Persistent remote X sessions with xpra

Published on

Updated on

Warning: This post has not been modified for over 2 years. For technical posts, make sure that it is still relevant.

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.
  • png compressed, lossless, but CPU intensive. May result in skipped frames
  • h264, vp8, vp9 are lossy formats that have tunable quality and speed parameters

More resources:

Reply via Email Buy me a Coffee
Was this useful? Feel free to share: Hacker News Reddit Twitter

Published a response to this? :