| 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 |