The AllocColorCells request typically fails because some other X client has allocated one or more colors before XMX tries to. See Question 3.
That means that each machine participating in the shared session, both master and slaves, should have only an X server running - no window manager and no other clients.
You could start up X by logging into each machine (using the console
or a remote shell) and simply typing "X
". But those new
X servers would not allow XMX to connect, due to host access
permissions.
If you try to run "xhost +
", to change the server's access
control, it will immediately revert, because X servers reset themselves
whenever they have no client connections (and these servers do not).
The xnull utility, which is included in the XMX distribution, provides a simple way to start up an XMX-ready X server on each host. Xnull is an XMX-clean client that modifies the X server access permissions and then remains connected to ensure that XMX is able to connect. See the man page included with xnull for more details and examples.
The problem with mapping is that pixel values are manipulated as bitmasks by raster operations (GCFunction). So the result of any drawing request by a client depends, potentially, on the state of the *entire* colormap being used, not just the foreground and background colors. Also, PutImage and GetImage requests consist of pixel data, so, if mapped, have to be massaged individually for each server - a real bottleneck. Providing a correct mapping is an onerous task.
Instead, XMX simply allocates writable the entire root colormap (when using a PseudoColor visual) of each "slave" server. Then, color allocation is done only on the "master" server. The resulting pixel values are stored (StoreColor) on the slaves. Since StoreColor does not generate a reply, this is more efficient, and it also ensures that colormaps are exactly in synch and obviates the need to do any pixel mapping.
The drawback is that XMX allocates the whole root colormap, so it can't coexist with other color-allocating applications (it can't coexist with other applications for other reasons, too). And if it fails to allocate all the cells in the root colormap (AllocColorCells fails) then XMX makes no attempt to synchronize colors.