For a long time I have been frustrated by VNC's putting all of the application windows in a big window for the X root. It always seemed to me that you could have an X server that kept all of the windows separate - perhaps by having an infinitely resizable root - which then allows the windows to be forwarded to the user's display (I think of that as a client, but in X terms it is a display server), and treated independently there.
I'm not the only one. Googling finds many people looking for "screen for X". I guess I betray my age when I admit that my desire for this predates GNU screen and VNC. I remember being happy when I encountered GNU screen's terminal multiplexer, since I had used similar tools elsewhere. (By the way, while I am at it: I recently started trying to use GNU screen, after a long lapse. One of my complaints is that GNU screen seems to be screen. I vaguely remember a terminal multiplexer that handled dumb terminals well enough, allowing you to connect separate terminal emulators, as well as other stuff.)
Anyway: screen for X...
I have looked at NX, xmove, etc., at various times, all with differing degrees of clunkiness. Nothing made mwe happy until...
---+ xpra
Hurrah for xpra! http://xpra.org/
xpra allows you to send applications from one display to another. On an application by application basis. (Hmm, I wonder what happens to a multi-window application.)
I am happy that IT finally has a system on which they were willing to install xpra.
---+ Winswitch? not yet, maybe not ever
I am considering winswitch, http://winswitch.org/, which is layered on top of xpra or VNC or RDP or ssh -X or NX or ...
But I am not jumping at winswitch the way I am jumping at xpra, since (a) I don't want yet another insecure password system, and (b) it seems to depend on all sides running winswitch.
---+ xpra does NOT need to be installed on both sides
Typically xpra usage examples say
http://xpra.org/:
On the machine which will export the application (xterm in this example):
xpra start :100
DISPLAY=:100 xterm
xpra attach :100
xpra attach ssh:serverhostname:100
https://help.ubuntu.com/community/Xpra:
- Start an xpra server using display number :7.
- Start firefox running inside the xpra server. No window will appear.
- Show a list of xpra servers you have running on the current host.
- Attach to the xpra server that is using local display number :7. Any apps running on that server will appear on your screen.
- Use ssh to attach to the xpra server that is running on machine frodo and using display :7. Any apps running on that server will appear on your local screen.
- Start an xpra server and a screen(1) session. If any of the applications inside screen attempt to use X, they will be directed to the xpra server.
- Stop the xpra server on display number :7.
xpra start :7
DISPLAY=:7 firefox
xpra list
xpra attach :7
xpra attach ssh:frodo:7
xpra start :7 && DISPLAY=:7 screen
xpra stop :7
I.e. they assume that xpra is installed both on the server and on the client.
(Urg, confusing terminology. There are 3 important systems here: (1) the system where the xpra proxy server runs, (2) the system where the application software runs, and (3) the system where the display runs.)
This was a worry, since I often want to move applications to a system that may have X, but which may not have xpra on. E.g. Cygwin/X on my Windows PC. (I considered Winswitch for this, but it requires itself to be installed in too many places.)
I am happy to say that you do NOT need to have xpra installed on the display system. E.g.