Get GNOME 3 popup alerts for IRC

IRC is a great medium but chats are often intermittent and it’s easy to miss messages if your focus is elsewhere. Lately I’ve been using Irssi which is extendible with Perl and I wrote a quick script to create a desktop popup alert any time my IRC username is mentioned in chat, or I receive a private message.

Requirements

Warning, this script has a lot of dependencies. To use it, you’ll need to be running GNOME 3, have Irssi and install Gtk3::Notify. There is an open issue on the Gtk3::Notify tests, so you’ll have to force install it at the command line:

$ cpan -fi Gtk3::Notify

Gtk3::Notify has several C library dependencies, so you’ll need to install those too - your Linux distro’s package manager should have them.

Installation

Unless you’re running any scripts with Irssi already, you’ll need to create a scripts directory, and download gnotify.pl:

$ mkdir ~/.irssi/scripts
$ cd ~/.irssi/scripts
$ curl -O https://raw.githubusercontent.com/dnmfarrell/irssi/master/gnotify.pl

To have Irssi to autoload the script, create an “autorun” subdirectory with a symlink back to the script:

$ mkdir ~/.irssi/scripts/autorun
$ cd ~/.irssi/scripts/autorun
$ ln -s ../gnotify.pl

Test the script

To make sure gnotify.pl is working, start Irssi and try sending a private message to yourself from within Irssi:

/msg username hey this is a test message

Just replace username with your own IRC username, for me it looks like this:

At the bottom of the screen you can see the popup alert.

Conclusion

Apart from desktop alerts, there are myriad ways to send IRC alerts: sounds, email and sms. A more sophisticated solution would be to write a script that uses a cloud-based notification service that could then transmit the alerts across all of these channels to the end user.

What types of IRC alerts do you use? Let us know on Reddit.


This article was originally posted on PerlTricks.com.

Tags

David Farrell

David is a professional programmer who regularly tweets and blogs about code and the art of programming.

Browse their articles

Feedback

Something wrong with this article? Help us out by opening an issue or pull request on GitHub