The iil (short for iiless) is simple viewer/reader (it doesn't provide
notifications) for ii irc client [1]. It was inspired by ml [2] script.

It has minimal dependencies:
- GNU less and lesskey.  Some can argue that GNU less is far from 
  minimal, but it can be found almost everywhere, even *BSD are using
  this implementation.  It won't work with busybox less.
- Bourne shell and few commands like awk, du.  It should work with any 

To get working iil first you will need to compile lesskeys file to 
something that less understands.  Use command like:

  $ lesskey -o iilkeys lesskeys

Copy iilkeys file where you like and then edit iil.sh script.  You will 
need to change $irc_prefix to location, where FIFO files of ii reside.  
You will need to change $less_keys to point, where compiled file with 
lesskeys can be found.  You can also change $read_cmd - e.g. some shells 
support readline option for read (-s flag).  Copy iil.sh where you like.

Now you can start iil.  Some file will be opened in less pager.  When 
specific key will be pressed, less will close and emit hook used by 
script.  Depending on value of hook, new instance of less will be opened 
and so on.

Default keys:
 ,  (Comma, same key where < is)
    Switch to previous server/channel. 

 .  (Period, same key where > is)
    Switch to next server/channel.

 ;  (Semicolon)
    Send message to server/channel or change channel, when used on
    server list page.

 0  (Zero)
    Show and refresh list of channels/servers.

    Switch to specific channel.

By default iil creates list of channels and servers, where negative
(e.g. -1, -2, -3 ...) numbers represents servers, zero (0) is
server/channel list and the rest represents channels and private 
messages (e.g. 1, 2, 3 ...).

You can use , and . to cycle through this list.  When you will hit 
first/last item of this list, iil will jump to the other end (it works 
pretty much like a ring).  To refresh list (e.g. after joining new 
channel you need to press 0 (Zero).

You can use same numbers for starting iil, some examples:
  $ ./iil.sh 2
    will show second channel
  $ ./iil.sh -1
    will show first server
  $ ./iil.sh 0
    this is default, it will show list of servers/channels

The iil has also primitive support for sending messages using read 
builtin in /bin/sh.  Just use ; to send message to currently viewed 
server/channel.  Same key can be used on the list page - enter number to
switch to specific channel/server.

There is no problem with using iil in multiple instances.  Just remember 
to clean irc prefix from old channels/servers from time to time.  There 
is also useful option in less called forw-forever, which works like 
"tail -f" (use capital F to activate it).

I'm not sure if such short script is copyrightable, but jurisdiction of 
my country [sic!] doesn't allow me to release it into public domain.  
Read LICENSE file for details. 

- should list be wrapped (work like ring)?
- spell check readme and rewrite it in proper english

Three cents about colors.  Personally I don't find usage for those, but 
probably those could be added in pretty trivial way.  Less supports 
filters with LESSOPEN and maybe few other things - check less(1) man 
page for details.

[1] http://tools.suckless.org/ii/
[2] http://dev.laptop.org/~pgf/mh/ml