Zephyr is a loosely structured broadcast message system. People use zephyr to:
This document is about how to get started using zephyr via emacs. More about local zephyr usage, culture and other things can be found in the FZQ: frequently zephyred questions, which you might want to look over after this document.
When correctly configured, emacs zephyr mode provides a quicker and more robust interface to zephyr than the standard Athena tools (i.e. don't bother to follow the link. :-) This is good and bad. It's good because it makes zephyr easier to use. It's bad because it makes zephyr easier to use.
The easiest way to get started with zephyr mode in emacs is to
load the library "zephyr-setup". This library can be found in
/usr/local/lib/xemacs/lisp/local-pkgs/sample-setups.
You would add this line to your .emacs file:
(load "sample-setups/zephyr-setup")
The "zephyr-setup" file defines 3 types of zephyr-windows under XEmacs. The setups defined also work under gnu-emacs version 18, although they won't show up in frames (emacspeak for "X windows") of their own. The 3 functions defined are:
You can copy this file to customize things like where the windows show up on your screen, how big they are and what fonts they use. Or you can just call one or more of these functions as-is: either
M-x zephyr-personal M-x zephyr-nonpersonalor add these lines to your .emacs file:
(zephyr-personal) (zephyr-nonpersonal)
All of the windows that zephyr mode creates have the same basic interface. We'll use the zephyr-nonpersonal window as an example.
The contents of the window are split into two kinds of text: messages and message "headers". In this case, a message "header" is a specification of either where a particular message came from, or where a particular new message should go to. For example, after firing up zephyr mode, you might see the following appear in the zephyr-nonpersonal window:
bovik(graffiti):: HI there ALL, I'm a graffiti posting FREAK
The first line of this text contains the header "bovik(graffiti)" and the separator string "::". The "::" separates the header from the message itself, which is "HI there ALL, I'm a graffiti posting FREAK"
The header, in turn, specifies two things. First, the userid of the person who sent the message, which in this case is "bovik". Second, the instance to which the message was posted, which in this case is "graffiti".
By default, the zephyr-nonpersonal window displays all public zephyrs sent by anyone to any instance. Some people like this and use zephyr in this mode most of the time. To ignore all instances, you can type the following:
M-x zephyr-ignore-instance-<Tab> <return> * <return>Then, add back the instances that you are interested in using, e.g. "help":
M-x zephyr-listen-instance-<Tab> <return> help <return>
More advanced users can learn how to manipulate the instance filters using elisp. Read the code in "zephyr-setup.el" for how to do that.
To send a zephyr, you type "C-c C-s". You will be prompted for a destination, which is specified using the same form as the destination in the message header above. So, to send a message to graffiti, you type:
C-c C-s (graffiti) <return>Zephyr mode will insert
(graffiti)::into your buffer. Type the message underneath the header line, and type "C-j" to send. Note: when prompted for the message destination, you can use emacs completion to send to any destination that has appeared in the header of any message that you have received. You can also cycle back through recent destinations by using the M-n and M-p keys. This makes it easy to respond quickly to the instance of the most recently received message. (If you prefer, clicking the right mouse button in the buffer will also bring up a menu of commonly used zephyr commands.)
To send a private message, you do this:
C-c C-s bovik <return>Note the lack of parentheses! You can also send a private message with an instance tag:
C-c C-s bovik(graffiti) <return>This can be useful in some circumstances which are beyond the scope of this document.
Within SCS, instances are used in a fairly unstructured way. SCS Zephyr is pretty much a "stream" of semi-related messages. The instances are little more than separators, and do not always correlate with the content of the discussion. Sometimes the content of a message is contained more in its instance than in its body:
bovik(dinner):: ?
There are a few standard conventions with regard to instance use within SCS zephyr.