Unfinished Sofware's Blog
Irssi Proxy Notification LogoThis a post to announce the first release of Irssi (Real Time Visual) Notification.

Based on the famous fnotify.pl which requires kind of a hack to work, ie, write messages to a temporary file, blah, blah, if you know fnotify.pl you know what I’m talking about.

This idea is based on this blog post, which itself is based on another post.

The idea is the same(regarding the first post link I provided), remote visual notification of private messages, messages sent to you and messages where you’re addressed. The only significant difference is that is a real time notification! Ok, ok, it will only pop after 0.5 second.

To make this possible you need the irssi proxy to be configured(find out how here), the libnotify library and it’s python bindings, the python irclib library, python and optionally, if you’re behind a restrictive proxy like for example squid, an ssh client capable of port forwarding, more on this later on.

First, a screenshot of what this baby does:

An Example of what Irssi Notification Does

Ok, now let’s go deep into installing a configuring this baby. Install instructions will be based on Kubuntu, my laptop’s distro, but they should work for any Debian based distro.Let’s install the needed dependencies:

apt-get install libnotify1 python-notify python-gtk2 python-setuptools \
python-irclib notification-daemon

Once the above is finished, you can use setuptools easy_install tool to install Irssi Notifier, so let’s install it:

easy_install IrssiNotifier

The above command will install Irssi Notifier into python’s site-packages and the irssi-notifier binary into /usr/bin/.

Now, until you get your configuration settings right and Irssi Notifier does not throw you an error do, in case you’ve setup irssi proxy to listen on domain example.tld, port 55555 with the the proxy password Bar for the nick Foo:

irssi-notifier -P example.tld:55555:Foo -p BAR

If the above did not throw error(it shouldn’t) then you can write the configuration to file(defaults to ~/.irssinotification):

irssi-notifier -P example.tld:55555:Foo -p BAR -W

Now, next time you want to launch Irssi Notifier, you just have to issue:

irssi-notifier

Now, some explanation to what gets written to the configuration file plus some other available configuration options:

[main]
passwd = BAR
proxies = example.tld:55555:FOO
timeout = 5
friends = foobar barfoo
  • nick - The common nick used in all defined proxies
  • passwd - The irssi proxy password
  • proxies - A space seperated list of irssi proxies to listen to composed of <address>:<port> or <address>:<port>:<nick>. If you choose the first way to define the proxy you must also provide the nick configuration variable, that’s the way we know messages are addressed to you.
  • timeout - Timeout in seconds for the pop-up notification to go away.
  • friends - A space seperated list of your friends nicks to be notified when they join, part, quit or change nicks.

That’s about what’s needed to run Irssi Notifier.

As a secondary subject for those that, like me, are behind a restrictive firewall and the only way out is through an http proxy(Squid), you still have an option, OpenSSH with connect-proxy.

Connect-Proxy is basically an OpenSSH extension to enable ssh connections through a proxy server. There’s info on how to use the connect-proxy on it’s own page, basicly, in my specific case, I need to connect to the http proxy and authentication is not required, so I changed my ~/.ssh/config and added:

ProxyCommand connect-proxy -H <proxy_host>:<proxy_port> %h %p

Now, for every ssh connection that command is executed, and that’s how I‘m able to ssh trough the http proxy. And for irssi notifier, basicly, I establish a tunnel for each irssi proxy connection defined, for example:

ssh -L 55555:localhost:55555 user@remote.tld

Back to your own usage, now you should instead point Irssi Notifier to localhost instead of the remote host.

irssi-notifier -P localhost:55555:Foo -p BAR

And that’s it, I hope you enjoy Irssi-Notification and feel free to comment on it.


23-05-2007:
Released a bugfix release, IrssiNotification 0.1.1:

  • Fixed a bug regarding private messages notification. Whitin a private conversation, even our own messages were beeing notified to us.

07-09-2007:
Corrected blog post on the missing dependency and wrong package name, thanks Markus.

 

Comments

  • And if im not ubuntu/debian user? where i can download it?

    Comment by cub — May 11, 2007 7:21:26 AM | # - re

  • If the qustion is just for Irssi Notification, then the easy_install command will work on all distro’s as long as setuptools is installed. Regarding the other packages, they are all probably on your distro’s packaging system but under diferent names, try searching for libnotify, notify + python, and gtk2 + python. If you still can’t find them:
    • Python - http://www.python.org/
    • PyGtk - http://www.pygtk.org/
    • Libnotify and python-notify - http://www.galago-project.org/
    • Setuptools - http://peak.telecommunity.com/DevCenter/setuptools / http://cheeseshop.python.org/pypi/setuptools
    Tell me if you still have problems or what distro and packages did you use so others can know too. Regards.

    Comment by s0undt3ch — May 11, 2007 11:35:35 AM | # - re

  • The package name is misspelled. It should be IrssiNotifier instead of IrssiNotification.

    Comment by Markus Vuori — Jun 7, 2007 10:06:50 AM | # - re

  • … plus the IIrssiNotifier package won’t install without python-irclib package (installable with apt-get).

    Comment by Markus Vuori — Jun 7, 2007 10:08:35 AM | # - re

  • Thanks Markus, blog edited to include your corrections.

    Comment by s0undt3ch — Jun 7, 2007 10:38:24 AM | # - re

  • Hi again, I’m sorry to report that IrssiNotifier crashes each time the message contains scandinavian (non-ascii) characters (like ö, or ä). Hopefully you can fix it soon, though I’m not sure whether this is irclib issue. :) Traceback is here: http://lite.geek.fi/irssinotifier/ My irssi uses and outputs utf-8 characters. Feel free to contact me via email if needed. – Markus

    Comment by Markus Vuori — Jun 7, 2007 12:53:43 PM | # - re

  • Markus, first of all sorry for the lond delay to answer. Seccond, I’m unable to see your traceback, but if irssi is using utf8, like mine is, it’s weird to get that problem. And to conclude, I’m going to test a patch submited by David Durrleman which adresses some uft8 issues and ads some more stuff to irssi notifier, this might also mean I should set up a development site just for irssi notifier. I’ll release another version as soon as I find some time for it. Regards, Pedro Algarvio.

    Comment by s0undt3ch — Jun 24, 2007 12:32:49 AM | # - re

  • I use irssi under screen over an ssh connection also, however I didn’t like the idea of port forwarding and all of the other messy solutions i’ve seen for doing this so I decided to implement it using the “local print” option available in most Terminals (i use XTerm) I’ve posted instructions and details http://jaredquinn.info/it-related/technical/unix/2007.09.25/libnotify-with-irssi-over-ssh/

    Comment by Jared Quinn — Sep 25, 2007 9:53:54 AM | # - re

  • You also need the package “libxss-dev”, or else the easy_install command will fail. (I got a bunch of errors in “xss/xss.c”, using Ubuntu Hardy)

    Comment by Daniel — May 16, 2008 5:15:27 PM | # - re

  • i cant get this to work. irssi says 20:16 -!- Irssi: Proxy: Client connected from ::ffff:127.0.0.1 and irssi-notifier says connection succesful but it doesnt say now listening…

    Comment by jamo — Aug 1, 2008 6:19:00 PM | # - re

  • I can’t seem to get any notifications, everything is running I have a message in irssi saying client connect to proxy and Irssi-notification pops up a message saying it’s connected. However, I then get nothing else, no private message notifications, no join\part messages, nothing.

    Comment by Bismark — Aug 25, 2008 4:47:47 PM | # - re

  • ubuntu maverick meerkat, error running easy_install.

    xss/xss.c:659: fatal error: X11/Xlib.h: No such file or directory compilation terminated. error: Setup script exited with error: command ‘gcc’ failed with exit status 1

    sure enough I have gcc and it is in path too.

    gcc

    gcc: no input files

    Comment by hemant — Jan 22, 2011 2:20:46 AM | # - re

  • comment on the webpage – too bright for my eyes, i switched off colors just to be able to have it easy on my eyes,

    Comment by hemant — Jan 22, 2011 2:22:05 AM | # - re

Leave a Reply