about xpra:

“Xpra is a tool which allows you to run X programs — usually on a remote host — and then direct their display to your local machine, disconnect from these programs, and reconnect from
the same or another machine, all without losing any state. It differs from standard X forwarding in that it allows disconnection and reconnection without disrupting the forwarded
application; it differs from VNC and similar remote display technologies in that xpra is rootless: i.e., applications forwarded by xpra appear on your desktop as normal windows managed
by your window manager, rather than being all “trapped in a box together”. Xpra also uses a custom protocol that is self-tuning and relatively latency-insensitive, and thus is usable
over network connections that are too slow or unreliable for standard X forwarding. Xpra can also be used to shadow an existing X11 display.”

src: manpage: xpra.man.txt

By default the Xpra server announces available sessions (username and display number) via mDNS to the local network. Use mdns=no to disable it.

xpra developed by Nathaniel Smith, Antoine Martin as seen on superuser.com, https://xpra.org/trac/wiki/Download#Linux

Antoine Martin http://devloop.org.uk/

Nathaniel Smith https://www.pobox.com/

Arthur Huillet https://www.serviware.com/

is a pretty cool “run my gui app on server but display window locally” x11 window forwarding tool.

tested 2018-11-21:

  Operating System: CentOS Linux 7.5 (Core) (client and server)
      Architecture: x86-64

# on client and server install xpra package
# ubuntu/debian apt based
apt update
apt install xpra
# fedora/centos/redhat rpm based
cd /etc/yum.repos.d/ &&  sudo wget https://xpra.org/repos/CentOS/xpra.repo
yum update
yum search xpra

ffmpeg-xpra.x86_64 : ffmpeg libraries for xpra
ffmpeg-xpra-debuginfo.x86_64 : Debug information for package ffmpeg-xpra
libvpx-xpra.x86_64 : vpx library for xpra
libwebp-xpra.x86_64 : WebP library and conversion tools for xpra
libwebp-xpra-debuginfo.x86_64 : Debug information for package libwebp-xpra
python2-xpra.x86_64 : python2 build of xpra
python2-xpra-audio.x86_64 : python2 build of xpra audio support
python2-xpra-client.x86_64 : python2 build of xpra client
python2-xpra-server.x86_64 : python2 build of xpra server
x264-xpra.x86_64 : x264 library for xpra
x264-xpra-debuginfo.x86_64 : Debug information for package x264-xpra
xpra.x86_64 : Xpra gives you "persistent remote applications" for X.
xpra-common.noarch : Common files for xpra packages
xpra-common-client.noarch : Common files for xpra client packages
xpra-common-server.noarch : Common files for xpra server packages
xpra-debuginfo.x86_64 : Debug information for package xpra
xpra-html5.noarch : Xpra HTML5 client
ffmpeg-xpra-devel.x86_64 : Development package for ffmpeg
libvpx-xpra-devel.x86_64 : Development files for the vpx library
libwebp-xpra-devel.x86_64 : Development files for the webp library
x264-xpra-devel.x86_64 : Development files for the x264 library

yum install xpra xeyes xclock

# restart server and client

# still on client testrun (ssh on default port 22 (can leave this out))
xpra start ssh/user@server.com:22 --start-child=xeyes

# now in the terminal window
# if you hit Ctrl+C (Cancel)
# it will disconnect, but leave xeyes running on the server
# to reconnect
xpra attach ssh:user@server.com:22

# amazing! stuff! well done :)

# html5 client
xpra start --bind-tcp= --html=on --start=xterm
# You can then point your browser to
# ​http://localhost:14500/
# and the xterm should appear in your browser window. 


man page:


the menu:

#OMG! It even allows file upload into the user’s home directory!

holy cow 🙂

it also tries to implement remote-print… meaning: if you open a document on the server, it shall allow you to print locally. (untested)

“2018-11-22 14:00:32,372 Error: printing disabled:
2018-11-22 14:00:32,372 No module named cups”

menu: Session Info screenshot

very well done statistics dialogue