]> asedeno.scripts.mit.edu Git - 1ts-debian.git/blob - zephyr/clients/xzwrite/xzwrite.1
r4256@bucket (orig r246): kcr | 2008-01-20 15:46:45 -0500
[1ts-debian.git] / zephyr / clients / xzwrite / xzwrite.1
1 .TH XZWRITE 1 "7 February 1989"
2 .SH NAME
3 xzwrite \- X application to write to another user via Zephyr
4 .SH SYNOPSIS
5 .B xzwrite 
6 [ -toolkitoption ... ] [-s signature] [+d | -d] [+n | -n] [+v | -v]
7 [+yd | -yd] [+av | -av] [+ci | -ci] [-my yanks] [+l | -l] [+a | -a]
8 [+x | -x] [+z | -z] [+pong | -pong] [+reply | -reply]
9
10 .SH DESCRIPTION
11 .I Xzwrite
12 is an X application that sends messages to other users
13 through the 
14 .IR Zephyr (1)
15 notification service.  It puts an icon on the
16 screen that allows the user to send a message, select the destination
17 of a message, or exit.  The program remains active until explicity
18 told to exit, thus eliminating the need to run a program every time
19 the user wants to send a zephyr message.
20 .SH USING THE DESTINATION LIST
21 .PP
22 .I Xzwrite 
23 maintains a list of 'destinations'; that is, a list of
24 <class, instance, recipient> triples that a user can send messages to.
25 When a user selects a destination, all subsequent messages will be
26 sent to that triple, until a new destination is selected.  
27 .I Xzwrite
28 can get its list of destinations from the files .xzwrite.dest,
29 .anyone, or .zephyr.vars in the
30 user's home directory.  These files must consist of a list of lines, and
31 each is interpreted in the following way: a line containing no commas
32 is taken to mean <MESSAGE,PERSONAL,string>; a line with one comma is
33 taken to be either <class,instance,*> or <MESSAGE,instance,recipient>
34 depending on the value of the classInst resource (see below); a line
35 with two commas is taken to be <class,instance,recipient>.  A line
36 that begins with an exclamation point (!) is treated as an
37 "unsubscription" and has the effect of removing destinations read
38 from any other file that match the destination on that line.  The lines
39 must appear
40 .B WITHOUT WHITESPACE 
41 between the fields and with a linefeed between each line.  Blank lines
42 and lines beginning with an octothorpe (#) are ignored.
43 .PP
44
45 Clicking the left button in the 
46 .I xzwrite 
47 icon pops up the editor and
48 destination list.  Clicking with the left button in the destination
49 list selects the highlighted destination; clicking with the right
50 button deletes the highlighed destination.  Clicking the middle button
51 invokes the action CreateDest (see ACTIONS below) that prompts the
52 user for a new <class,instance,recipient> triple to be added to the list.
53
54 .PP
55
56 If the user specifies a destination in the .xzwrite.dest file
57 with an instance or recipient of "...", 
58 .I xzwrite 
59 will prompt the user to enter an instance or recipient when the
60 message editor is popped up.  Setting both instance and recipient to
61 "..." (ie: <MESSAGE,...,...>) works.  The new
62 <class,instance,recipient> triple formed each time a destination with
63 "..." is used may or may not be added to the destination list, depending
64 on the addVars resource (see below.)
65
66 .PP
67
68 While the mouse pointer is inside the 
69 .I xzwrite 
70 icon, the mouse buttons have the following effect:
71 .TP
72 .B Left button:        
73 Pops up the editor and destination list so the user can create and 
74 send messages.
75 .TP
76 .B Right button:
77 Pops up a list of things that can be changed while xzwrite is running.
78 Clicking the "Change Signature" box causes
79 .I xzwrite
80 to prompt for a new signature, to be used in future messages.  All the
81 others toggle options which are initially set by resources or
82 command-line arguments.  The "Quit XZWRITE" causes 
83 .I xzwrite
84 to exit.
85 .TP
86 .B Ctrl-Right button:
87 Exits
88 .IR xzwrite .
89
90 .SH USING THE MESSAGE EDITOR
91 There are four buttons in the message editor.  The Send button
92 sends the text currently in the message editor to the current
93 destination, optionally clearing the message editor at the same time.
94 The Clear Editor button clears the message editor.  The Yank-Prev button yanks
95 the previous message, along with its destination, into the message
96 editor.  The Yank-Next button yanks the next message (or the first
97 message in the yank buffer, if Yank-Prev has not been called) into the
98 message editor.  The yank buffer is circular, so old messages are
99 periodically overwritten by new ones, and stores the previous (by
100 default) 25 messages.
101 .PP
102 The following key sequences have been defined for convenience:
103 .PP
104 .nf
105         Ctrl-Return             Send message
106         Meta-O                  Store current message, yank previous
107         Meta-P                  Yank Previous
108         Meta-N                  Yank Next
109
110 .SH OPTIONS
111
112 .I Xzwrite 
113 will accept all X Toolkit command-line options and
114 resource database specifications, under the name 'XZwrite'; for more
115 information, see 
116 .IR X (1). 
117 The instance names of the different parts of
118 .I xzwrite 
119 are as follows (each should be preceded by XZwrite* in the
120 user's .Xresources file.  For examples of how to use these resource
121 names, look in /usr/athena/lib/zephyr/XZwrite.) 
122
123 .nf
124  toplevel - the top level shell
125       icon - the top level "Z" icon
126
127  sendWindow - the popup shell for the editor/destlist
128       sendForm - the form holding the edit tree and dest tree
129       sendClose - button to close sendWindow
130
131       editPane - the pane holding editor widgets
132               editTitle - the label holding the zephyr triple
133               editForm - the box holding editor command buttons
134                       editSend - button to send message
135                       editClear - button to clear editor
136                       editPrev - button to yank previous
137                       editNext - button to yank next
138               editor - the text editor
139
140       destForm - the form holding the destinations list/button
141               destScroll - the scrollbar holding the list
142                       destList - the destination list
143
144  menuWindow - the popup shell for the menu
145       menuForm - the form holding the menu list/button
146               menuClose - the Close Window button for the dest list
147               signature - button to change signature
148               closeOnSend
149               pings
150               verbose
151               authentic
152               yankDest
153               addGlobals
154               classInst
155               exitProgram
156
157  getStringWindow - the popup shell for dialog boxes (GetString.c)
158       getStringForm - the form containing the dialog widgets
159               getStringTitle - the title label width
160               getStringEdit - the text editor
161               getStringAccept - the accept button
162               getStringCancel - the cancel button
163
164 .fi
165
166 .PP
167 In addition, 
168 .I xzwrite 
169 will accept the following command-line options
170 (or resource database specifications).  Each should be preceded by
171 XZwrite* in the user's .Xresources file.  When a command-lie
172 .TP
173 .B +d (auth = true)
174 .br
175 .ns
176 .HP 5
177 .B -d (auth = false)
178 .br
179 When true, Zephyr messages to be sent authentic.  When false, Zephyr
180 messages are sent unauthentic.
181 .TP
182 .B +v (verbose = true)
183 .br
184 .ns
185 .HP 5
186 .B -v (verbose = false)
187 .br
188 When true, causes
189 .I xzwrite
190 to inform the user no one received a sent message by beeping.  This
191 is useful if the user wants to know if someone logged out between
192 the time when the editor is popped up (when a PING is sent) and when
193 the message is actually sent. 
194 .TP
195 .B +z (readZephyr = true)
196 .br
197 .ns
198 .HP 5
199 .B -z (readZephyr = false)
200 .br
201 When true, causes 
202 .I xzwrite 
203 to include the .zephyr.subs file for its initial list of destinations. 
204 .TP
205 .B +a (readAnyone = true)
206 .br
207 .ns
208 .HP 5
209 .B -a (readAnyone = false)
210 .br
211 When true, causes
212 .I xzwrite
213 to include the user's .anyone file for its initial list of destinations.
214 .TP
215 .B +x (readXzwrite = true)
216 .br
217 .ns
218 .HP 5
219 .B -x (readXzwrite = false)
220 .br
221 When true, causes
222 .I xzwrite
223 to include the user's .xzwrite.dest file for its initial list of destinations.
224 .TP
225 .B +l (trackLogins = true)
226 .br
227 .ns
228 .HP 5
229 .B -l (trackLogins = false)
230 .br
231 When true, 
232 .I xzwrite 
233 determines (at startup) if each username on the destination
234 list is logged on and removes those usernames that are not.  It then
235 subscribes to login and logout messages for each
236 username on the list, and keeps the destination list up to date with
237 respect to which users are zwrite-able.
238 .TP
239 .B +pong (pongScan = true)
240 .br
241 .ns
242 .HP 5
243 .B -pong (pongScan = false)
244 .br
245 Controls the method
246 .I xzwrite
247 uses determine whether a certain user is logged in.  If true, 
248 .I xzwrite
249 sends a notice with an opcode of PING (and a message body of PONG) and
250 awaits a response; if false,
251 .I xzwrite
252 performs a "zlocate".  Note that this resource is only used when
253 trackLogins is true.
254 .TP
255 .B -s (signature)
256 Specifies the 'signature' for all messages sent.  The signature will
257 appear as the first field in every message sent.
258 .I Xzwrite
259 will also look in the user's .zephyr.vars file to a signature, first
260 for the variable xzwrite-signature and then for the variable
261 zwrite-signature.  If neither is found, 
262 .I Xzwrite
263 will look in the /etc/passwd file for the user's name.
264 .TP
265 .B +n (ping = true)
266 .br
267 .ns
268 .HP 5
269 .B -n (ping = false)
270 .br
271 When ping is set to true,
272 .I xzwrite
273 sends a PING to the destination when it is initially selected.
274 .I Xzwrite
275 uses the PING to determine if anyone will actually receive a message
276 sent to that destination, and will not allow it to be selected if not.
277 .TP
278 .B +ci (classInst = true)
279 .br
280 .ns
281 .HP 5
282 .B -ci (classInst = false)
283 .br
284 When ci is set to true, a destination that contains two strings
285 separated by a comma is interpreted as a class and instance, with
286 a recipient of "*".  When it is false, the same string is interpreted
287 as an instance and recipient, with a class of MESSAGE.
288 .TP
289 .B +yd (yankDest = true)
290 .br
291 .ns
292 .HP 5
293 .B -yd (yankDest = false)
294 .br
295 When yd is set to true, yanking a previous message in the message editor
296 also restores the original destination of the message.  When set to false,
297 only the message text is yanked, and the current destination remains
298 unchanged.
299 .TP
300 .B +av (addVars = true)
301 .br
302 .ns
303 .HP 5
304 .B -av (addVars = false)
305 .br
306 When av is set to true, destinations that are specified as the result
307 of a recipient or instance of "..." are added to the destinations list
308 so they can be selected again.
309 .TP
310 .B +reply (autoReply = true)
311 .br
312 .ns
313 .HP 5
314 .B -reply (autoReply = false)
315 .br
316 When autoReply is set to true, xzwrite subscribes to <MESSAGE,*,%me%>
317 (in other words, all messages sent directly to the user).  Each time
318 such a message is received, a destination that will reply to the
319 sender on the same instance is added to the destination list, if it is
320 not already there.
321
322 .SH ACTIONS
323
324 Every useful action that 
325 .I xzwrite
326 can perform can be bound to any sequence of X events through the
327 mechanism of translation tables.  The following action procedures
328 available to the user.
329 .PP
330 .nf
331   OpenSend
332   CloseSend
333      Pops up/Pops down the message editor/destination list.  
334
335   SendMessage
336      Sends the message in the editor to the current destination.
337
338   ClearEditor
339      Clears the editor.
340
341   YankStore
342      Stores the contents in the message editor in the Yank buffer.
343
344   YankPrev
345   YankNext
346      Puts the previous/next item in the yank buffer into the editor,
347      optionally restoring the destination as well.
348
349   SelectDest
350   DeleteDest
351      Selects/deletes the hightlighed destination.
352
353   CreateDest
354      Prompts the user for a <class,instance,recipient> triple to
355      be added to the destinations list.
356
357   OpenMenu
358   CloseMenu
359      Pops up/Pops down the options menu.
360
361   ToggleOption
362      Toggles the option corresponding to the hightlighed item on the
363      options menu.
364
365   Signature
366      Pops up a dialog box and changes the Zephyr signature to whatever
367      is typed into it.
368
369 For examples on how to use these action procedures, look in
370 /usr/athena/lib/zephyr/XZwrite.
371
372 .SH FILES
373 .TP
374 /usr/athena/lib/zephyr/xzwrite.bitmap
375 Default icon bitmap
376 .TP
377 /usr/athena/lib/zephyr/XZwrite
378 Xzwrite program defaults
379 .TP
380 /etc/passwd
381 Signature field (from gecos information)
382 .TP
383 ~/.Xresources
384 user X resources database file
385 .TP
386 ~/.xzwrite.dest
387 The user's xzwrite destinations list.
388 ~/.anyone
389 The user's .anyone file.
390 ~/.zephyr.subs
391 The user's zephyr subscription file.
392 .SH SEE ALSO
393 X(1), zephyr(1)
394
395 .SH BUGS
396
397 .I xzwrite
398 occasionally decided to ignore the state of the "Pings" and
399 "Authentic" menu options, unless you happen to be running the program
400 under a debugger.
401
402 This man page contains many errors and omissions.
403
404 .SH AUTHOR
405
406 Written by Barry Jaspan (bjaspan@mit.edu), MIT Project Athena
407 and MIT Student Information Processing Board.