XMX Features

XMX is an X protocol multiplexor-server. It enables people working on separate machines to see and interact with the same applications at the same time. It works with existing, unmodified X servers and applications.


Xmx creates a virtual X environment that is strictly WYSIWIS (What You See Is What I See). All participants see exactly the same thing.

Private Work

Xmx provides a shared, nested X-server-in-a-window. Each virtual root window is under the control of the local user, and may be resized or iconified independently. Control within the window is described in the section "Input Control," below.

Mechanism, Not Policy

In keeping with the X Window System philosophy, xmx imposes no policy on run-time application sharing. Rather, as a multiplexor-server, xmx provides application sharing services to multiplexor clients that control xmx via a separate wire protocol, XMCP (X Multiplexor Control Protocol).


X Multiplexor Control Protocol defines a set of application sharing primitive operations that client programs may apply to xmx, in the same way that X clients apply the primitive graphic operations supported by the X Protocol. These primitives include: add/drop a display, change input control and create/assign telepointers.

Input Control

Individual X Servers are assigned control over shared applications based on three input "modes": floor, seat and view. Floor mode causes all user inputs originating from a particular server to be forwarded to the shared applications interested in them. Seat mode causes all such inputs to be forwarded to the XMC client. View mode causes all such inputs to be ignored. There is no restriction on what modes may be assigned to what servers.


Any number of remote telepointers may be defined, separate from local X Server pointer-cursors. A telepointer may be assigned to any number of X Servers, after which it dynamically reflects (on all servers except the one it is responding to at any given moment) the sequential, interleaved movements of the pointer devices on those machines, irrespective of input modes assigned. By default, telepointers are displayed exactly as the X Server pointer-cursor is. A telepointer's color and/or image may be overridden and held constant to differentiate multiple telepointers. [n.b. not all telepointer features are currently implemented]

Like an X Server

Xmx implements the standard access control and authority mechanisms independent of the X Servers to which it connects. Xmx mimics the command-line and network interfaces of a standard X Server, and may be substituted for an X server in commands such as xinit(1).


Xmx was designed to multicast X protocol efficiently. It short circuits much protocol activity, minimizes internal copying and moves all data asynchronously. Xmx provides reasonable real-time performance on a local 10 Mb/sec ethernet on 52 UltraSparc-class machines. In most cases, the network is the performance bottleneck. Like X, xmx uses only reliable duplex sockets (internet or unix domain). It does not use datagram, broadcast or multicast services.
Home Software XMX
John Bazik