Navigate!

Top
Links
Contact
Projects
Photos
Rants

Configuration

NOTE: this how to makes use of features available in Irssi 0.8.10-rc5 (20041018). Some features may not be available in your version.

An important thing to remember is that all of Irssi's settings are tab completable. That is, you can type /set ni <tab> and you can tab through all of the options that start with 'ni'. This is very handy if you forget a setting, or don't know what's available. Also, typing a setting without a variable will tell you what the current setting is. /hilight for example, will show you what current hilights you have set.
Irssi saves its files to ~/.irssi Your config file is ~/.irssi/config You can edit it by hand but it's advisable to close Irssi first. Whenever you change a setting in Irssi be sure to /save so it writes to the config file.
First you'll want to set your nick, username, and real name:
/set nick somenick
/set user_name someuser
/set real_name Bob User
If you want to hilight your nick whenever someone mentions it (where 'nick' is your nick):
/hilight nick
Irssi has a network 'alias' that is used to connect to servers. You specify servers that fit under a certain network and then you connect to that network. To add a network and then autojoin it sending your ident password, do as follows (where 'freenode' is your network and 'yourpassword' is your ident password):
/network add -autosendcmd "/^msg nickserv ident yourpassword;wait -freenode 2000" freenode
/server add -auto -network freenode irc.freenode.net 6667
If you are using Irssi 0.8.9 (20031210) the commands are a bit different:
/ircnet add -autosendcmd "/^msg nickserv ident yourpassword;wait -freenode 2000" freenode
/server add -auto -ircnet freenode irc.freenode.net 6667
Now you will be auto connecting to freenode on start. Next, set some auto connecting channels (where '#channel' is your channel and 'freenode' is your network):
/channel add -auto #channel freenode
When you first start Irssi, you see a blank window. Type /connect freenode (if you're not autojoining) to connect to your server. (replace freenode with your server). Then /join #channel When you're in multiple channels, you can switch back and forth by pressing ctrl+n/ctrl+p or, Irssi assigns a number to each channel when you join. You can simply hit (not hold) esc, then the number that corresponds with your channel. It feels a bit odd at first, but once you master it it's really an effective method.
UTF-8
In Irssi 0.8.10-rc5 (20041018) there are three settings to enable utf-8:
/set recode_fallback utf-8
/set recode_out_default_charset utf-8
/set term_charset utf-8
In Irssi 0.8.9 (20031210) the setting is just:
/set term_type utf-8
A restart of Irssi is required and then if you're using screen (you know if you are), you need to screen -U to enable utf-8. Also be sure your terminal program is supporting utf-8.

Window management

As stated above, switching windows in Irssi takes a while to feel second nature. As you become more comfortable with it and more of a power user, you may wish to explore Irssi's powerful window management. You can have split windows in Irssi showing a channel on top, and a channel on bottom, or even multiple channels. Windows are manipulated with the /window command. Split and sticky windows take a lot of experience to get used to, but they can be very rewarding. Here are a few examples of various ways to view your channels:
First you have your normal view, with just one channel. Normal window The next view is split 2 ways. The bottom channel is sticky, meaning it always stays as that channel. The top one is the one that changes when you change channels with the commands. Split window And then finally we have the 3 way split. This is useful for monitoring a few channels and not hindering your normal channel usage up top. As with the 2 split, the bottom two windows are sticky and only the top window changes. 3 split window Again, split windows take a lot of getting used to, but they can be very powerful. In Irssi, type /help window and explore the possibilities. Also, listed below in the alias section, I have some quick aliases for creating my 2 split and 3 split windows. see: unstick, normal, 2split, and 3split.

Themes

As you saw above, Irssi can be themed with various colors and styles. The default theme is fine, but I prefer the red color and my own styling, so I made my own. There are hundreds of themes available for you can try. Or feel free to download my theme.

Aliases

One of the awesome features of Irssi is the ability to create aliases. Any command, phrase, or stream of commands can be aliased and executed quickly. The format is: /alias alias_name command Aliases can have multiple commands in the format: /alias alias_name command1;command2;command3 Following are some very useful aliases that save me time and effort every day.

-creates a split with window 9 in the bottom and a 22 line window 3 on top.
/alias twosplit window 9;window show 3;window size 22;window 9;window stick
-creates a 10 line window 9 on bottom, window 8 in middle, and a 22 line window 3 on top.
/alias threesplit window 9;window show 8;window 9;window size 10;window 8;window show 3;window size 22;window 8;window stick;window 9;window stick
-unsticks all windows.
/alias unstick window goto 1;window stick off;window goto 2;window stick off;window goto 3;window stick off;window goto 4;window stick off;window goto 5;window stick off;window goto 6;window stick off;window goto 7;window stick off;window goto 8;window stick off;window goto 9;window stick off;window goto 10;window stick off;window goto 11;window stick off;window goto 12;window stick off;window goto 13;window stick off
-requires 'unstick' alias; returns all splits to normal.
/alias normal unstick;window hide;window hide
-messages chanserv for op in current channel.
/alias cs msg chanserv op $C
-requires 'figlet' binary; prints message in 'slant' font to window.
/alias figlet exec - -o figlet -f slant $0-
-requires 'fortune' binary; prints fortune to window.
/alias fortune exec - -o fortune -s
-prints a link for google search to channel. Format: /google var1+var2
/alias google say http://www.google.com/search?hl=en&q=$0&btnG=Google+Search
-simple ease of typing alias.
/alias hide window hide
-prints message to the channels in the alias. Format: /msgall hey what's up?
/alias msgall msg #adium $0-;msg #xfactor $0-;msg #selcouth $0-
-requires 'timer.pl' script; creates a timed +q and prints message to channel. format: /qt <time in seconds> <nick> (credit to Hanji)
/alias qt mode +q $1;say $1: you've been silenced for $0 seconds;timer add uq$1 $0 1 /mode -q $1
-prints date into channel.
/alias thedate exec - -o date
-prints a link for an urbandictionary search to window. Format /urban var1
/alias urban say http://www.urbandictionary.com/define.php?term=$0
-notices ops in current channel
/alias onotice notice @$C $0-
-ops you in current channel (if you have access)
/alias opme ^msg chanserv op $C
-starts a query within the current window with chanserv
/alias mcs wquery chanserv $0-
-starts a query within the current window with nickserv
/alias mns wquery nickserv $0-
-changes channels 11-20 to dvorak key bindings
/alias dvorak bind -delete meta-q;bind -delete meta-w;bind -delete meta-e;bind -delete meta-r;bind -delete meta-t;bind -delete meta-y;bind -delete meta-u;bind -delete meta-i;bind -delete meta-o;bind -delete meta-p;bind -delete meta-f;bind meta-' change_window 11;bind meta-, change_window 12;bind meta-. change_window 13;bind meta-p change_window 14;bind meta-y change_window 15;bind meta-f change_window 16;bind meta-g change_window 17;bind meta-c change_window 18;bind meta-r change_window 19;bind meta-l change_window 20
-changes channels 11-20 [back] to qwerty key bindings
/alias qwerty bind -delete meta-';bind -delete meta-,;bind -delete meta-.;bind -delete meta-p;bind -delete meta-y;bind -delete meta-f;bind -delete meta-g;bind -delete meta-c;bind -delete meta-r;bind -delete meta-l;bind meta-q change_window 11;bind meta-w change_window 12;bind meta-e change_window 13;bind meta-r change_window 14;bind meta-t change_window 15;bind meta-y change_window 16;bind meta-u change_window 17;bind meta-i change_window 18;bind meta-o change_window 19;bind meta-p change_window 20
-this alias is very dirty, but does the job well. With the use of /gone <some message> you can set yourself as away and any time someone mentions your nick (or messages you privately) on a new line with :, >, -, !, or , you will auto respond and message them your "away message". This will need a bit of tweaking as I have it set for 'selcouth' and 'sel'. Please note that you need the triggers.pl script and if you have any other triggers the /back command might delete the wrong trigger. Correct as needed. (all one line)
/alias gone trigger add -all -modifiers 'i' -regexp '^(selcouth|sel)[-:>,!]' -command "msg \$N away: $0-";trigger add -privmsgs -modifiers 'i' -regexp '^' 
-command "msg \$N away: $0-";away $0-
/alias back trigger del 1;trigger del 1;away

Scripts

Another wonderful feature of Irssi is its scripting power. Perl scripts can do tons of things in Irssi. Scripts are placed in ~/.irssi/scripts and can be loaded by /script load scriptname or can be placed in your ~/.irssi/scripts/autorun folder and will load on start. Some have help built in, others don't. Usually they take the format /scriptname to invoke. Following are a few that I use regularly.

http://scripts.irssi.org/scripts/autorejoin.pl - allows you to auto-rejoin a channel after being kicked. Really not a good idea in most channels but ok in some if you're just playing around.

http://scripts.irssi.org/scripts/hilightwin.pl - creates a 'highlight window' on startup. This window will take all new /msgs to you and from you, rather than creating a new window for each query with each user.

http://scripts.irssi.org/scripts/trigger.pl - useful for setting triggers for reactions. You can auto kick everytime someone says 'foo' for example.

http://scripts.irssi.org/scripts/openurl.pl - allows quick access to url's via /openurl # as they are printed to channel.

http://scripts.irssi.org/scripts/usercount.pl - adds a usercount to your statusbar. Also shows voices, ops, halfops, and normal users.

http://scripts.irssi.org/scripts/special_complete.pl - creates variables for special tab completion. If you type $topic <tab> in a channel, the topic will be auto-completed. very handy.

http://scripts.irssi.org/scripts/chanpeak.pl - keeps a record of channel peak users for each channel.

http://scripts.irssi.org/scripts/clones.pl - shows multiple masks in a channel.

http://scripts.irssi.org/scripts/bantime.pl - exactly like /bans, only this shows time in a more friendly format than seconds.

http://scripts.irssi.org/scripts/timer.pl - required for /qt alias, allows for timed operations.

http://scripts.irssi.org/scripts/scriptassist.pl - manages scripts from irssi.org and can update all of your scripts, download updates, search for new scripts, etc. Very useful.

http://scripts.irssi.org/scripts/act.pl - clears action in all channels in the statusbar simply by /act

http://scripts.irssi.org/scripts/ignore_log.pl - creates a log of all messages received from /ignore'd nicks

http://scripts.irssi.org/scripts/ignoreoc.pl - ignores any nick that msgs you that is not in a channel with you. Gives them the option to send a prefix to message you, and adds them to a clear list when you msg back.

http://scripts.irssi.org/scripts/kicks.pl - adds humerous lines or whatever you want when you kick or ban someone rather than just using your nick as the reason. Create a ~/.irssi/kickreasons.default and then a ~/.irssi/kicks.conf Configure them as follows:

kickreasons.default
####
go away.
i don't like you.
you're bothering me
(one message on each line, as many as you like)
####
kicks.conf
####
foo "kickreasons.foo"
default ~/.irssi/kickreasons.default
fortune `fortune -n 75 -s`
####
Format is then /k -foo <nick> (which will kick with a reason from the kickreasons.foo file) or /k -fortune <nick> (which will kick with a fortune -n 75 -s as reason) or /k <nick> (which will use a reason from the kickreasons.default file)
Irssi is a great IRC client and with a little bit of tweaking and learning it can be very powerful. Join #irssi on freenode or check out http://irssi.org for more info.
Last edited Monday, 11/07/05 at 2206:24