Written by Ronald van Loon, August 27, 1991 (IRCNICK : rvl) [ PART THREE : CUSTOMIZING YOUR OWN ENVIRONMENT - VARIABLES AND DEFAULTFILES ] Most of the information in this file can be obtained by issuing : man irc (NOTE : does not work when using the irc-program !) /HELP SET /HELP SET Prerequisites ============= In this part, I will assume the following : - You have read Part One and Part Two of this introduction, and you understand most of it ; you know how to deal with messages send to you, and how to have conversations with people on channels. - You know what environment variables are and how to set them ; if you don't, a brief recap of the procedure follows below - you should however, go out and read a book on UNIX. Issue the following command : echo $SHELL if the computer's response is : .../sh or : .../bash or : .../ksh (where ... is a directory name (usually /bin)) then use the following : ="" ; export ---- Example : IRCNAME="Ronald van Loon" ; export IRCNAME (This sets the variable 'IRCNAME' to the value 'Ronald van Loon' and makes its value available to all programs) In all (?) other cases, (.../csh .../tcsh etc.) setenv "" ---- Example : setenv IRCNAME "Ronald van Loon" To make sure what you did was correct, issue the : echo $ command, the computer's response should be the value you just gave it. This should be enough to help you understand, or in any case use the information in the next section. IRC II and Environment Variables ================================ IRC II will use the values of the following environmentvariables, if set : IRCNICK : Specifies the nickname you will have when you initially start irc. You can change it afterwards, obviously, with /NICK. See also part one of this tutorial. IRCNAME : Specifies the name people will see when they issue a /WHO or /WHOIS command. Useful for people who use other people's accounts, or in general to reflect the state of mind you are in today. ---- Example : $ IRCNAME='Crazy Harry' ; export IRCNAME $ IRCNICK='rvl' ; export IRCNICK $ irc IRC : *** Welcome to the Internet Relay Network, rvl : /WHOIS rvl IRC : *** rvl is rvloon@131.211.145.35 (Crazy Harry) on channel *private* ---- TERM : Specifies your terminal type ; if this variable is set to the wrong value, IRC may behave rather strange. Also beware that at some systems IRC II tends to disturb certain settings on your terminal, so your terminal may act strange after using IRC II. HOME : This tells IRC II where your Home directory is. (The directory where your files are). Note : TERM and HOME are usually set when you login, so in most cases there's no need to set them manually. There are three other environment variables IRC uses, but those will be mentioned at the appropriate places throughout this tutorial. IRC II and Initialisation Files =============================== When you use IRC II on a (semi)regular basis, you will discover that every time you start the program you will issue the same initialisation sequence. If that is the case, I have good news for you : you don't have to do that anymore ! IRC II will, at start up, load a file called ".ircrc" (full path: $HOME/.ircrc). It will treat each line in that file as if you typed it manually. For example, if the contents or your .ircrc file is : .ircrc : /COMMENT This is definitely *NOT* a typical .ircrc file .ircrc : /NICK rvl .ircrc : /JOIN +my_channel Obviously, the ".ircrc :"-bit should not be present in the file. What will happen is the following : IRC II loads the .ircrc file, executing your commands one by one : The /COMMENT will be ignored, /COMMENT is typically used in .ircrc-files to add comments to following lines. Second, the /NICK rvl line is read and executed, thus setting your nick to 'rvl'. Last, you will join a channel called '+my_channel', when the /JOIN-line is read and executed. NOTE : it is in general not a good idea to set your nick in .ircrc files, as it makes using IRC II less flexible. Use the environment variable IRCNICK instead, or use the command-line option, described elsewhere. The .ircrc file is a so-called defaultfile; you use it to tailor IRC II to your needs ; you can, however, also create other files with IRC II commands in them - 'batch files' - and use the /LOAD command. /LOAD Loads the given file into irc, treating each line as an irc command, just as if it were typed into the command line. (Actually, there's more than meets the eye here, but I will postpone further explanation until I go into ALIASes and such.). IRC II provides a number of batchfiles, ready to /LOAD. See also /HELP LOAD. You can change where IRC II looks for files by setting the IRCPATH variable. The value of this variable should be a colon-separated (:) list of directories, in which your files are stored. Changing IRC II's behaviour =========================== To make your life easier (or hopelessly complicated ;-) IRC II has about 543 different variables, all of which control different parts of IRC II. Typically, you will store your favorite set of variable settings in your .ircrc. You set, reset and unset variables with the /SET command : /SET Shows settings of all variables /SET Shows setting of . It is also useful to show settings of variables starting with a certain prefix. /SET - If is a text (string) variable, it will be set to the NULL string (""). /SET Sets the value of to , provided is a valid value for this particular variable. Flavours of Variables ===================== There are five kinds of variables: Type Ref. Valid Values ======= ==== ============================================= Boolean : BOOL : ON, OFF, TOGGLE Level : LVL : PUBLIC, MSG, NOTICE, WALL, WALLOP, NOTE, CRAP Integer : INT : 0,1,2 ... String : STR : Hybrid : HYBR : A combination of the four above. Boolean ------- This kind of variable is either ON or OFF. If you specify TOGGLE when /SETting, it will go from ON to OFF or vice versa. Level ----- This kind of variable is used in situations where IRC II needs to classify kinds of messages : PUBLIC : Messages on a channel MSG : Private messages (MSGs) NOTICE : Notices WALL : WALL message (a message sent to everyone on IRC) WALLOP : a WALLOP message (you only get those when you are an IRC Operator) NOTE : A (server) NOTE message CRAP : Everything not covered by the six message levels above. NONE : None of the above. You can also specify multiple levels, separated by spaces, or specify ALL, and going down from there by preceding the levels you don't want included with a minus-sign '-'. So, ALL is equivalent to : PUBLIC MSG NOTICE WALL WALLOP NOTE CRAP Example: PUBLIC MSG NOTIC is equivalent to ALL -WALL -WALLOP -CRAP -NOTE Integer ------- Your average cardinal type. String ------ A sequence of characters. For certain variables, certain restrictions apply. Hybrid ------ A combination of all or any of the above. General Purpose Variables ========================= I will now describe the variables that are "General Purpose", which means that they are not connected with other IRC commands, like /ON or /ALIAS. In the following, I will not give many examples, as obviously a variable controls certain conditions rather than reflecting an immediate change of environment. Also note that the order in which variables are listed, is arbitrary. AUTO_UNMARK_AWAY : BOOL ON : whenever this variable is ON, you will be automatically unmarked as being AWAY whenever you send a message to a channel or send a private message. (Equivalent to issueing the /AWAY command with no arguments) OFF: Your AWAY-status remains the same, unless you issue the /AWAY command. See also : /AWAY in tutorial one. ---- AUTO_WHOWAS : BOOL ON : in cases where /WHOIS would result in : No such nickname a /WHOWAS will automatically be generated. OFF: You will not be bothered by /WHOWAS's ---- BEEP - how to avoid or limit the amount of BEEPs (^G's) received ================================================================ BEEP : BOOL ON : All BEEPs will be heard at the terminal OFF: All ^G (Control-G) characters will be shown as reversed 'G's. The setting of this variable does not affect the BEEPs generated by the BEEP_ON_MSG variable and the BEEP_WHEN_AWAY variable. ---- BEEP_MAX : INT This variable indicates the maxinum number of beeps you will hear for any given message ; e.g. if this variable is set to '1', and a message sent to you contains 10 beeps, only '1' will be heard. 0 : All BEEPs in the message will be heard >0: See explanation. ---- BEEP_ON_MSG : LVL The message in the class(es) indicated by this variable will generate an audible beep on your terminal. For example, if you set this variable to MSG, then every private MSG you receive will generate an audible BEEP. ---- BEEP_WHEN_AWAY : INT When you've /AWAYed, a number of BEEPs will be generated upon receipt of a MSG. 0 : do not generate beeps >0: specifies the number of BEEPs generated. ---- MAIL : INT By setting this variable, IRC, will tell you when new mail arrives - the client must be installed properly for this to function. See also : part four, in which the wonders of the Status Line are revealed. 0 : do not check for Mail 1 : when mail arrives, display the message : You have new mail. Also, an optional indicator in your status line will tell you how many messages you have in your mailbox. 2 : all the functionality of 1, but IRC will also show the three first lines of the message. ---- [ END OF PART THREE : PART FOUR WILL DEAL WITH THE REMAINING VARIABLES AND THE STATUSLINE ]