Epic und BitchX waren lange Zeit die Standard-IRC-Clients für die Konsole. Der ebenfalls konsolenbasierte Client irssi setzt nun mit vielen Features dazu an, die beiden “Oldies” abzulösen.
Viele Anwender mögen die teilweise recht eigentümlichen Bedienung von Epic, BitchX & Co. nicht – damit soll mit Timo Sirainens irssi Schluss sein. Neben intuitiver Bedienung bietet irssi viele weitere Features, die in diesem Artikel anhand der erst kürzlich veröffentlichten Version 0.8.1 gezeigt werden sollen.
Unterschiede
Wer irssi zum ersten Mal startet, wird sich auf den ersten Blick stark an die Oberfläche von BitchX erinnert fühlen – lediglich zwei Leisten zieren den Bildschirm, eine “Status-Leiste” am unteren Bildschirm-Rand und eine “Topic”-Leiste am oberen Bildschirmrand. Die dritte Leiste, die Sie beim allerersten Starten von irssi zum Lesen von http://irssi.org/beginner/ auffordert, werden Sie über “/STATUSBAR info DISABLE” los – ein Blick auf die URL kann aber natürlich nicht schaden.
Sobald man sich mit einem Server verbunden und die ersten Chat-Channels betreten hat, werden die bestehenden Unterschiede zwischen irssi und epic/BitchX deutlich erkennbar: Musste man bei BitchX die einzelnen “Fenster” für verschiedene Channels noch per Hand mittels “/window new” öffnen, erledigt irssi diese Aufgabe bereits beim Betreten eines Channels oder beim Öffnen einer Query von selbst.
Zwischen den verschiedenen Fenstern kann dann über die Befehle /window 1, 2 usw. oder über die Tastenkombinationen [Alt+1],[Alt+2] etc. hin und her geschaltet werden. Selbstverständlich kann diese Funktion auch (wie fast alles in irssi) je nach Wunsch des Benutzers abgeschaltet oder angepasst werden.
Bei der Entwicklung von irssi wurde vor allem auf eines geachtet: Die Benutzerführung sollte möglichst einfach und intuitiv sein, so wie man es von grafischen IRC-Clients wie X-Chat oder ksIRC gewohnt ist. Tatsächlich erweist sich irssi als benutzerfreundlich: Nach einer kurzen Gewöhnungsphase sind die wichtigsten Befehle und Tastenkombinationen verinnerlicht, und es bleibt genügend Zeit, um die Besonderheiten des IRC-Clients zu erkunden.
Features
Ein Feature unterscheidet irssi deutlich von Epic oder BitchX: Es verfügt über ein leistungsfähiges Modul, mit dem Perl-Skripte ausgeführt werden können. Damit kann man irssi um fast jede erdenkliche Funktion unkompliziert erweitern – Perl-Kenntnisse vorausgesetzt. Eine ausführliche Anleitung zum Schreiben von Perl-Skripten für irssi (leider nur auf Englisch) findet sich auf [2]. Viele fertige Perl-Skripte, die irssi nützlich erweitern, können von [3] heruntergeladen werden. Kopieren Sie solche Skripte in das Verzeichnis ~/.irssi/scripts und geben Sie dann den Befehl “/script load scriptname” ein, um eines zu starten.
Eine Funktion hat irssi von seinem Vorgänger BitchX übernommen: Auch hier lässt sich das äußere Erscheinungsbild durch die sogenannten Theme-Dateien verändern. Dadurch ist es für den Benutzer möglich, das Aussehen von irssi völlig an seine Wünsche und Bedürfnisse anzupassen. Viele fertige Themes befinden sich mitsamt Screenshots für eine Vorschau auf [4]. Die Farben lassen sich über “/set colors off” für alle, die es lieber traditionell “schwarz auf weiß” mögen, auch komplett abstellen.
irssi bietet noch viele weitere Features, deren Aufzählung den Rahmen dieses Artikels eindeutig sprengen würde. Neben der oben bereits erwähnten Schnittstelle für Perl-Skripte wäre da beispielsweise die Möglichkeit, regulären Ausdrücke beim Highlight/Ignore-Kommando zu benutzen.
Die /upgrade-Funktion ist ein besonderer Leckerbissen von irssi. Mit ihr ist es möglich, irssi “on-the-fly” zu aktualisieren, also ohne den Client selbst zu beenden und neustarten zu müssen und sogar ohne die Verbindung zum IRC-Server zu trennen.
Compiler-Optionen
Das funktioniert so: Wenn eine neue Version von irssi veröffentlicht wird und Sie diese installieren, müssen Sie darauf achten, dass Sie das neue irssi-Programm genau dorthin installieren, wo auch das alte installiert war. Wenn Sie RPM- oder DEB-Pakete benutzen, müssen Sie sich darum meisstens nicht kümmern, wenn Sie irssi jedoch aus dem Quelltext heraus übersetzen, müssen Sie beim ./configure-Schritt eventuell mit der –prefix=-Option nachhelfen.
Führen Sie dann im laufenden Betrieb in irssi das Kommando /upgrade ausführen, wird das neue irssi geladen, ohne dass Sie die Software dafür beenden und neu starten müssen. Das ganze hat jedoch auch einen Nachteil: Wird das /upgrade-Kommando ausgeführt, löscht irssi beim Neuladen die Inhalte sämtlicher Fenster.
Die eingebaute Unterstützung für Perl und ein kleines Skript schaffen hier aber Abhilfe: Von [3] kann buf.pl herunter geladen werden, welches nach ~/.irssi/scripts kopiert und dann mittels “/script load buf” in irssi geladen werden muss. Nach dem nächsten /upgrade stellt dieses Skript dann die Inhalte aller Fenster wieder auf den Zustand vor dem Upgrade zurück.
Dank Multi-Server-Support ist es möglich, mit einem einzigen Client auf mehreren IRC-Servern gleichzeitig zu chatten. Wer wollte da für ein leidiges Upgrade das Programm beenden.
Schnupperkurs
Sollten Sie Lust bekommen haben, sich irssi einmal genauer anzuschauen, können Sie sich den Client entweder im Quelltext oder in Form eines RPM- oder Debian-Paketes von der irssi-Download-Seite [1] herunterladen bzw. von der Heft-CD installieren. Da die RPM-Pakete momentan aber nur unter Red Hat getestet sind, ist Benutzern von SuSE oder Mandrake von der Benutzung dieser RPM-Pakete abzuraten. Auch Benutzer von Debian Linux 2.2 (Potato) sollten aufgrund mangelnder Aktualität der “Stable”-Distribution irssi aus dem Quelltext übersetzen. Die Quellen lassen sich mit dem bekannten Dreierschritt, bestehend aus ./configure, make und make install bequem kompilieren und installieren.
Interview mit Timo Sirainen, dem irssi-Autor
LinuxUser: Was war Dein Ziel, als Du anfingst, irssi zu programmieren?
Timo: Zuerst wollte ich mir einen kleinen IRC-Client mit einer schönen Benutzeroberfläche schreiben. Das änderte sich bald, als auch andere Leute anfingen, irssi zu benutzen. Heute ist das Ziel nur, den perfekten IRC-Client für jeden zu erschaffen :)
LinuxUser: Was sind die Vorteile von irssi gegenüber anderen IRC-Clients wie beispielsweise epic oder BitchX?
Timo: Der Code. Es ist sehr einfach, ihn zu erweitern, um viele neue Dinge zu unterstützen. Es war zum Beispiel nicht sehr schwierig, Unterstützung für das ICB- oder das SILC-Protokoll einzubauen. Dann gibt es Perl, was zwar viel Speicher frisst und noch nicht auf allen Plattformen verfügbar ist, was ich im Gegensatz zur ircII-Skriptsprache aber verstehe. Nach dem nächsten Rewrite hoffe ich, sagen zu können, dass es noch stabiler ist und dabei weniger Speicher verbraucht.
LinuxUser: Was sind irssis Pläne für die Zukunft?
Timo: Ein Rewrite. Die Trennung von der glib, weniger Speicherverbrauch, eine größere Stabilität (besonders beim Perl-Skripting), vielleicht eine kleine, interne Skriptsprache, mehr Features, die Trennung des IRC-spezifischen Codes vom Haupt-Code und allgemein die Verkleinerung meiner TODO-Liste.
LinuxUser: Wieviele Leute arbeiten momentan an irssi? Wie ist die Arbeit verteilt?
Timo: Nur ich. Manchmal bekomme ich Patches von anderen Leuten, aber das meiste kommt von mir.
LinuxUser: Welches Feedback hast du bis jetzt zu irssi bekommen? Sind die Leute glücklich damit?
Timo: Größtenteils ja. Manche loben es, manche mögen es. Natürlich gibt es auch einige Leute, denen es nicht gefällt, aber ich kann mich wirklich nicht daran erinnern, mehr als eine Handvoll gesehen zu haben.
LinuxUser: Wie können die Benutzer Dich bei deiner Arbeit unterstützen?
Timo: Sie können andere Leute dazu überreden, irssi auszuprobieren :)
LinuxUser: Wenn Du Dir irssi anschaust – was findest Du gut, was schlecht und was könnte besser sein?
Timo: Die größte Entscheidung bezüglich des Codes, die teilweise gut und teilweise schlecht ist, ist, dass irssi für nahezu nichts irgendwelchen hartkodierten Speicher verwendet. Es benutzt immer dynamisch zugewiesenen Speicher. Gut daran ist, dass es so kaum eine Möglichkeit für Buffer Overflows gibt; schlecht ist, dass es deswegen langsamer ist und mehr Speicher verbraucht. Das wird sich im Rewrite durch die Benutzung von Memory Pools ändern. Dann kommen die Features, die der Benutzer sehen kann: Die neue Statusleiste ist sehr gut, der Skripting-Support ist, bis auf die Tatsache, dass kaputte Skripte zu leicht crashen, auch sehr gut. Viele Dinge sind schon sehr gut aber könnten und werden besser werden.
LinuxUser: Was macht einen typischen irssi-Benutzer aus?
Timo: Ich denke nicht, dass es irgendwas Besonderes mit ihnen auf sich hat. Es gibt viele Benutzer, von denen ich gehört habe, die sich stark von den Leuten auf #irssi (dem irssi-Channel im IRCNet, Anm. d. Autors) unterscheiden.
LinuxUser: Danke für das Interview!
Glossar
-
Query
-
Als Query bezeichnet man im IRC eine Privatkonversation zwischen zwei Benutzern.





