---
name: "xmove"
section: "1"
platform: "linux"
package: "xmove"
version: "2.0beta2-8"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/xmove"
---

# xmove(1)

pseudoserver to support mobile X11 clients

## NAME

xmove - pseudoserver to support mobile X11 clients

## SYNOPSIS

**xmove** \[ **-server** *\[server\_name\]:port* \] \[ **-port** *listen\_port* \] \] \[ **-interface** *listen\_interface* \]

## DESCRIPTION

*xmove* starts a pseudoserver which allows its X11 clients to be relocated from one display to another. Upon startup it will create a listening port from which it accepts new client connections. All such clients will be displayed on the default server, until moved elsewhere. Several clients may connect through a single  *xmove,* thus requiring only one per machine.

*xmove* will assume logical default values for both the default listening port, default interface and the default server. Take as an example a typical machine named *chestnut*, with a standard X11 server named *chestnut:0*.

The default server is obtained from the environment variable **DISPLAY** at start-up time, which would normally be set to *chestnut:0*, as in our example. This server is the display to which all new connections will be initially sent. The default server should never be set to another xmove.

The default listening port is 1. In our example, this would mean clients should be sent to *chestnut:1* instead of *chestnut:0* if you wish them to be run through  *xmove.*

The default is to listen on all interfaces of the machine, so local clients can use both localhost:1 and chestnut:1. *xmove* can be restricted to only listen on one specific interface.

## TYPICAL USAGE

Assuming that the environment variable **DISPLAY** contains the name of your default server, no options need to be set.

*xmove* will listen for new connections at localhost:1, where localhost is the machine on which  *xmove* is being run.

*xmove* displays messages to stdout and stderr as it runs, including information when a client is moved and whenever the X11 server sends an error to a client.

To manipulate clients running on an  *xmove,* see  *xmovectrl.*

## SECURITY

*xmove* supports both host-level security, implemented with *xhost,* and *MIT-MAGIC-COOKIE-1,* implemented with *xauth.* A new client will only be permitted access through *xmove* if it could have been started on the default server directly. A client can be moved to a new server if that new server either permits the host on which *xmove* is running via *xhost,* or if the user moving the client has access to the proper cookie entry for the new server.

## OPTIONS

- *-server*

  Use the specified server as the default server to which all clients are to be initially displayed.

- *-port*

  Use the specified port as the default port through which all clients should connect to  *xmove.* Users must specify a **DISPLAY** of *localhost:n*, where *localhost* is the name of the machine on which *xmove* was executed, and n is the specified port. The port must be a number from 1 to 9.

- *-interface*

  Clients can only connect to *xmove* through the specified interface. Users must specify a **DISPLAY** of *name:n*, where *name* is a name of that perticular interface on the machine on which *xmove* was executed. Without this option, *xmove* will accept connections to all interfaces on the machine.

## MULTI-HEADED DISPLAYS

*xmove* supports displays that have multiple screens. When moving a client it is possible to specify the screen on the destination machine. When starting a client through an *xmove* with a multi-headed default server, it is possible to specify the screen on which the client should appear, so long as both screens have the same characteristics (ie. both 1-bit, or both 8-bit color, etc.) If the screens are different, it is necessary to start the client on screen 0 and then move to the desired screen.

## X TERMINALS

	In order to use *xmove* with an X terminal you can run *xmove* on another workstation, and specify the X terminal as the default server. If multiple people wish to run xmove on the same workstation for multiple X terminals, each xmove must have its own listening port.

## ENVIRONMENT

The environment variable *XMOVE\_ATOMMAP\_LIBPATH* can be set to the directory where *xmove's* support libraries are located. This will override the directory set at compile time.

## SEE ALSO

[**xmovectrl**(1)](/xmovectrl/1.md), **X11**(7), [**xhost**(1)](/xhost/1.md), [**xauth**(1)](/xauth/1.md)

## BUGS

This is a fairly untested product. Without attempting to frighten off potential users, it is recommended that all applications intended to be used with  *xmove* first be tested in an  *xmove* environment. This includes attempting to move the application to a new server.

*xmove* does not work in all environments nor with all programs. Although xmove does support moving clients between displays with different characteristics, there are limitations. Most notably, a client started on a 1-bit black-and-white display can only be moved to other 1-bit displays

*xmove* requires font compatibility between displays. Thus, if your client makes use of a certain font, that font must be available on all displays to which your client is moved.

Bug reports and other problems may be sent to ethan@cs.columbia.edu.

Questions regarding *xmove,* its capabilities, limitations and future possibilities may be sent to that email address, or posted to comp.windows.x.

## NOTES

Always remember that not all of your applications need to use  *xmove.* If some of your clients prove incompatible with  *xmove,* simply run them directly to the desired server.

## AUTHORS

Ethan Solomita, Columbia University

Peter Skopp, Columbia University

Ari Shamash, Columbia University

This work was supported by Professor Dan Duchamp of Columbia University and by Dick Sillman and Jim Kempf of Sun Microsystems, Inc.

*xmove* is based upon *xmon,* which was written by Greg McFarlane, OTC, Australia.

*xmon* was based upon *xscope,* written by James L. Peterson, MCC.
