  BitchX FAQ
  Chris Bond, chris@uk.logics.com
  v2.0.1, 11 Febuary 1998

  This document explains how to use bitchx.
  ______________________________________________________________________

  Table of Contents:

  1.      General

  1.1.    Introduction

  1.2.    What is BitchX?

  1.3.    Where can I get it?

  1.4.    What are the requirements to run BitchX?

  1.5.    What OS'es have been tested to work with BitchX?

  2.      Getting started with BitchX

  2.1.    Installing BitchX with the source code

  2.2.    Compiling BitchX with tcl support

  2.3.    Starting BitchX

  2.4.    Getting to grips with the basic commands

  2.5.    What are BitchX.reasons/quit/help ?

  2.6.    Setting variables (Like i'm too lame to read BitchX.doc)

  2.7.    How do I use BitchX within XWindows?

  2.8.    What is .bitchxrc/bxglobal and .ircrc?

  3.      Commands

  3.1.    CDCC/XDCC

  3.2.    Color codes in BitchX

  3.3.    ircII Windowing - hidden windows

  3.4.    ircII Windowing - multiple visible windows

  3.5.    BitchX Variables for scripters

  4.      Contacts

  4.1.    Authors

  4.2.    Credits
  ______________________________________________________________________

  11..  GGeenneerraall

  11..11..  IInnttrroodduuccttiioonn

  This document was written as an aid to help new users to BitchX to get
  started.  Parts of this document have been taken from the original faq
  written by Xavier and IceBreak, credit goes where nesscessry.  If
  anything is not covered in the FAQ you could try joining the BitchX
  support channel on EFnet, #BitchX and asking for help.  You can also
  try emailing the current author of this FAQ at chris@uk.logics.com.

  11..22..  WWhhaatt iiss BBiittcchhXX??

  BitchX is a VERY heavily modified ircII client.  It includes many
  things such as built in CDCC (XDCC) offering, built in flood
  protection, etc.  It is easier to script things in BitchX because
  unlike plain, vanilla ircII, half the script does not have to be
  devoted to changing the appearance of ircII.  It also includes many
  other new features, such as port scanning, a CD player, a mail client,
  etc.

  11..33..  WWhheerree ccaann II ggeett iitt??

  BitchX has lots of sites devoted to it, currently these are the ones
  that currently serve it.  These sites are likely to go up and down due
  to the vast ammounts of traffic they generate.

  +o  ftp://ftp.uk.logics.com/pub/irc/clients/BitchX/

  +o  ftp://of.the-b.org

  +o  ftp://ftp.bitchx.com

  +o  ftp://ftp.bitchx.org

  +o  ftp://squid.newwave.net/pub/irc/clients/

  The source file name is called ircii-pana-xx.tar.gz.  If the ftp or
  www sites are not working, your best chance is to go to the irc and
  join #BitchX on EFnet, and do /ctcp #bitchx cdcc list.

  11..44..  WWhhaatt aarree tthhee rreeqquuiirreemmeennttss ttoo rruunn BBiittcchhXX??

  You need about 1 megabyte of free space on a system with a UNIX OS.
  Your terminal program should support ANSI if you want BitchX to show
  color and high ascii to be displayed correctly.  Each copy of BitchX
  loaded requires about 600-1000kb of memory.

  11..55..  WWhhaatt OOSS''eess hhaavvee bbeeeenn tteesstteedd ttoo wwoorrkk wwiitthh BBiittcchhXX??

  BitchX now works with almost all UNIX OS's and also Windows 32-bit.
  This is the current list of OSes that BitchX has been reported working
  on:

  +o  Linux (All)

  +o  FreeBSD (All)

  +o  BSDI 2.0/2.1/3.0/3.1

  +o  SunOS 4.1.4, 5.3, 5.4, 5.5, 5.5.1

  +o  HP-UX 9.x/10.x

  +o  OSF/1 (Dec Alpha)

  +o  DEC Unix

  +o  Ultrix

  +o  IRIX

  +o  AIX

  22..  GGeettttiinngg ssttaarrtteedd wwiitthh BBiittcchhXX

  22..11..  IInnssttaalllliinngg BBiittcchhXX wwiitthh tthhee ssoouurrccee ccooddee

  BitchX is fairly simple to install, if your OS is supported you will
  need to do the following:

       % gunzip ircii-pana-xx.tar.gz
       % tar xvf ircii-pana-xx.tar
       % cd BitchX
       % ./configure
       % make
       % make install (only as root to install globally)

  If the you have any problems in the compilation process of BitchX.  If
  you gather as much information about the error (output from make) and
  join the BitchX support channel on EFnet, #BitchX, or email the author
  at the following edwac@sk.sympatico.ca.  Bug reports can be sent
  exactly in the same way.  You might want to check the INSTALLATION
  file included in the source code for any common compile problems that
  have been reported.  This file also includes details of how to use TCL
  and the more advanced features of BitchX.

  22..22..  CCoommppiilliinngg BBiittcchhXX wwiitthh ttccll ssuuppppoorrtt

  BitchX has full tcl support and is constantly being updated with more
  features.  To compile BitchX with tcl support you will need to obtain
  a binary file of tcl.o for your operating system.  You can always get
  the latest copy of these from #BitchX on EFnet, or the ftp sites.  You
  will need to place the binary in BitchX/source, then after running the
  GNU configure script you can edit your ../Makefile and uncomment the
  following lines:

  TCLINC = -I/usr/include
  TCLLIB = -L/usr/lib -ltcl -lm
  TCL = -DWANT_TCL
  # TCL_SRCS = tcl.c
  TCL_OBJS = tcl.o

  Now when you run GNU make, BitchX will be compiled with tcl support.
  You can load a tcl file with /tcl -file /patch/file.tcl.  Tcl.c is not
  included in the standard BitchX package, this file is only available
  to the current BitchX developers who will make binaries available.

  22..33..  SSttaarrttiinngg BBiittcchhXX

  Starting BitchX is as simple as typing BitchX at a command prompt or
  by clicking on a icon. BUT there are some options which you might want
  to use.

  Usage: BitchX [switches] [nickname] [server list]
    The [nickname] can be at most 9 characters long
    The [server list] is a whitespace separate list of server name
    The [switches] may be any or all of the following
     -H <hostname>        uses the virtual hostname if possible
     -c <channel> joins <channel> on startup
     -b           load .bitchxrc  or .ircrc after connecting to a server
     -p <port>    default server connection port (usually 6667)
     -f           your terminal uses flow controls (^S/^Q), so BitchX shouldn't
     -F           your terminal doesn't use flow control (default)
     -d           runs BitchX in "dumb" terminal mode
     -q           does not load ~/.ircrc
     -r file      load file as list of servers
     -n nickname  nickname to use
     -a           adds default servers and command line servers to server list
     -x           runs BitchX in "debug" mode
     -v           tells you about the client's version
     -B           force BitchX to fork and return you to shell
     -l <file>    loads <file> in place of your .ircrc
     -L <file>    loads <file> in place of your .ircrc and expands $ expandos

  22..44..  GGeettttiinngg ttoo ggrriippss wwiitthh tthhee bbaassiicc ccoommmmaannddss

  BitchX supports all of the standard commands that you will be used to
  in most other unix clients such as ircii, epic, scrollz.  Below is a
  list of common commands that will be probably used a lot.

  +o  /server +server.name.here will change server to that server.

  +o  /j #channel will join the channel.

  +o  /q nick in a window will make that window a dedicated query window
     to nick.

  +o  /m nick/channel will send a private message to the nick/channel.

  +o  /m =nick will send a private message to nick that you are dcc
     chatting.

  +o  /m -site will send a command to an open ftp session.

  +o  /ctcp nick/channel command sends a ctcp command.

  +o  /ignore nick ALL  ignores all messages from nick.

  +o  /tig nick unignores nick.

  22..55..  WWhhaatt aarree BBiittcchhXX..rreeaassoonnss//qquuiitt//hheellpp ??

  BitchX.reasons  - Random kick messages
  BitchX.quit     - Random quit messages
  BitchX.help     - Help file

  All these files should be copied to the  /.BitchX directory.

  22..66..  SSeettttiinngg vvaarriiaabblleess ((LLiikkee ii''mm ttoooo llaammee ttoo rreeaadd BBiittcchhXX..ddoocc))

  One of the most frequently asked questions is how do get I get rid of
  * I'm too lame to read BitchX.doc * when I do a whois on myself.  Well
  the answer to this is quite easy you need to set up some variables.
  The following variables can be set:

          Variable        Value
          IRCNICK         - "nickname" Sets the default nickname to use.
          IRCNAME         - "username" Sets the default whois username, aka
                            the * I'm too lame to read BitchX.doc *
          IRC_HOST        - "hostname" Sets the virtual hostname, don't worry
                            about this unless you need it.
          IRCSERVER       - "server"   Sets the default server to use.
          IRCPORT         - "port"     Sets the default port to use.
          IRCUMODE        - "modes"    Sets the default usermode.
          IRCRC           - "filename" Sets the filename to use in place of
                             irc-rc

  To set up these variables will depend on the type of shell you use in
  bash you would type:

       % export VARIABLE="value"

  In csh/tcsh the command you type would be:

       % setenv VARIABLE "value"

  If you do not use one of these shells, I surgest you type man
  "yourshell" to find out how you set up a variables.

  22..77..  HHooww ddoo II uussee BBiittcchhXX wwiitthhiinn XXWWiinnddoowwss??

  First of all to make sure BitchX work properly in XWindows you will
  need to obtain rxvt or Eterm and use a vga font like vga11x19.  If you
  use rxvt you will need to start it with the options "-bg black -fg
  white -fn vga11x19".  Its counterpart Eterm has a .Eterm/MAIN file
  that you can set the colors and font in.  If the function keys don't
  work, you may need to add this to the  /.bitchxrc file:

  /bind meta3-1 chelp
  /bind meta3-2 CHANNEL_CHOPS
  /bind meta3-3 CHANNEL_NONOPS
  /bind meta3-4 CDCC_PLIST
  /bind meta3-5 DCC_PLIST
  /bind meta3-6 DCC_STATS

  22..88..  WWhhaatt iiss ..bbiittcchhxxrrcc//bbxxgglloobbaall aanndd ..iirrccrrcc??

  bitchxrc and ircrc are both variants of the same thing, a file loaded
  up by BitchX automatically.  What are the differences?

          .ircrc - this is loaded by all ircII clients, only put stuff
                  that will work with base ircII scripting here. Also,
                  this is loaded upon connecting to a server.

          .bitchxrc - this is loaded as soon as BitchX starts. Put all
                  BitchX-specific scripting commands here.

  bxglobal is simply more than a global .bitchxrc file.

  33..  CCoommmmaannddss

  33..11..  CCDDCCCC//XXDDCCCC

  BitchX offers built in support for public file offering called CDCC.
  Most clients tend to use XDCC file offering, for this reason BitchX
  will recognise any XDCC requests the same as CDCC requests. To use
  CDCC, you can type /cdcc for all the commands available.

  33..22..  CCoolloorr ccooddeess iinn BBiittcchhXX

  %K - Dark Grey                  %k - Black
  %G - Bold Green                 %g - Dark Green
  %Y - Yellow                     %y - Brown
  %C - Bold Cyan                  %c - Cyan
  %B - Bold Blue                  %b - Blue
  %P - Bold Purple                %p - Purple
  %M - Bold Magenta               %m - Magenta
  %R - Bold Red                   %r - Red

  %n - Null Color (will nullify colors before it)
  %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 - Background Colors
  %F - Flashing Foreground
  %U - Underline text

  Using these is as simple as /eval say $cparse("%RRed Text"), you can
  also mix them like such /eval say $cparse("%RRed %BBlue").

  33..33..  iirrccIIII WWiinnddoowwiinngg -- hhiiddddeenn wwiinnddoowwss

  Ok to set the scene BitchX uses a number of windows, the first window
  is referred to as (1).  So for example if you joined #BitchX, on
  EFnet, then typed /window new hide you will not really notice
  anything.  BitchX has created a new window for you, and that window,
  hereafter  referred to as (2) is hidden.  To switch to it, press
  ALT+2.  Its that simple.  You will notice that it only has one status
  bar, but this can be corrected by excuting the following in window 2:

  /window double on
  /window split on

  There are somewhat unlimited options with this type of windowing.  A
  good example of using a window would be to open a query window, or
  open another server connection.

  To kill a window you need to switch to it, then use /window kill

  33..44..  iirrccIIII WWiinnddoowwiinngg -- mmuullttiippllee vviissiibbllee wwiinnddoowwss

  The windowing commands, you can create as many windows as will fit on
  your screen, and assign each to a channel, assign one to receive all
  your /msg's.

  Here are the current windowing commands available (/help window)

  ADD           BACK          BALANCE       BEEP_ALWAYS   BIND
  CHANNEL       CREATE        DELETE        DESCRIBE      DISCON
  DOUBLE        ECHO          FIXED         GOTO          GROW
  HELP          HIDE          HIDE_OTHERS   HOLD_MODE     KILL
  KILL_OTHERS   KILLSWAP      LAST          LASTLOG       LASTLOG_LEVEL
  LEVEL         LIST          LOG           LOGFILE       MOVE
  NAME          NEW           NEXT          NOSERV        NOTIFY
  NOTIFY_LEVEL  NUMBER        POP           PREVIOUS      PROMPT
  PUSH          QUERY         REFNUM        REMOVE        SERVER
  SET           SCRATCH       SCROLLBACK    SHOW          SHOW_ALL
  SHRINK        SIZE          SKIP          SPLIT         STACK
  SWAP          TRIPLE        UNBIND        UPDATE

  BitchX already has some of these binds built in (/bhelp window)

     [window shortcuts]:
       ^W- - Shrinks current window 1 line
       ^W+ - Grows current window 1 line
       ^Wm - Moves current window down 1 line
       ^Wl - Lists current windows
       ^Wk - Kills current window
       ^Wh - Hides current window
       ^Wb - Balances window sizes
       ^Wn - Swaps to next window
       ^Wp - Swaps to previous window
        /# - Shows window number (1-4)

  The best way to use these are to experiment with the keys.  One quick
  tip to use multiple servers "/window server server.name.dom".

  33..55..  BBiittcchhXX VVaarriiaabblleess ffoorr ssccrriipptteerrss

  BitchX has a number of variables, these also include the standard
  ircii scripting ones, along with the extended BitchX ones.

     $,         last person who sent you a MSG
     $.         last person to whom you sent a MSG
     $:         last person to join a channel you are on
     $;         last person to send a public message to a channel you are on
     $A         text of your AWAY message, if any
     $B         body of last MSG you sent
     $C         current channel
     $D         last person that NOTIFY detected a signon for
     $E         idle time
     $F         time client was started, $time() format
     $H         current server numeric being processed
     $I         channel you were last INVITEd to
     $J         client version text string
     $K         current value of CMDCHARS
     $L         current contents of the input line
     $M         modes of current channel, if any
     $N         current nickname
     $O         value of STATUS_OPER if you are an irc operator
     $P         if you are a channel operator in $C, expands to a '@'
     $Q         nickname of whomever you are QUERYing
     $R         version of current server
     $S         current server name
     $T         target of current input (channel or QUERY nickname)
     $U         value of cutbuffer
     $V         client release date (numeric version string)
     $W         current working directory
     $X         your user@host address
     $Y         value of REALNAME
     $Z         time of day (hh:mm)
     $$         a literal '$'

  There are probably a lot more, but these should get you started.

  44..  CCoonnttaaccttss

  44..11..  AAuutthhoorrss

  FAQ Author:             Chris Bond <chris@uk.logics.com>
  BitchX Author:          Colten Edwards <edwac@sk.sympatico.ca>

  44..22..  CCrreeddiittss

  Some credit has to go the orignal author of this document, I have
  mearly updated and added extra information.

  panasync        <edwac@sk.sympatico.ca> <- kick ass client man
  Xavier          <xavier@sedated.net> <- original FAQ
  IceBreak        <ice_break@hotmail.com> <- original FAQ
  sX              <scoop@unreal.org> <- just cos hes a cool guy
  #BitchX EFnet   <- Cool place to idle on

