1 .TH XZWRITE 1 "7 February 1989"
3 xzwrite \- X application to write to another user via Zephyr
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]
12 is an X application that sends messages to other users
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
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.
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
41 between the fields and with a linefeed between each line. Blank lines
42 and lines beginning with an octothorpe (#) are ignored.
45 Clicking the left button in the
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.
56 If the user specifies a destination in the .xzwrite.dest file
57 with an instance or recipient of "...",
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.)
68 While the mouse pointer is inside the
70 icon, the mouse buttons have the following effect:
73 Pops up the editor and destination list so the user can create and
77 Pops up a list of things that can be changed while xzwrite is running.
78 Clicking the "Change Signature" box causes
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
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.
102 The following key sequences have been defined for convenience:
105 Ctrl-Return Send message
106 Meta-O Store current message, yank previous
113 will accept all X Toolkit command-line options and
114 resource database specifications, under the name 'XZwrite'; for more
117 The instance names of the different parts of
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.)
124 toplevel - the top level shell
125 icon - the top level "Z" icon
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
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
140 destForm - the form holding the destinations list/button
141 destScroll - the scrollbar holding the list
142 destList - the destination list
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
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
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
179 When true, Zephyr messages to be sent authentic. When false, Zephyr
180 messages are sent unauthentic.
182 .B +v (verbose = true)
186 .B -v (verbose = false)
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.
195 .B +z (readZephyr = true)
199 .B -z (readZephyr = false)
203 to include the .zephyr.subs file for its initial list of destinations.
205 .B +a (readAnyone = true)
209 .B -a (readAnyone = false)
213 to include the user's .anyone file for its initial list of destinations.
215 .B +x (readXzwrite = true)
219 .B -x (readXzwrite = false)
223 to include the user's .xzwrite.dest file for its initial list of destinations.
225 .B +l (trackLogins = true)
229 .B -l (trackLogins = false)
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.
239 .B +pong (pongScan = true)
243 .B -pong (pongScan = false)
247 uses determine whether a certain user is logged in. If true,
249 sends a notice with an opcode of PING (and a message body of PONG) and
250 awaits a response; if false,
252 performs a "zlocate". Note that this resource is only used when
256 Specifies the 'signature' for all messages sent. The signature will
257 appear as the first field in every message sent.
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,
263 will look in the /etc/passwd file for the user's name.
271 When ping is set to true,
273 sends a PING to the destination when it is initially selected.
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.
278 .B +ci (classInst = true)
282 .B -ci (classInst = false)
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.
289 .B +yd (yankDest = true)
293 .B -yd (yankDest = false)
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
300 .B +av (addVars = true)
304 .B -av (addVars = false)
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.
310 .B +reply (autoReply = true)
314 .B -reply (autoReply = false)
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
324 Every useful action that
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.
333 Pops up/Pops down the message editor/destination list.
336 Sends the message in the editor to the current destination.
342 Stores the contents in the message editor in the Yank buffer.
346 Puts the previous/next item in the yank buffer into the editor,
347 optionally restoring the destination as well.
351 Selects/deletes the hightlighed destination.
354 Prompts the user for a <class,instance,recipient> triple to
355 be added to the destinations list.
359 Pops up/Pops down the options menu.
362 Toggles the option corresponding to the hightlighed item on the
366 Pops up a dialog box and changes the Zephyr signature to whatever
369 For examples on how to use these action procedures, look in
370 /usr/athena/lib/zephyr/XZwrite.
374 /usr/athena/lib/zephyr/xzwrite.bitmap
377 /usr/athena/lib/zephyr/XZwrite
378 Xzwrite program defaults
381 Signature field (from gecos information)
384 user X resources database file
387 The user's xzwrite destinations list.
389 The user's .anyone file.
391 The user's zephyr subscription file.
398 occasionally decided to ignore the state of the "Pings" and
399 "Authentic" menu options, unless you happen to be running the program
402 This man page contains many errors and omissions.
406 Written by Barry Jaspan (bjaspan@mit.edu), MIT Project Athena
407 and MIT Student Information Processing Board.