This file describes *all* the things that you can configure from the
preferences file for the various Zircon objects. Also at the end is
some information about sharing windows and netspaces.

First a word about how to format items.

bool values should be 0 or 1

regular expressions, texts and lists should all be enclosed in { }. 
Lists  of regular expressions (such as for the ops flag on channels))
should have each element of the list enclosed in { } as well or else
weird things will happen :

{{ptn1} {ptn2}}

If you want to put a { or a } inside a list or text then you need to
quote it with \. If you want to do anything really complicated you
should learn the rules for tcl lists. but DONT PANIC - a zircon prefs
file editor is on the stocks and this will solve all your problems....

Channels, Messages, Notices and Chats
-------------------------------------

You set these as options to the Channel command:

Channel #foo -timestamp 1

      name    default    type
      ----    ------     ----
    timestamp	0	{bool}	If true adds a time stamp option to the
				Channel Mode menu. If you select this 
				then messages will be prefixed with a
				timestamp formatted using the
				timeformat format string.
    timeformat	{%m/%d/%Y %H:%M:%S} {format}
				This is a tcl clock formatting string.
				Read the tcl clock manual page of you
				want to change it.
    noshare	0	{bool}  If true then this Channel will always
				have its own window 
    monitor	0	{bool}	If true st up a monitoring window
    menu	0	{bool}	If true include this on the Channels menu 
    join	0	{bool}	If true join automatically on start up
    nocase	0	{bool}	If true ignore case when sorting names
    nosort	0	{bool}	If true don't sort the names.
    open	0	{bool}	If true pop up if iconified and
				something appears. 
    close	0	{bool}	If true Close if not active
    draw	1	{bool}	If true allow zircon drawing comamnds
    jump	1	{bool}	If true then latest line always visible.
    quiet	0	{bool}	If true then no bells will ring
    actions	0	{bool}	If true send all text as actions
    buttons	1	{bool}	If true show the name buttons
    colour	{}	{list {mirc}}
				Support mirc colours (not-recommended)
    crypt	{}	{key}	Deprecated - SED encryption key. SED may go.
    key		{}	{key}	Channel key value
    logfile	{}	{file}	Logfile name
    history	50	{int}	Number of lines to be held as history.
    closetime	0	{seconds}
				Number of seconds of idle time before
				channel is iconified
    patterns	{}	{patterns}
				A list of regexo and command pairs that
				will be executed when lines that match
				the patterns are sent to the channel.
    messages	{}	{texts}
				Canned messages
    topics	{}	{texts}
				Canned topics
    ops		{}	{users}
				List of regular expressions describing
				the nick!user@host for peopel you want
				to AUTO-OP

    msg		{}	{list {Join Kick Kill Leave Lost Mode Quit Topic}}
				TMessages not to show on the Channel.
    bindings	{}	{special}
				Set these up using the zbinf command!
    icon	{}	{icon}	The file name of an icon for the channel
    foreground	{}	{colour}The foreground colour

    background	{}	{colour}The background colour
    font	{}	{font}	The typeface to use
    boldfont	{}	{font}	The typface to use for bold
    geometry	{}	{geometry}
				The position for the Channel. (This may
				not work!)
    height	24	{int}	Height of the channel window
    width	80	{int}	Width of the Channel window


Servers
-------

    host	{}	{host}	Host name
    port	6667	{port}	Port to connect to - can be a
				specified as a range 6667-7000
    oper	{}	{id}	Your operator ID
    operpw	{}	{pass}	Your operator passwd
    script	{}	{script}
				A list containing lines that should be
				sent to your firewall.
    passwd	{}	{pass}	Your password if any
    invisible	0	{bool}	Marks you as invisible
    wallops	0	{bool}	Shows you wallops
    srvmsg	0	{bool}	Shows you sr=erver messages
    undernet	0	{bool}	Indicate sthat this is an undernet server
    irc2.9	0	{bool}	indicates that this is a 2.9 server.

Services
--------

    host	{}	{host}	Host name
    nick	{}	{nick}	Nick
    ops		{}	{texts}	Operations to send


Friends
-------
    notify	1	{bool}	If true check to see if this user is on
    menu	1	{bool}	If true add this friend to the menu
    id		{}	{userhost}
				user@host for this friend


Netspace specifc options
------------------------

You set these using the net command:

net ircIImode 1


    multion	0	{bool}	process *all* ON conditions that fire
    beep	BEEP	{text}	Command to execute for bell
    nosplit	0	{bool}	Don't handle netsplaits specially.
    ircIImode	0	{bool}	Allow / commands
    busymsg	{I am busy and am not accepting calls at the moment.} {text}
				Send this text when you are marked busy.
    wavplayer	{}	{program}
				Program that will play a .wav file
    wavpath	{}	{path}	Search path for wav files
    images	0	{bool}	Use icons for buttons - not supported fully.
    command	0	{bool}	Add a command line to the Info window
    raw		0	{bool}	Allow raw command sending i=from the
				info window.
    wallops	0	{bool}	see Server above
    srvmsg	0	{bool}	see Server above
    invisible	0	{bool}	see Server above
    showPublic	1	{bool}	LIST control
    showLocal	1	{bool}	LIST Control
    showPrivate	0	{bool}	LIST Control
    topicOnly	0	{bool}	LIST Control
    minMembers	3	{int}	LIST Control
    maxMembers	0	{int}	LIST Control
    listPattern .*	{pattern}
				LIST Control
    topicPattern	.*	{pattern} 
				LIST Control
    sorted	0	{bool}	LIST control
    nocase	0	{bool}	LIST control
    showFriends 0	{bool}	Display friends window.
    undernet	0	{bool}	This is the undernet
    friendsStyle	window	{style}
				If set to menu then you dont get a
				window for friends.
    friendsOn	1	{bool}	Enable repeated checking for Friends
    verboseCTCP	0	{bool}	Show CTCP replies in the info window
    noRefresh	1	{bool}	Don't generate a LIST On joining.
				Leave this one alone!
    killPath	1	{bool}	Remove path information from server
				KILL messages
    noConfirm	{}	{list {Quit Leave Kill SaveConf}}
				Dont ask for confirmation for certain ops.
    toInfo	{}	{list {Ctcp Signoff Who Whois Whowas Error Ison Info}}
				Send thes ekind of messages to the
				Info window.
    noPopup	0	{bool}	Dont popup channel windows
    popInfo	0	{bool}	popup Info window
    busy	0	{bool}	Mark me as busy
    reconnect	0	{bool}	Automatically try to reconnect to servers
    srvcycle	0	{bool}	Cycle through servers in reconnects
    nicksize	9	{int}	The max size of a nickname (0 -> infinite)
    autoget	{}	{users}	List of regexps that match nicks for
				automatic acceptance of DCC gets.
    autogetdir	{}	{directory}
				list of directory/pattern pairs such
				that the directory will be used for
				automatically accepted incoming files that
				match the given regular expression. If
				no pattern is given then it defaults
				to .* and matches anything. Patterns
				are case sensitive, matched from left
				to right and if there is no match you
				will be prompted. 
    autochat	{}	{users}	Ditto for DCC Chats
    monitorIn	0	{bool}	Controls trace information
    monitorOut	0	{bool}	Ditto
    ctcpPattern	.+	{pattern}
				Only allow CTCPs on channels that
				match this patterm
    maxQueue	50	{int}
				The maximum number of messages that
				will be queued when replying to ctcp's
				etc. Set it to {} for no maximum.
    nocontrol	0	{bool}
				Dont show a Control panel
    autoAway	0	{seconds}
				Dont use this!
    monitorTime	600	{seconds}
				Time between refreshing channel monitors.
    testTime	300	{seconds}
				Time between various netspace tests.
				Dont change this one.
    dccTime	600	{seconds}
				Throw away DCC offers that are not
				accepted after this time
    notifyInterval	300	{seconds}
				Time between ISON requests
    ping	0	{seconds}
				If non-zero will ping server at this interval.

    antiflood   2	{seconds}
				Time delay between sedning queued CTCP
				replies etc.

Netspaces
---------

Netspaces allow you to have several IRC sesssions open at the same
time. It introduces a two level structure into the prefs files:

Your .zircon/preferences file sets up default values for things like
Channels, Messages and net related things. It must *NOT* contain any
Server definitions.

Make a directory called .zircon/netspaces.

In there create preferences files for each of the networks you want to
use, giving the files appropriate names : DALnet, UnderNet etc. etc.

These set the preferences you want for the particular network and
Server specifications should be in here.

To load a Netspace when zircon starts up you include a line like:

Netspace DALnet

at the end of your .zircon/preferences file. If you dont explicitly
include the netspace it wont be loaded, but it will appear on the
Netspace menu in zircon and can be loaded later. If you want multiple
connections to the same network you should use the load menu option in
zirtcon to load another copy of the Netspace - dont try loading two
copies from the preferences file (I really dont know what would happen!!)

Sharing
-------

Sometimes you would like several channels to appear as sub-windows of
a single window rather than as a separate window. You can do this with
the share command.

If you inlcude in your .zircon/preferences file the command:

share -message {.*} {.*}

Then all messages will be displayed as sub-windows of a single window
(though see the noshare option described above for Channels.)

share -channel #MyChannel {.*}

Will make all versions of #MyChannel in different netspaces
appear in one window.

If you use share in a netspace preferences file, then the last
parameter can be omitted and it defaults to meaning the current
netspace:


share -message {.*}

Will collect together all the messages from the current netspace into
one window.

The parameters are regular expressions that are matched against
channel names and netspace names.

Look
---

You can also fiddle with the appearance of Channel windows to a
certain extent using the look command. If you really want to do this
then ask me how. (Or wait until I document it properly!!)
