irssi

irssi is probably the most popular IRC client out there. An alternative for the commandline is weechat but I like irssi better. Of course many people also use GUI clients like hexchat, Konversation, Polari or Textual for OSX. Some people prefer multi protocol messengers like Kopete or pidgin, with finch as the console aquivalent. For IRC my favourite is still irssi.

my irssi setup

The best way to get an overview of irssi is to read the Startup Howto followed by the complete manual.

Configuration

Basically there are two ways to configure irssi. By either doing in in irssi directly, for which you have to learn the commands mentioned briefly in the Startup Howto and thouroughly in the manual, or by editing the configuration file ~/.irssi/config. For some reason I prefer the latter. When I started out with irssi there was no overview available, but when I looked around when I started writingt his post I found this nice overview. Which mentions the commands you have to type in irssi and tells you about what will be written in the config file for this command.

Actually way back in 2012 I wrote a script called inircosc which is an abbreviation for interactive irssi configuration script.

inircosc

As expected you have to clone the git repo and then run the script. This is described in the readme.

$: git clone https://github.com/jubalh/inircosc
$: cd inircosc
$: bash inircosc.sh

--------------------
Server settings
Enter new server (e.g. irc.freenode.net): irc.freenode.net
Enter chatnet for this server:(e.g. freenode) freenode
Port (default: 6667): 6667
Autoconnect to this server? (default: yes): yes
Use SSL? (default: no): no
Enter nick: peterpan
Password (default: none):
Nickserv password (default: none): lilly
Enter new server (e.g. irc.freenode.net):

--------------------
Channel settings
Enter new channel (e.g. #mychan): #wonderland
Enter chatnet on which the channel exists (e.g. freenode): freenode
Autojoin this channel (default: yes): yes
Enter new channel (e.g. #mychan):

--------------------
Miscellaneous settings
Enter real name: Peter Pan
Enter username: peterp
Enter default nickname: peterpan
Enable logging (default: no): no
Do you want to add some standard aliases (default no): yes

As you saw the script will prompt you some things and you just answer time. Truthfully! You can add mutliple networks/channels, but if you just press enter, like I did in the example above it will continue with the next question. If you already have a configuration file the script will move it to config.old.

For some people this might be the easiest/fastest way to configure irssi. If you find any bugs or have suggestions or improvements, just create an issue on GitHub.

Scripts

There exist quite a few scripts for irssi which can be found at scripts.irssi.org. Generally you have to put them into ~/.irssi/scripts or ~/.irssi/scripts/autorun and run them with /run scriptname.

My favourite ones are:

In the inircosc repository there is another script called get_scripts.sh, this will download all of the mentioned scripts and put them in irssi’s autorun directory so they will enabled when irssi is started.

So after you set up your, and mine, favourite IRC client using inircosc, run bash ./get_scripts.sh to have a really nice irssi experience.

adv_windowlist.pl

Read the header of the script to learn more about it.

If you run irssi inside tmux you can create a new pane and run perl ~/.irssi/scripts/autorun/adv_windowlist.pl to have the info displayed in a seperate space. You can switch from the sbar to tmux mode by using /toggle awl_viewer. To get rid of the window statusbar that comes with irssi type /statusbar window visible inactive or goot for window in the configuration file and set visible = "active"; to inactive.

Using /statusbar you can get information about the statusbar in general and /statusbar window will give you more information on the specific item. Look at the name column to see what else exists.

And if you don’t want to see the extra window for the network you can do /format -delete awl_display_header. Quite important to me to have more space!

nicklist

In another tmux pane run the following to get information how much space you got in it and then start displaying the fifo which the script will create.

stty size
cat ~/.irssi/nicklistfifo

hilightwin.pl

So if you see you got a hilight at, let’s say 12:34 then just switch into the window of that channel and type /scrollback goto 12:34 to jumpt to that time. In irssi we now configure the script and let it write to fifo:

/set nicklist_height FIRST_STTY_VALUE
/set nicklist_width SECOND_STTY_VALUE
/nicklist fifo

Unfortunately I don’t know a way to remove the hiligh window from the list of windows, not even with adv_windowlist.pl but we can hide it as much as possible using:

/window number 999
/set activity_hide_targets hilight

# smartfiler.pl # If you just want to ignore all joins no matter what you don't need this plugin, rather do: `/ignore -channels #roomA,#roomB * JOINS PARTS QUITS NICKS`.

Themes

There exist a lot of themes for irssi at their site. get_scripts.sh will also get you my favourites. Don’t forget that the actual looks of your setup heavily depends on how you configured your terminal!

More

When starting out with irssi I sometimes ended up with empty windows which was quite annoying and weird. Eventually I found out how they came into existence:

The empty window is created either by saving a window layout and not having the channel that should be in that position saved with the -auto flag. Because the window is a placeholder until you join the channel you earlier implied would go there. Or it could be created by sending a /msg to someone.

What’s also important is to type /save when you changed your configuration or layout!

Feel free to fork inircosc and adapt it to your needs!

People who prefer an even more ready to go configuration should check out weed.

There is a lot more to configure and play around with. And quite a few scripts are out there. Some people might enjoy IrssiNotifier+ which sends notifications not to your screen but to your phone instead!

irssinotifier

http://wiki.shellium.org/w/Irssi