Skip to content
irssi remote status plugin
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
cli_local_client.py
irssi_hilight.png
irssi_message.png
irssi_none.png
relay.py
rstatus.py
rstatus_notify.py
test_rstatus.py

README.md

irssi rstatus

Licensing

irssi_rstatus is Copyright (C) 2011 Daniel Richman

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

For a full copy of the GNU General Public License, see http://www.gnu.org/licenses/.


irssi_none.png, irssi_message.png, irssi_hilight.png aree derived from the banner image http://irssi.org/images/irssitop.png from http://irssi.org/. That file is Copyright (C) 2000-2011 The Irssi project.

Building and installing irssi-python

The guide at http://sector-5.net/archives/irssi-python-for-irssi-0-8-15/ works, with two modifications to patch memory leaks (channel-object.c, query-object.c).

I've included a patched tarball of the source in github to make it easier.

Download irssi-python, irssi (for the headers). You'll need the python headers available; these will be available in your distribution's package management.

Execute these commands on the server that will be running irssi.

$ sudo aptitude install python-dev libglib2.0-dev
$ mkdir irssi-python-build
$ cd irssi-python-build
$ wget https://github.com/downloads/danielrichman/irssi_rstatus/irssi-python-ac.tar.gz
$ wget http://irssi.org/files/irssi-0.8.15.tar.gz
$ tar xvf irssi-python-ac.tar.gz
$ tar xvf irssi-0.8.15.tar.gz
$ cd irssi-python
$ ./configure --with-irssi=../irssi-0.8.15
$ make -C src constants
$ make

libpython.so will then be at src/.libs/libpython.so

It is then trivial to install irssi-python for your user (i.e., not system wide) like so:

$ mkdir -p ~/.irssi/modules ~/.irssi/scripts/autorun
$ cp src/.libs/libpython.so ~/.irssi/modules/
$ strip ~/.irssi/modules/libpython.so
$ echo "load python" >> ~/.irssi/startup
$ cp src/irssi.py src/irssi_startup.py ~/.irssi/scripts

Finally, add the irssi_rstatus plugin...

$ cd ..
$ sudo aptitude install git-core
$ git clone git://github.com/danielrichman/irssi_rstatus.git
$ cp irssi_rstatus/rstatus.py ~/.irssi/scripts/autorun/

And clean up:

$ cd ..
$ rm -Rf irssi-python-build

Installing the client (Ubuntu)

The client is experimental/beta. Configuring it is a little ugly at the moment. Don't worry, I'll make it nicer in the future; but if you want it now:

To install:

$ git clone git://github.com/danielrichman/irssi_rstatus.git

Dependencies:

$ sudo aptitude install python-gtk2 python-notify

Configuration:

$ gedit irssi_rstatus/rstatus_notify.py

Scroll to the bottom, and look for:

config = {
    "connect_command": ("ssh", server, "socat", "-T", "700",
                        "unix-client:.irssi/rstatus_sock",
                        "stdin!!stdout"),
    "icons_dir": os.path.realpath(os.path.dirname(__file__))
}

You need to edit connect_command so that when that command is executed, irssi_rstatus.py will be connected on standard in and standard out to ~/.irssi/rstatus_sock on the server running irssi. To do this, I'm using socat installed on the server, and I've got a ssh public key and my ssh config setup so that when I type ssh my_server, it connects to my account at my_server.

And now, to run it:

$ python irssi_rstatus/rstatus_notify.py my_server

You can put the irssi_rstatus folder somewhere where it won't bother you and add python irssi_rstatus/rstatus_notify.py to execute on startup.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.