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 ______________________________________________________________________ 11.. GGeenneerraall 11..11.. IInnttrroodduuccttiioonn 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. 11..22.. WWhhaatt iiss BBiittcchhXX?? 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. 11..33.. WWhheerree ccaann II ggeett iitt?? 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. 11..44.. WWhhaatt aarree tthhee rreeqquuiirreemmeennttss ttoo rruunn BBiittcchhXX?? 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. 11..55.. WWhhaatt OOSS''eess hhaavvee bbeeeenn tteesstteedd ttoo wwoorrkk wwiitthh BBiittcchhXX?? 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 22.. GGeettttiinngg ssttaarrtteedd wwiitthh BBiittcchhXX 22..11.. IInnssttaalllliinngg BBiittcchhXX wwiitthh tthhee ssoouurrccee ccooddee 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. 22..22.. CCoommppiilliinngg BBiittcchhXX wwiitthh ttccll ssuuppppoorrtt 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. 22..33.. SSttaarrttiinngg BBiittcchhXX 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 uses the virtual hostname if possible -c joins on startup -b load .bitchxrc or .ircrc after connecting to a server -p 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 loads in place of your .ircrc -L loads in place of your .ircrc and expands $ expandos 22..44.. GGeettttiinngg ttoo ggrriippss wwiitthh tthhee bbaassiicc ccoommmmaannddss 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. 22..55.. WWhhaatt aarree BBiittcchhXX..rreeaassoonnss//qquuiitt//hheellpp ?? BitchX.reasons - Random kick messages BitchX.quit - Random quit messages BitchX.help - Help file All these files should be copied to the /.BitchX directory. 22..66.. SSeettttiinngg vvaarriiaabblleess ((LLiikkee ii''mm ttoooo llaammee ttoo rreeaadd BBiittcchhXX..ddoocc)) 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. 22..77.. HHooww ddoo II uussee BBiittcchhXX wwiitthhiinn XXWWiinnddoowwss?? 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 22..88.. WWhhaatt iiss ..bbiittcchhxxrrcc//bbxxgglloobbaall aanndd ..iirrccrrcc?? 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. 33.. CCoommmmaannddss 33..11.. CCDDCCCC//XXDDCCCC 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. 33..22.. CCoolloorr ccooddeess iinn BBiittcchhXX %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"). 33..33.. iirrccIIII WWiinnddoowwiinngg -- hhiiddddeenn wwiinnddoowwss 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 33..44.. iirrccIIII WWiinnddoowwiinngg -- mmuullttiippllee vviissiibbllee wwiinnddoowwss 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". 33..55.. BBiittcchhXX VVaarriiaabblleess ffoorr ssccrriipptteerrss 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. 44.. CCoonnttaaccttss 44..11.. AAuutthhoorrss FAQ Author: Chris Bond BitchX Author: Colten Edwards 44..22.. CCrreeddiittss Some credit has to go the orignal author of this document, I have mearly updated and added extra information. panasync <- kick ass client man Xavier <- original FAQ IceBreak <- original FAQ sX <- just cos hes a cool guy #BitchX EFnet <- Cool place to idle on