IRSSI

Configuration

Main configuration file: ~/.irssi/config.

The file is structured in a couple of sections:

  • servers
  • chatnets
  • channels
  • aliases
  • statusbar
  • settings
  • logs
  • ...

If you normally connect to freenode you need to modify the subsection of freenode in the section "servers". If you prefer different IRC network - there you go:

servers = (
  {
  address = "irc.freenode.net";
  chatnet = "freenode";
  port = "6697";
  password = "******";
  use_ssl = "yes";
  ssl_verify = "yes";
  ssl_capath = "/etc/ssl/certs";
  autoconnect = "yes";
  }
);

In the settings-section you can specify the username, nick, real name and whatever you want:

settings = {
  core = {
    real_name = "Your Name";
    user_name = "username";
    nick = "Your Nick";
    timestamp_format = "%H:%M:%S";
  };
};

These settings are the same for all servers. That is why you specified the password in the server-section.

Now you only have to specify which channels to open on which server. Modify the section channels accordingly:

channels = (
{ name = "#irssi"; chatnet = "ircnet"; autojoin = "No"; },
{ name = "#silc"; chatnet = "silc"; autojoin = "No"; },
{ name = "#mat"; chatnet = "freenode"; autojoin = "Yes"; },
{ name = "#drikke"; chatnet = "freenode"; autojoin = "Yes"; },
{
  name = "#channel3";
  chatnet = "freenode";
  autojoin = "Yes";
}
);

The first two channels "#irssi" and "#silc" are configured not to be joined automatically (autojoin = "No"). The channels "#mat" and "#drikke" will be joined automatically (autojoin = "Yes") when connecting to the server freenode (chatnet = "freenode"). This is the reference I was talking about before. When connecting to the server with the parameter chatnet = "freenode" the channels including this parameter will be automatically joined as well.

So what happens when you start irssi?

  1. irssi reads the user config file in ~/.irssi/config.
  2. It opens a connection to all servers specified in the section "servers" with the parameter autojoin = "Yes".
  3. The credentials and the identity from the section "settings" and the server specific password from the section "servers" are used for authentication (if necessary).
  4. irssi joins all the channels on the server specified in the section "channels".

This is just very basic automation, but I gained a new level of comfort from it, since  I just start irssi and it just puts me where where I left.

Logging

A very basic thing to do. You are at the end of a chat session and you wonder if you can save the whole conversation, it could be for semantic reasons or  for picking out some links that were mentioned during a conversation. So here you go:

/window log on
/lastlog [-force]

The parameter -force is necessary if your log is already  bigger than 1000 lines. After enabling the logging the output will be constantly added to the log-file in your home folder until you leave the channel or disable the logging.

This will create a log file of the current chat window in your home folder. The naming is not unique, so every time you run these commands again in the same window, irssi will overwrite the file.

Sound

Download the Perl-Script _beep_beep.pl_ and integrate it into irssi.

cd $HOME/.irssi/scripts
wget http://scripts.irssi.org/scripts/beep_beep.pl
wget http://www.andrews-corner.org/tmp/ding_dong.wav
mkdir $HOME/.irssi/scripts/autorun
cd $HOME/.irssi/scripts/autorun
ln -s ../beep_beep.pl

Now install e.g. sox :

sudo apt-get install sox

Open up irssi and run the following:

irssi> /set bell_beeps
irssi> /set beep_msg_level MSGS DCC DCCMSGS HILIGHT NOTICES
irssi> /set beep_cmd play -q ~/.irssi/scripts/ding_dong.wav &
irssi> /save

Trolls

irssi> /IG <Nickname>  # or /IGNORE <Nickname>
irssi> /Save

Scripts

Word replacement

Requirements:

  1. Correct my stupid typos.
  2. Give me the possibility to make abbreviations.

IsaacG has already written it and put it on Github.

The script [word-replacement.pl](https://github.com/IsaacG/irssi-word-replace/blob/master/word-replace.pl) does basically two things:

  1. Read the list of word it is supposed to correct.
  2. Replace those words with others when the message is sent.

  3. Drop the file word-replace.pl into ~/.irrsi/scripts and the file pxdict.ini into ~/.irssi.

  4. Load the script from within irssi: with
irssi> irssi> /load word-replace.pl

If you want to make any changes to the dictionary file pxdict.ini you need to reload the script file again.

URL

Requirements:

  1. Make urls send in chats accessible.
  2. Open urls on request in an external browser.

A script from afh does this already.

  1. Drop the file openurl.pl in ~/.irssi/scripts or ~/.irssi/scripts/autorun.
  2. Load the script (if not placed in autorun manually: /load openurl.pl.
  3. Set the external browser in ~/.irssi/config, in settings,perl/core/scripts
"perl/core/scripts" = {
  openurl_app_hattp = "/usr/bin/firefox -new-tab $1";
};
  1. Reload the config with /reload

You can access openurl like this:

/openurl

Listed urls can be opened by adding the url number to it:

/openurl x

Interfaces

Have a look at bitlbee to connect irssi to other systems, like jabber, msn, twitter, etc.