1 |
578 |
markom |
.TH XKIBITZ 1 "06 October 1994"
|
2 |
|
|
.SH NAME
|
3 |
|
|
xkibitz \- allow multiple people to interact in an xterm
|
4 |
|
|
.SH SYNOPSIS
|
5 |
|
|
.B xkibitz
|
6 |
|
|
[
|
7 |
|
|
.I xkibitz-args
|
8 |
|
|
] [
|
9 |
|
|
.I program program-args...
|
10 |
|
|
]
|
11 |
|
|
.br
|
12 |
|
|
.SH INTRODUCTION
|
13 |
|
|
.B xkibitz
|
14 |
|
|
allows users in separate xterms to share one shell (or any program
|
15 |
|
|
that runs in an xterm). Uses include:
|
16 |
|
|
.RS
|
17 |
|
|
.TP 4
|
18 |
|
|
\(bu
|
19 |
|
|
A novice user can ask an expert user for help. Using
|
20 |
|
|
.BR xkibitz ,
|
21 |
|
|
the expert can see what the user is doing, and offer advice or
|
22 |
|
|
show how to do it right.
|
23 |
|
|
.TP
|
24 |
|
|
\(bu
|
25 |
|
|
By running
|
26 |
|
|
.B xkibitz
|
27 |
|
|
and then starting a full-screen editor, people may carry out a
|
28 |
|
|
conversation, retaining the ability to scroll backwards,
|
29 |
|
|
save the entire conversation, or even edit it while in progress.
|
30 |
|
|
.TP
|
31 |
|
|
\(bu
|
32 |
|
|
People can team up on games, document editing, or other cooperative
|
33 |
|
|
tasks where each person has strengths and weaknesses that complement one
|
34 |
|
|
another.
|
35 |
|
|
.TP
|
36 |
|
|
\(bu
|
37 |
|
|
If you want to have a large number of people do an on-line code
|
38 |
|
|
walk-through, you can sit two in front of each workstation, and then
|
39 |
|
|
connect them all together while you everyone looks at code together
|
40 |
|
|
in the editor.
|
41 |
|
|
.SH USAGE
|
42 |
|
|
To start
|
43 |
|
|
.BR xkibitz ,
|
44 |
|
|
one user (the master) runs xkibitz with no arguments.
|
45 |
|
|
|
46 |
|
|
.B xkibitz
|
47 |
|
|
starts a new shell (or another program, if given on the command
|
48 |
|
|
line). The user can interact normally with the shell, or
|
49 |
|
|
upon entering an escape (described when xkibitz starts) can add
|
50 |
|
|
users to the interaction.
|
51 |
|
|
|
52 |
|
|
To add users, enter "+ display" where display is the X display name.
|
53 |
|
|
If there is no ":X.Y" in the display name, ":0.0" is assumed.
|
54 |
|
|
The master user must have permission to access each display.
|
55 |
|
|
Each display is assigned
|
56 |
|
|
a tag \- a small integer which can be used to reference the display.
|
57 |
|
|
|
58 |
|
|
To show the current tags and displays, enter "=".
|
59 |
|
|
|
60 |
|
|
To drop a display, enter "- tag" where tag is the display's tag
|
61 |
|
|
according to the "=" command.
|
62 |
|
|
|
63 |
|
|
To return to the shared shell, enter "return". Then the keystrokes of
|
64 |
|
|
all users become the input of the shell. Similarly, all users receive
|
65 |
|
|
the output from the shell.
|
66 |
|
|
|
67 |
|
|
To terminate
|
68 |
|
|
.B xkibitz
|
69 |
|
|
it suffices to terminate the shell itself. For example, if any user
|
70 |
|
|
types ^D (and the shell accepts this to be EOF), the shell terminates
|
71 |
|
|
followed by
|
72 |
|
|
.BR xkibitz .
|
73 |
|
|
|
74 |
|
|
Normally, all characters are passed uninterpreted. However, in the
|
75 |
|
|
escape dialogue the user talks directly to the
|
76 |
|
|
.B xkibitz
|
77 |
|
|
interpreter. Any
|
78 |
|
|
.BR Expect (1)
|
79 |
|
|
or
|
80 |
|
|
.BR Tcl (3)
|
81 |
|
|
commands may also be given.
|
82 |
|
|
Also, job control may be used while in the interpreter, to, for example,
|
83 |
|
|
suspend or restart
|
84 |
|
|
.BR xkibitz .
|
85 |
|
|
|
86 |
|
|
Various processes
|
87 |
|
|
can produce various effects. For example, you can emulate a multi-way write(1)
|
88 |
|
|
session with the command:
|
89 |
|
|
|
90 |
|
|
xkibitz sleep 1000000
|
91 |
|
|
.PP
|
92 |
|
|
.SH ARGUMENTS
|
93 |
|
|
.B xkibitz
|
94 |
|
|
understands a few special arguments
|
95 |
|
|
which should appear before the
|
96 |
|
|
.I program
|
97 |
|
|
name (if given).
|
98 |
|
|
Each argument should be separated by whitespace.
|
99 |
|
|
If the arguments themselves takes arguments,
|
100 |
|
|
these should also be separated by whitespace.
|
101 |
|
|
|
102 |
|
|
.B \-escape
|
103 |
|
|
sets the escape character. The default escape character is ^].
|
104 |
|
|
|
105 |
|
|
.B \-display
|
106 |
|
|
adds a display much like the "+" command. Multiple \-display flags
|
107 |
|
|
can be given. For example, to start up xkibitz with three additional
|
108 |
|
|
displays:
|
109 |
|
|
|
110 |
|
|
xkibitz -display mercury -display fox -display dragon:1.0
|
111 |
|
|
|
112 |
|
|
.SH CAVEATS
|
113 |
|
|
Due to limitations in both X and UNIX, resize propagation is weak.
|
114 |
|
|
|
115 |
|
|
When the master user resizes the xterm, all the other xterms are logically
|
116 |
|
|
resized.
|
117 |
|
|
Unfortunately, xkibitz cannot force the physical xterm size to correspond
|
118 |
|
|
with the logical xterm sizes.
|
119 |
|
|
|
120 |
|
|
The other users are free to resize their xterm but their sizes are not
|
121 |
|
|
propagated. The master can check the logical sizes with the "=" command.
|
122 |
|
|
|
123 |
|
|
Deducing the window size is a non-portable operation. The code is known
|
124 |
|
|
to work for recent versions of SunOS, AIX, Unicos, and HPUX. Send back
|
125 |
|
|
mods if you add support for anything else.
|
126 |
|
|
.SH ENVIRONMENT
|
127 |
|
|
The environment variable SHELL is used to determine and start a shell, if no
|
128 |
|
|
other program is given on the command line.
|
129 |
|
|
|
130 |
|
|
If the environment variable DISPLAY is defined, its value is used for the
|
131 |
|
|
display name of the
|
132 |
|
|
.B xkibitz
|
133 |
|
|
master (the display with tag number 0). Otherwise this name remains empty.
|
134 |
|
|
|
135 |
|
|
Additional arguments may be passed to new xterms through
|
136 |
|
|
the environment variable XKIBITZ_XTERM_ARGS.
|
137 |
|
|
For example, to create xterms
|
138 |
|
|
with a scrollbar and a green pointer cursor:
|
139 |
|
|
.nf
|
140 |
|
|
|
141 |
|
|
XKIBITZ_XTERM_ARGS="-sb -ms green"
|
142 |
|
|
export XKIBITZ_XTERM_ARGS
|
143 |
|
|
|
144 |
|
|
.fi
|
145 |
|
|
(this is for the Bourne shell - use whatever syntax is appropriate for your
|
146 |
|
|
favorite shell). Any option can be given that is valid for the
|
147 |
|
|
.B xterm
|
148 |
|
|
command, with the exception of
|
149 |
|
|
.BR -display ,
|
150 |
|
|
.B -geometry
|
151 |
|
|
and
|
152 |
|
|
.BI -S
|
153 |
|
|
as those are set by
|
154 |
|
|
.BR xkibitz .
|
155 |
|
|
.SH SEE ALSO
|
156 |
|
|
.BR Tcl (3),
|
157 |
|
|
.BR libexpect (3)
|
158 |
|
|
.BR kibitz (1)
|
159 |
|
|
.br
|
160 |
|
|
.I
|
161 |
|
|
"Exploring Expect: A Tcl-Based Toolkit for Automating Interactive Programs"
|
162 |
|
|
\fRby Don Libes,
|
163 |
|
|
O'Reilly and Associates, January 1995.
|
164 |
|
|
.br
|
165 |
|
|
.I
|
166 |
|
|
"kibitz \- Connecting Multiple Interactive Programs Together", \fRby Don Libes,
|
167 |
|
|
Software \- Practice & Experience, John Wiley & Sons, West Sussex, England,
|
168 |
|
|
Vol. 23, No. 5, May, 1993.
|
169 |
|
|
.SH AUTHOR
|
170 |
|
|
Don Libes, National Institute of Standards and Technology
|