Linux repositories inspector


30 November 1994


A tool to move X windows to different X servers, something like a GNU screen for X.


xmovectrl - xmove control program


xmovectrl [ xmove_DISPLAY ] command [ args ] ...


xmovectrl is a command program which sends commands to an xmove pseudoserver. The commands allow you to obtain a list of clients under control of the xmove, to move some or all clients to a new server, or to tell xmove to exit.
The environment variable DISPLAY is used to determine the xmove to access, since access to xmove is through a standard X connection. This default can be overridden by specifying the display connection for the xmove pseudoserver as xmove_DISPLAY on the command line.
Because xmove supports host-level and MIT-MAGIC-COOKIE-1 security, any connection from an xmovectrl will be rejected unless the user is permitted access to xmove’s default display. See xmove(1) for details about security and authorization.


The command options determine the action taken by the accessed xmove pseudoserver:
-list This command takes no arguments. In response to this command, xmovectrl prints a list of all clients that are currently under control of the xmove pseudoserver. These include both clients started directly under control of the pseudoserver and clients which were moved from other machines. For example:
vagabond% xmovectrl -list
1 gnuemacs: Emacs @ sa local
2 xterm local
4 xv info peabody:0
5 FM: Waste:V3.3 Alpha suspended
Each line contains information on a single client. The first column contains a number identifying the particular client. When you wish to move a client, use this number to specify it. If more than one line has the same client identification number, xmove believes the two clients both belong to the same application, and attempting to move one will cause the other to move also. The second column contains a textual identification of the client. xmove obtains this information as the title string from the first window created by the client, but that may not always be the main application window. In the example, client number 5’s identification should be "File Manager", but the File Manager application creates two windows, the first of which is for a wastecan. The third column specifies the server on which the client is currently being displayed. In this column the word ’local’ means that the client is being displayed on xmove’s default server, and the word ’suspended’ means that the client is in suspended animation, ie. the client is not currently being displayed on any server.
-moveall to_machine_name
This command takes as its only argument the name of a host machine to which all the clients at this xmove are moved. In general it should only be necessary to specify a machine name as the location, since xmove will try to find another xmove at to_machine_name:1, and if it does not find one it will connect directly to the server at to_machine_name:0. If you wish to override these defaults you can specify a full display name instead of just a machine name.
If the machine to which you are moving is multiheaded, you can use the ’-screen n’ option, where n is the screen number, immediately after the name of the new host, in order to specify a particular screen. For example:
vagabond% xmovectrl -moveall spruce -screen 1
Will move all client to screen 1 on host spruce.
The time required to move a client should be roughly comparable to the time that the client takes to display when first started. Clients will be unresponsive until the last one has been moved. Then they will all begin the process of refreshing their windows.
New with xmove 1.2 is the ability to place a client in suspended animation. This removes it from the display without moving it onto another display. The server can then go down without affecting the client. Later, the client can be unsuspended by moving it to a new display. To suspend a client, move the client and specify ’-suspend’ as the name of the display to which it should be moved.
-move to_machine_name client_id_number_list
This command allows you to specify a list of client id numbers for clients which should be moved to the new display. The client numbers should be separated by spaces. For example:
vagabond% xmovectrl -move suntana 1 7 42
Will move clients 1, 7 and 42 to the machine named suntana.
-setdefaultserver display_name
Changes xmove’s default server to display_name. The default server is the display to which xmove sends newly arriving applications. It should be set to a full display name, eg. spruce:0. If the specified display is unusable for any reason the error will likely not be detected until the next time a new application or xmovectrl is invoked.
-quit Causes the addressed xmove and all applications under it’s control to exit.



xmovectrl waits for the requested move to complete before returning. Note that the move cannot be cancelled by killing xmovectrl because the move is actually being done by the xmove pseudoserver.
Because xmove supports host-level and xauth security, any connection from an xmovectrl will be rejected unless it is run from a machine or by a user who is permitted access to xmove’s default display.


Ethan Solomita, Columbia University
This work was supported by Professor Dan Duchamp of Columbia University and by Dick Sillman and Jim Kempf of Sun Microsystems, Inc.
Bug reports and other problems should be sent to . Please give all details, including hardware configuration, make of X server and window manager.


⇧ Top