xkibitz starts a new shell (or another program, if given on the command line). The user can interact normally with the shell, or upon entering an escape (described when xkibitz starts) can add users to the interaction.
To add users, enter "+ display" where display is the X display name. If there is no ":X.Y" in the display name, ":0.0" is assumed. The master user must have permission to access each display. Each display is assigned a tag - a small integer which can be used to reference the display.
To show the current tags and displays, enter "=".
To drop a display, enter "- tag" where tag is the display's tag according to the "=" command.
To return to the shared shell, enter "return". Then the keystrokes of all users become the input of the shell. Similarly, all users receive the output from the shell.
To terminate xkibitz it suffices to terminate the shell itself. For example, if any user types ^D (and the shell accepts this to be EOF), the shell terminates followed by xkibitz.
Normally, all characters are passed uninterpreted. However, in the escape dialogue the user talks directly to the xkibitz interpreter. Any Expect(1) or Tcl(3) commands may also be given. Also, job control may be used while in the interpreter, to, for example, suspend or restart xkibitz.
Various processes can produce various effects. For example, you can emulate a multi-way write(1) session with the command:
xkibitz sleep 1000000
-escape sets the escape character. The default escape character is ^].
-display adds a display much like the "+" command. Multiple -display flags can be given. For example, to start up xkibitz with three additional displays:
xkibitz -display mercury -display fox -display dragon:1.0
When the master user resizes the xterm, all the other xterms are logically resized. Unfortunately, xkibitz cannot force the physical xterm size to correspond with the logical xterm sizes.
The other users are free to resize their xterm but their sizes are not propagated. The master can check the logical sizes with the "=" command.
Deducing the window size is a non-portable operation. The code is known to work for recent versions of SunOS, AIX, Unicos, and HPUX. Send back mods if you add support for anything else.
If the environment variable DISPLAY is defined, its value is used for the display name of the xkibitz master (the display with tag number 0). Otherwise this name remains empty.
Additional arguments may be passed to new xterms through the environment variable XKIBITZ_XTERM_ARGS. For example, to create xterms with a scrollbar and a green pointer cursor:
XKIBITZ_XTERM_ARGS="-sb -ms green" export XKIBITZ_XTERM_ARGS(this is for the Bourne shell - use whatever syntax is appropriate for your favorite shell). Any option can be given that is valid for the xterm command, with the exception of -display, -geometry and -S as those are set by xkibitz.