Version 3 (modified by, 14 years ago) (diff)


Useful commands for using BarnOwl

Running things

  • Press : (colon) to enter a BarnOwl command. These will be written in bold. While typing something in the command line, press Tab to see possible completions.
  • Use exec <command> to run <command> as from a shell. However, this does not allow input to <command>, and has very limited output capabilities.
  • Use suspend to suspend BarnOwl and return you to the shell. When you're done, use fg to resume BarnOwl.
  • Use source <file> to make BarnOwl execute the commands in <file>. When starting up, BarnOwl will execute its startup file, which is typically in ~/.owl.

Message control

  • In the main message list, press d to mark a message for deletion and u to unmark it. These commands automatically move to the next (or previous, depending on which way you were moving before) message, so you can hold them down to mark many at once. When you're done, press x to delete.
  • Use sub <class> <instance> <recipient> to subscribe; that is, all messages to <class>, <instance>, and <recipient> will be shown to you. You may omit <recipient>, or both <recipient> and <instance>; you will then receive everything matching the remaining arguments.
  • Use zpunt <class> <instance> <recipient> to punt; you will temporarily not receive any messages sent to <class>, <instance>, and <recipient>. You may omit <recipient>, but be warned: if you give only one argument, zpunt will assume it's an instance, and punt MESSAGE / <instance>. This is probably not what you want.
  • Use show zpunts to list your current punts. (There will be some changes; for example, <class> will have turned into ^(un)*<class>(\.d)*$.) zunpunt will remove punts, with the same format and caveat as above.

Sending messages

  • Press z to start a zwrite command. zwrite optionally accepts -c <class> -i <instance> -r <realm> -O <opcode> (the latter two being less commonly used), as well as -m <message>. If no <class> or <instance> is provided, a user must be; the zephyr will be sent personally to that user. If no <message> is provided, BarnOwl will let you write one.
  • Press r to reply to the current message. If the message is personal, you'll be writing directly to the sender; if it isn't, you'll be writing to the class and instance of the message.
  • Press R to reply with a personal message directly to the sender.
  • Press Control-R to reply, but show the zwrite command line so you can edit the class, instance, and recipient.
  • While writing a message, press Alt-Q to wrap the lines at about 70 characters. This width will fit on most people's screens.


  • Press / and then type a string to jump to the nearest occurrence of that string after the current message.
  • ? does the same, but searches before the current message.
  • setsearch clears the search string.


  • show keymaps will give you a list of the current keyboard shortcuts. This gives a good picture of what keys are currently bound, as well as the syntax for key sequences.
  • bindkey <map> <sequence> command <command> binds <sequence> to <command> in <map>. You probably want <map> to be either edit (for all instances where you're editing text) or recv (for the main message list).
  • In bindkey, starting <command> with start-command will put the rest of <command> in the command line and allow you to edit it. For example, pressing z is equivalent to start-command zwrite .


  • set <variable> <value> sets the variable <variable> to <value>.
  • Set logging to on to log personal messages, and classlogging to on to log class messages.
  • Set zsig to a personal signature; it will get sent with each message.
  • Set zsigproc to the path of an executable file that when run will output a line of text. This will be called, and the output used as your signature, whenever one is needed.


  • The sequences @(@color(<color>) <text>) and @b(<text>) will apply <color> to <text> and make <text> bold, respectively. However, possibly because of limitations of terminal emulators, @i(<text>) will underline <text>, not italicize it.
  • See ColorUtils for a way to color-code zephyrs.