I have been a highly screen + irssi user for some years running on my server and then, just sshing to it. Apart from the high latency on typing you can get when your connection begins to lag, everything fulfil my need.

However, last week, pitti told me that he was using a wonderful feature which is called "smart filtering". If you are a long time IRC user and particularly if you go to crowded channels, you know how seeing all this join/part messages can be annoying. Of course, most of IRC clients can hide all join/part/quit/away messages on selected channels.

But smart filtering brings the concept a little bit further: you can tell "show me /quit /join only if the user was speaking on the channel in the last xxx minutes". Great to not speak into the wild when you're not always looking at your channel user list every minute! Unfortunately, it seems there is no such extension for irssi. As writing a plugin in perl is not my taste, I moved to weechat where this feature has been implemented. It was the right time to try as well bip (an IRC proxy).

bip gaves me some hard time because intrepid[1] version is buggy: it preprends backlogs with - (and xchat doesn't highlight the channel if a message begins with "-") and adds "+" to other messages. Well, updating it just fix it, but it took some time to figure out (xchat was hiding those - et +).

Once done, I tried weechat, which seems to be a very great IRC client in a modular architecture. No more latency in typing things as the client is now local and connecting to my bip proxy. The only annoying part is that I'm connected to 4 different IRC networks (and consequently, 4 bip networks) and buffers[2] aren't properly ordered after restarting it. I have to run /layout apply 3 times to get the correct ordering at each start :( This is a known bug.

Then, I installed the notification script. The annoying bit for me was that I got spammed with too many notifications:

  • you are notified everytime someone highlight you in a channel (seems logical for a notification script)
  • you are notified at each private message someone sent you!

And there is where the nightmare begin: if you begin with a long private conversation to someone, you'll get spammed for endless time (especially when notification are shown for 10 secondes at each message!). To fix that, I've just hack quickly on notify.py script (yes, it's in python) to add a smart_notification option (off by default).

If you run: /set plugins.var.python.notify.smart_notification on then smart notification is activated. That means that you won't get notified if someone is either highlighting you in the current channel you have a buffer opened to, or in your current private conversation. That means, logically, you won't get notification if you're looking at the channel you are currently looking at. You'll only see the red/yellow/whatever color line weechat highlight your text. Of course, if your are highlighted not in your current buffer (someone is beginning a private conversation you didn't switch to), you'll still be notified. The idea is only to warn you if you have something that needs to get your attention you're not currently looking at right now, sweet isn't? :)

The new version (0.0.4) is sent upstream, if it won't get it before lucid, I'll upload it to Ubuntu to get it there.

You can find this new version there: notify.py

Notes

[1] yes, my server runs intrepid, I'll reinstall a clean architecture when lucid will be released

[2] name of channel or private window screen