The zircon "look" command

N.B. This is just a start. The look command will become more powerful
and there might even get to be a graphical interface to it eventually....

Zircon allows you to control the appearance of your channel
windows. You can apply different looks depending on the channel name,
its type (chat, message channel or notice) and the netspace the
channel is connected to.

The default look for zircon is as follows:

    look -channel {^\\+.*$} {.*} {
	        {{Info {limit create url topic}} {Flags {key mod}}}
	        {{Control {Mode Info Action Users Quit Clear}}}
	        {{Text {text {scroll lock}}} Users}
	        Entry
	    }
    look -channel {^\\&.*$} {.*} {
	        {{Info {limit create url topic}} {Flags {key mod}}}
	        {{Control {Mode Info Action Users Quit Clear}}}
	        {{Text {text {scroll lock}}} {Users off}}
	        Entry
	    }
    look -channel {.*} {.*} {
		Topic
	        {{Info {limit create url topic}} {Flags {key mod}}}
	        {{Control {Mode Info Action Users Quit Clear}}}
	        {{Text {text {scroll lock}}} Users}
	        Entry
	    }
    look -message -chat -notice -- {.*} {.*} {
		{{Control {Mode Info Action Users Quit Clear}}}
		{{Text {text {scroll lock}}} {Users off}}
		Entry
	}


The look command takes several parameters:

The first paramters can be options indicating the type of object to
which the look applies. Valid values are -channel, -message, -notice
and -chat. You can use the special value -- to indicate the end of the
type options. If no type option is given the look applies to
everything.

The first non-option parameter is a regular expression that matches
the name of the channel - .* matches everything.

The second parameter can be omitted and defaults to .* if it is not
present, and is a regular expression matching the name of a netspace.

The last paramter is a list that describes the layout of the window.
Each element of the list represents a row of a notional grid laid upon
the window. The elements are made up of sub-lists that describe the
contents of the columns in these rows.

Topic gives you a topic line. Useful only for channels that have
      topics.

Text  gives you the place where the channel text appears. Text can be
      followed by another list of options. If the first element of
      this list is "nowrap" then a horizontal scrollbar is added and
      the window does not wrap. "text" positions the etx window and
      the sub-list {scroll lock} places the scrollbar with the locking
      icon beneath it. {lock scroll} puts the lock icon at the top.

Info sets up the channel info line. This is really on useful for
     DALnet users.

Flags displays icons for when channels are keyed or moderated.

Control puts up the menubar.

Entry is the line where you type stuff.

Users is the user button box.

As I said above. this is just a start and it will all get a lot more powerful.
