Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | .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 |