Xpra
Encyclopedia
xpra or X Persistent Remote Applications is a tool which allows you to run X
programs usually on a remote host and then direct their display to your local machine 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 worse links than standard X.
Xpra works by connecting to an Xvfb
server as a compositing window manager
. However, instead of combining the window images to present on the screen, it takes the window images and stuffs them into a network connection to the xpra client, which then displays them onto the remote screen. It also acts as a window manager for the X server it is running against, but it doesn't actually have any window manager policy built into it. Instead, it takes all the window management requests from the applications, sends them over the wire to the client, who then issues those same requests on the real display, waits for further answer the real window manager gives, and then forwards that answer back to the xpra server.
The idea for Xpra was inspired after the original author's experience of attempting to use various NX technology
based setups.
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
programs usually on a remote host and then direct their display to your local machine 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
Window manager
A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment...
, rather than being all "trapped in a box together". Xpra also uses a custom protocol that is self-tuning
Self-tuning
In control theory a self-tuning system is capable of optimizing its own internal running parameters in order to maximize or minimize the fulfillment of an objective function; typically the maximization of efficiency or error minimization....
and relatively latency
Latency (engineering)
Latency is a measure of time delay experienced in a system, the precise definition of which depends on the system and the time being measured. Latencies may have different meaning in different contexts.-Packet-switched networks:...
-insensitive, and thus is usable
over worse links than standard X.
Xpra works by connecting to an Xvfb
Xvfb
In the X Window System, Xvfb or X virtual framebuffer is an X11 server that performs all graphical operations in memory, not showing any screen output. From the point of view of the client, it acts exactly like any other server, serving requests and sending events and errors as appropriate....
server as a compositing window manager
Compositing window manager
A compositing window manager is a type of window manager. A window manager is software that draws a graphical user interface on a computer display – it positions windows, draws additional elements on windows , and controls how windows interact with each other, and with the rest of the desktop...
. However, instead of combining the window images to present on the screen, it takes the window images and stuffs them into a network connection to the xpra client, which then displays them onto the remote screen. It also acts as a window manager for the X server it is running against, but it doesn't actually have any window manager policy built into it. Instead, it takes all the window management requests from the applications, sends them over the wire to the client, who then issues those same requests on the real display, waits for further answer the real window manager gives, and then forwards that answer back to the xpra server.
The idea for Xpra was inspired after the original author's experience of attempting to use various NX technology
NX technology
NX technology is a computer program that handles remote X Window System connections, and attempts to greatly improve on the performance of the native X display protocol to the point that it can be usable over a slow link such as a dial-up modem...
based setups.
See also
- http://winswitch.org/ - a GUI tool for starting, suspending, moving and resuming Xpra sessions (and also VNC, NX, RDP). The site contains binaries for Windows, Mac OS X and Linux.
- http://www.awitsystems.com/community/viewtopic.php?f=3&t=1235 Debian How-To
- http://xpra.devloop.org.uk/ - a repository and guide to use Xpra with DebianDebianDebian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...
and UbuntuUbuntu (operating system)Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu... - GNU ScreenGNU ScreenGNU Screen is a software application that can be used to multiplex several virtual consoles, allowing a user to access multiple separate terminal sessions inside a single terminal window or remote terminal session...
- a terminal multiplexer for console-mode (text-mode) applications - xmoveXmovexmove 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. It solves a problem in the design of X, where an X client is tied to the X server it was started on for its lifetime...
- a tool allows you to move programs between X Window System displays - guievictGuievictguievict 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...
- a system for checkpointing and migrating the GUI of an X window application - the lbxproxy tool, which allows disconnecting and reconnectinghttp://thread.gmane.org/gmane.linux.redhat.fedora.devel/105669/focus=105670