Is there any way to open a graphical program (for instance, gedit) while using X11 forwarding over SSH and transfer the X server connection back to the X server on the SSH host?


1 Answer 1


If you look at the Wikipedia page on the subject there are several apps mentioned.



xmove is a computer program that allows the movement of X Window System applications between different displays and the persistence of X applications across X server restarts.[4] It solves a problem in the design of X, where an X client (an X application) is tied to the X server (X display) it was started on for its lifetime. Also, if the X server is shut down, the client application is forced to stop running.

xmove lets the client disconnect from its current X server, and connect to a new one, at any time. The transition is completely transparent to the client. xmove works by acting as a proxy between the client and server. It is a "pseudoserver" which stores enough server state so that clients can connect to a new server without being disrupted.



xpra or X Persistent Remote Applications is a tool which allows you to run X clients usually on a remote host and then direct their display to your local machine without losing any state.1

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 worse links than standard X.



guievict is a computer program which enables the GUI of any application for XFree86 implementation of X Window to be transparently migrated to or replicated on another display. Unlike some program providing similar functionalities, it requires neither prearranging steps such as re-linking the application program binary nor re-directing the application process's window system communication through a proxy like xmove does.

Guievict is based on a small X server extension that enables an application to retrieve its window state from the X server and a library of GUI migration functionality that is injected in the application process at run time. Code injection or runtime code-patching can be done via the DynInst API. However, guievict contains its own implementation to avoid requiring users to install DynInst.

Of the 3 of these, Guievict sounds like what you're looking for, mainly that it can checkpoint the state of X application AppX and migrate it to another X server where it can be restored.

  • slamdunk man. i wonder how that last one is pronounced. i'll upvote it again if you can link to an audible pronunciation guide...
    – mikeserv
    Aug 27, 2014 at 6:08
  • 4
    @mikeserv - it stands for GUI Eviction - pages.cs.wisc.edu/~zandy/guievict. gui-vict or goo-e-vict. README is here: pages.cs.wisc.edu/~zandy/guievict/README.
    – slm
    Aug 27, 2014 at 6:21
  • 1
    but I cant really upvote it again, you know.
    – mikeserv
    Aug 27, 2014 at 6:32
  • @mikeserv - I know, I didn't know how to say it either, so I looked it up.
    – slm
    Aug 27, 2014 at 6:33
  • of course you know - better than I! this is a really good answer though. you did a good job - thanks, @slm.
    – mikeserv
    Aug 27, 2014 at 6:39

Not the answer you're looking for? Browse other questions tagged .