Irssi

Aus Wikibooks

Dieses Buch steht im Regal EDV.

Diese Seite hat mittlerweile eine Größe erreicht, die es als geeignet erscheinen lässt, sie in mehrere einzelne Seiten zu zerlegen. In welche Teile diese Seite zerlegt werden könnte, kann auf der Diskussionsseite besprochen werden. Wie man es macht, steht im Wikibooks-Lehrbuch im Abschnitt Buch in Kapitel untergliedern.

Zusammenfassung des Projekts[Bearbeiten]

  • Buchpatenschaft / Ansprechperson: Zur Zeit niemand. Buch darf übernommen werden.
  • Sind Co-Autoren gegenwärtig erwünscht? Ja, sehr gerne.

Vorwort[Bearbeiten]

Irssi ist ein Konsolen-IRC-Client. Diese Anleitung soll in die Bedienung von irssi einführen, nicht in den Umgang mit IRC im allgemeinen. Es wird daher davon ausgegangen, dass der Leser bereits andere IRC-Clients genutzt hat, die Bedeutung bekannter Befehle wie "/join" kennt, mit der Benennung der Chaträume mit #Raum vertraut ist und dergleichen mehr.

Mit diesen Angaben ist Irssi geeignet, zum Beispiel den Chatroom der deutschen Wikibooks zu besuchen.

Installation & Start[Bearbeiten]

Irssi läuft unter allen gängigen Unices, unter Mac OS X sowie über Cygwin unter Microsoft Windows. Die stabile Version trägt derzeit die Versionsnummer 1.4.5. Dieser Artikel bezieht sich auf 0.8.9, sollte jedoch auch auf die aktuelle Version anwendbar sein, da die Unterschiede minimal sind. Hinweise zur installation gibt das entsprechende Kapitel im Linux-Praxisbuch.

Das Programm wird durch die Eingabe von irssi auf der Kommandozeile gestartet. Will man das ganze in ein Menü integrieren oder auf einen Shortcut legen, bedient man sich der "-e" Option seines Terminal-Emulators. Am Beispiel von aterm wäre der Befehl: aterm -e irssi. Im Abschnitt "Tipps und Tricks" wird zudem auf die sehr nützliche Kombination von screen und irssi eingegangen.

Allgemeines[Bearbeiten]

Irssi wird ausschließlich durch Eingabe von Kommandos gesteuert und konfiguriert. Dadurch ist eine konsistente Bedienung aller Funktionen und Einstellungen möglich. Hilfe zu den Befehlen bekommt man durch Eingabe von /HELP <BEFEHL>.

Das erste, was man nach dem Start von irssi sieht, ist das Status-Fenster. In diesem werden Meldungen der IRC-Server, Hilfe-Texte und ähnliches angezeigt. Wenn das Programm gestartet ist, kann man wie gewohnt mit den Befehlen /connect und /join zu einem Server verbinden und einen Raum betreten.

irssis Einstellungen lassen sich mit /set <einstellung> <wert> ändern. Eine komplette Liste aller verfügbarer Optionen erhält man, wenn man /set ohne Argumente eingibt. Um die Optionen zu einem bestimmten Stichwort anzusehen, kann /set <teildeswortes> verwendet werden (z.B. /set log). Die Liste zusammen mit einer deutschen Erklärung findet sich auch im Anhang. Solange die Option settings_autosave nicht aktiviert ist, muss man seine Einstellungen von Hand mit /save speichern.

Fenster[Bearbeiten]

Es wurde bereits auf das Status-Fenster hingewiesen, das automatisch beim Start von irssi gezeigt wird. Jedesmal wenn man einen Raum betritt oder ein Query öffnet, erstellt irssi automatisch ein neues Fenster. In der Statusleiste steht das aktuell aktive Fenster (z.B. [5:#linuxforen.de(+nt)]). Zwischen den Fenstern kann man auf verschiedene Arten hin- und her wechseln: Mit /window <Nummer> oder mit dem Tastenkürzel ALT+<Nummer> (bei mehr als 10 Fenstern geht es eine Reihe weiter unten mit dem 'q' weiter). Falls ALT+<Nummer> anders belegt ist, kann man auch ESC <Nummer> verwenden, wobei man beachten muss, dass man diese beiden Tasten nacheinander und nicht gleichzeitig drückt. Zum nächsten bzw. vorherigen Fenster geht's mit /window {left,right} oder ALT+Pfeiltaste {links,rechts}.

Man kann auch mehrere Fenster gleichzeitig anzeigen ("splitting" genannt, weil der vorhandene Platz aufgeteilt wird). Dazu ist der WINDOW SHOW Befehl zuständig. Wenn man Beispielsweise im Fenster 2 ist und auch das vierte angezeigt bekommen will, gibt man folgenden Befehl ein:

/window show 4

Man kann das mit mehreren Fenstern machen. Die Größe der Fenster kann man mit WINDOW GROW und WINDOW SHRINK beeinflußen. Sollen alle gleich viel Platz bekommen, nutzt man WINDOW BALANCE. Das wechseln zwischen den Fenstern funktioniert wie bisher - wechselt man in ein nicht sichtbares Fenster, wird dieses anstelle des gerade aktiven Fensters angezeigt. mit WINDOW HIDE kann man die Trennung wieder aufheben. Mit /LAYOUT SAVE kann man seine Einstellungen nun speichern. Beim nächsten Start sollten dann die Fenster wieder so angeordnet sein wie vorher.

Netze, Server und Channels verwalten[Bearbeiten]

Netze, Server und Channels verwaltet man unter irssi mit den Kommandos ircnet, server und channel.

Um ein neues Netzwerk hinzuzufügen, nutzt man zunächst den ircnet-Befehl:

/network add <Name>

(Ab Version 0.8.10 ist /ircnet durch /network ersetzt (irssi-ChangeLog for 0.8.10)) Es ist möglich, für einzelne Netzwerke Standardeinstellungen wie den Nickname zu ändern (siehe /help network).

Nun kann man dem neuen Netzwerk einen Server hinzufügen:

/server add -network <Netzwerk> <Adresse> [<Port>] 

Interessante Optionen sind -auto (autologin beim irssi-start) und -ssl.

Für einzelne Netzwerke kann man auch seine Lieblings-Räume eintragen, um diese automatisch zu betreten:

/channel add -auto <Raum> <Netzwerk> [<Passwort>]

Es gibt keinen extra Befehl zum Ändern. Hat man etwas falsch gemacht, korrigiert man einfach den ADD-Befehl. Solange der jeweilige Name nicht geändert wurde, wird dann automatisch eine Änderung durchgeführt - ansonsten muss der alte Eintrag mit /befehl REMOVE <Name> gelöscht werden.

Themes[Bearbeiten]

Eine große Auswahl an themes steht auf der Irssi-Homepage bereit. Die .theme-Dateien werden nach ~/.irssi/ gespeichert und mit /set theme <name> geladen.

Completion[Bearbeiten]

Wie viele Shells unterstützt irssi eine sehr hilfreiche Completion-Funktion, die Befehle, Einstellungen, Nicknames und Pfade im Dateisystem vervollständigen kann. Wenn man also z.B. /he<TAB> drückt, wird der Befehl automatisch auf /help erweitert. Gibt es mehrere Möglichkeiten, kann man diese durch erneutes drücken von TAB erreichen.

Mit dem completion-Befehl kann das sogar erweitert werden:

/completion lol Das ist ja lustig!

Dieser Befehl bewirkt, dass nach der eingabe von "lol<TAB>" das lol durch "Das ist ja lustig!" ersetzt wird.

Mit Auto-Completions kann man zudem seine Lieblingstippfehler beseitigen lassen:

/completion -auto Standart Standard

Das ganze ist übrigens nicht case-sensitive, das heißt, es wird sowohl der standart als auch der Standart korrigiert (aber immer zum Standard, nicht zum standard).

Alias-Befehl[Bearbeiten]

Alias-Befehle sind nützlich, um häufig benutzte Befehle abzukürzen. Ein bekannter Alias, der auch zur Standard-Konfiguration von irssi gehört, ist /J, welches ein alias auf /JOIN ist. Um sich alle eingerichteten Aliase anzeigen zu lassen, benutzt man den "/alias" Befehl ohne Argumente. Gibt man als erstes Argument einen Buchstaben ein, zeigt irssi alle aliase, die mit diesem beginnen. Der alias-Befehl wird immer in Großbuchstaben angezeigt, ist jedoch nicht case-sensitive: /J und /j ist das selbe.

Um einen eigenen Alias zu erstellen, gibt man als ersten Parameter den gewünschten alias und als zweiten Parameter den gewünschten Befehl an.
Beispiel:

/alias meta msg $C $0: http://www.metafrage.de/

Mit diesem Alias wird aus "/meta Hannes" ein "Hannes: http://www.metafrage.de/", somit kann man Nutzer auf den Artikel zu Metafragen in der Wikipedia hinweisen, ohne die URL suchen und kopieren zu müssen.

Highlighting[Bearbeiten]

Standardmässig hebt irssi alle Zeilen hervor, die den eigenen Nickname enthalten. Mit den Befehlen HILIGHT und DEHILIGHT lassen sich zusätzliche Highlight-Wörter definieren. Die einfachste Art, ein Hilight-Wort zu definieren, ist:

/hilight wort

Hilight kennt jedoch einige Optionen, hier die interessantesten:
-{nick, word, line}: Steuert, ob der Nickname, das Hilight-Wort oder die ganze Zeile markiert werden sollen.
-color: Farbe der Hervorhebung. Farbformat: siehe Anhang.
-actcolor: Farbe der Fensternummer in der Statusleiste oder %n um Hervorhebungen nicht in der Statusbar anzuzeigen.
-level: Level, auf die dieses Hilight zutrifft (siehe Anhang für eine Liste der verfügbaren Level)
-channels: Räume, in denen die Hervorhebung aktiv ist.

Statusbars[Bearbeiten]

Die Leisten am oberen und unteren Bildrand, werden Statusbar genannt und können mit dem gleichlautenden Befehl verändert werden. Irssi kennt standardmässig vier solcher Statusbars. Ihre Namen und Einstellungen kann man sich anzeigenlassen, indem man /statusbar eingibt:

Name Type Placement Position Visible
window window bottom 1 active
window_inact window bottom 1 inactive
prompt root bottom 100 always
topic root top 1 always

Bedeutung der Einstellungen:
Type: Statusleisten vom Typ 'Window' werden für jedes Fenster einzeln erstellt, das heißt sie können z.B. den channelnamen enthalten. Ist eine Leiste vom Typ 'root' so wird sie hingegen nur ein einziges Mal erstellt und überall angezeigt.
Placement: Bestimmt, ob die Leiste am oberen oder am unteren Rand ist.
Position: Die Abfolge der Leisten. Leisten mit einer höheren Nummer werden unter denen mit niedrigen Nummern angezeigt. In der Standardeinstellung ist also der prompt unter der Leiste mit den Channel-Infos. Würde man eine zusätzliche Leiste mit Placement=bottom und Position=23 einfügen, würde diese zwischen den beiden anderen angezeigt.
Visible: Das aktuelle Fenster ist 'active', alle anderen 'inactive'. Dies macht natürlich nur Sinn, wenn man mehrere Fenster gleichzeitig anzeigt ("splitting"), da man die inaktiven Fenster ja sonst nicht sieht.

Items[Bearbeiten]

Sieht man sich jetzt die Standard-Statusleiste "window" mit dem befehl "/statusbar window" an, so erhält man zusätzlich zu den bereits oben gesehen Informationen die Liste der Items. Items sind die auf der Leiste verteilten Informationen. Jedem Item kann eine Priorität ("priority") und eine Ausrichtung ("alignment" - left oder right) zugewiesen werden. Wofür die Priorität steht ist mir noch nicht ganz klar.

Name Beschreibung
barstart Beginn der Leiste
barend Ende der Leiste
time Aktueller Timestamp
user Nickname
window Channelname oder Name des Query-Partners
window_empty Server-Name im Statusfenster
lag Lag-Anzeige in sekunden
act Nachrichten in anderen Fenstern
more Informiert darüber, wenn man etwas hochgescrolled hat und es neue Zeilen gibt.
prompt Der Prompt: [#channel]
prompt_empty Das Eingabefeld (der wirkliche Prompt)
input Eingabefeld
topicbarstart Unterschied zu barstart?
topicbarend ???
topic Thema des aktuellen Channels
topic_empty ???

Statusleisten bearbeiten[Bearbeiten]

Mit /statusbar <Name> ENABLE bzw. DISABLE kann man die Leisten ein- oder ausblenden. Nicht existierende Leisten werden bei einem ENABLE automatisch erstellt. Um eine eigene Leiste wieder zu löschen, dient RESET.

Mittels TYPE window|root, PLACEMENT top|bottom, POSITION num und VISIBLE always|active|inactive können die oben erwähnnten Einstellungen für eine bestehende Leiste geändert werden.

Um Items hinzuzufügen, dient STATUSBAR <Name> ADD. Als Argumente kann man die Position mittels -before <item> bzw. -after <item> angeben, beispielsweise fügt der folgende Befehl zunächst die Lag-Anzeige und dann davor die Aktivitätsanzeige auf der rechten seite der delmonico-Leiste hinzu:

/STATUSBAR delmonico ADD -alignment right act
/STATUSBAR delmonico ADD -after act lag

Das Äquivalent zum Löschen von Items ist logischweise STATUSBAR <Name> REMOVE

Tastaturbefehle[Bearbeiten]

Mit dem Befehl BIND lässt sich die Tastatursteuerung von irssi komplett den eigenen Wünschen anpassen.

Ein dem Buchstaben vorangestelltes "^" steht für STRG, Meta ist meistens die Alt-Taste (als Alternative kann Escape genutzt werden):

^X gleich STRG+X
meta-x gleich ALT+X

Zusätzlich stehen die folgenden Tasten zur Verfügung:

Name Taste
return Return
space Leertaste
backspace Backspace
up, down, left, right Pfeiltasten
cleft, cright STRG bzw. CTRL links/rechts
home Pos1
end Ende
prior PageUp / Bild hoch
next PageDown / Bild runter
insert Einfügen
delete Entfernen

Mit diesen Tasten verbinden kann man alle Befehle, die in der HELP-Page von BIND aufgelistet sind (könnte man hier auch mal ne Tabelle machen) sowie alle /BEFEHL-Befehle.

BIND ohne weitere Angaben gibt die Liste der bereits eingestellten bindings aus.

Um eine neue Tastenkombination hinzuzufügen oder eine bestehende mit einem anderen Befehl zu belegen: /BIND <Tasten-Kombination> <Kommando>

Um eine Tastenbelegung zu löschen: /BIND -delete <Tasten-Kombination>

Beispiel: Fenster steuerung mit STRG+W und anschließendem N(ew), C(lose):

/bind -delete ^W //Muss zunächst gelöscht werden. Die folgenden Tasten (^N und ^C) dürfen jedoch belegt sein.
/bind ^W^N command WINDOW NEW
/bind ^W^C command WINDOW CLOSE

Message-Levels[Bearbeiten]

Message Levels finden fast überall Verwendung. Jede Art von Nachricht, egal ob sie vom Server oder IRSSI stammt, wird einem dieser Level zugeordnet. Die jeweiligen Levels sind im Anhang aufgeführt:

 /help levels

Ein Channelfenster zeigt eine Nachrichte an, wenn sein Level mit dem der Nachricht übereinstimmt. Steht der Level nicht ausdruecklich auf IGNORE (s.u.), landet die Nachricht im Statusfenster. Den Level des aktuellen Fensters zeigt

 /window level

Neue Fenster stehen per default auf NONE (kein Level zugeteilt). Da das Statusfenster (fast) alle Meldungen aufsammelt, sind hier allerdings auch (fast) alle im Anhang aufgeführten Level vertreten. Nun ist es möglich, einen Level hinzuzufügen bzw. wieder zu entfernen:

  /window level +CLIENTERROR # Fehlermeldungen des IRSSI-Clients landen im aktuellen Fenster
  /window level -TOPICS      # Topic Meldungen werden nicht mehr im aktuellen Fenster angezeigt (sie landen im Statusfenster)
  /window level -CRAP        # Wird dies in dem status window (ALT + 1) getippt .. könnt ihr danach die Whois anfragen in dem 
                               aktuellen Fenster sehn wo es eingetippt wurde 
 /window level ALL          # Alle Level werden im aktuellen Fenster gesetzt
 /window level NONE         # Alle Level des aktuellen Fensters werden entfernt

Ignorieren[Bearbeiten]

Irssi hat eine mächtige Ignorier-Funktion, die mit den Befehlen /ignore und /unignore gesteuert wird.

Leute ignorieren[Bearbeiten]

Wenn ein bestimmter Nutzer stört, kann man einfach alles ignorieren, was dieser sagt:

/ignore Nickname

Wenn sich andere Chatter sich auf eine Diskussion mit ihm einlassen, kann man ignore noch die option -replies geben. Dann werden auch Antworten der Form "Nickname: Du hast doch keine Ahnung!" mit ignoriert.

  • -replies Auch Antworten an einen Chatter ignorieren.
  • -channels <channel> Nur in bestimmten Channels ignorieren.
  • -time <secs> Ignore nach einer bestimmten Zeit automatisch wieder aufheben.

Levels ignorieren[Bearbeiten]

In einem Channel, in dem sehr viele Leute sind, können die vielen Joins, Quits und Nickchanges durchaus störend sein. Irssi unterscheidet solche Meldungen von normalen Chats, in dem sie in sogenannte levels aufgeteilt werden.

/ignore * NICKS #Alle Nick-Changes ignorieren
/ignore #channel1,#channel2 NICKS #Nickchanges in #channel1 und #channel2 ignorieren.

Dabei stehen die im Anhang aufgeführten Levels zur Verfügung.

Ignores löschen[Bearbeiten]

/unignore kann man auf zweierleiweise nutzen: Bei einfache Ignore-Argumenten wie einem Nickname, kann man das Ignore genauso aufheben, wie man es gesetzt hat (z.B. /unignore Newbie). Alternativ zeigt /ignore ohne weitere Angaben alle eingerichteten Ignores. Diese sind durchnnummeriert und können mit /unignore <Nummer> aufgehoben werden.

Logging[Bearbeiten]

Lastlog[Bearbeiten]

Wenn man nachsehen möchte, was zu einem Bestimmten Begriff oder von einer Person in der letzten Zeit gesagt wurde, kann man den LASTLOG-Befehl nutzen:

/lastlog Suchbegriff

Dieser Befehl sucht im aktuellen Fenster nach "Suchbegriff", lässt sich jedoch sehr vielseitig einsetzen (siehe /help lastlog).

Manuelles loggen[Bearbeiten]

Wenn man das loggen selber starten und stoppen will:

/log open <Dateiname> Öffnet eine Logdatei und beginnt das logging (es sei denn, die Option -noopen wird genutzt).
/log start <Dateiname>|<Id> Beginnt, in der Datei zu loggen
/log stop <Dateiname|<Id> Stoppt das loggen
/log close <Dateiname|<Id> Schließt ein Logfile

Gibt man nur /log ein, erhält man eine Liste der offenen Log-Files mit ihren IDs. Will man bestimmte files beim Start von Irssi automatisch öffnen, gibt man /log open die Option -autoopen mit. Mit -window kann man zudem das zu loggende Fenster und mit -targets die zu loggenden Channels oder Nicknames angeben. Auch eine -levels-Option fehlt natürlich nicht (siehe Anhang: Levels).

Auto-logging[Bearbeiten]

Automatisches loggen: Um automatisch alle Gespräche loggen zu lassen, sollte man zunächst die Option autolog_path ändern. Neben der Pfad-Angabe (ich bevorzuge ~/.irssi/logs/) lassen sich hier die Variablen $tag für den Server und $0 für den Channel bzw. Nickname des Chatpartners nutzen. Zusätzlich kann man mit den aus man strftime zu entnehmenden Zeitformatierungsvariablen ein automatisches Wechseln des Logfiles zu bestimmten Zeitpunkten erreichen.
Beispiel:

/set autolog_path ~/.irssi/logs/$tag/$0/%Y-%m-%d.log

Diese Einstellung erzeugt eine Log-Datei pro Channel und Tag in ~/.irssi/logs/. Diese werden in Unterordnern für den Server und den Channel gespeichert. Die Logdatei für den Raum #archlinux.de im Freenode-Netzwerk am 18.10.2004 würde also als ~/.irssi/logs/freenode/#archlinux.de/2004-10-18.log gespeichert.

Ist autolog_path den eigenen Wünschen angepasst, kann man autologging mittels "/set autolog on" aktivieren. Das Verhalten des Loggings wird durch die im Anhang erläuterten Optionen beeinflußt.

Scripts[Bearbeiten]

Ein wichtiges Feature ist die Möglichkeit, Irssi durch Perl-Skripte zu erweitern. Auf der Irssi-Homepage steht eine große Anzahl fertiger Skripte zum Download bereit.
Die Skripte können ins Verzeichnis ~/.irssi/scripts/ gespeichert werden. Manche Distributionen liefern ein Paket mit, daß Skripte Systemweit bereitstellt. Debian macht dies mit dem Paket irssi-scripts, dass in /usr/share/irssi/scripts/ über 300 Skripte bereithält.

Um das Script in irssi zu laden: /script load <name>. Die Bedienung der Scripts ist meist im Code selbst oder auf einer eigenen Homepage dokumentiert. Viele Skripte erweitern irssi auch um zusätzliche /set-Optionen. Um Skripte direkt beim Start zu laden kann man in ~/.irssi/scripts/autorun/ einen Symlink auf das Skript erstellen.

Nützliche Scripte[Bearbeiten]

Scriptassist, die Mutter aller Scripte[Bearbeiten]

Scriptassist ist ein Script zur Verwaltung von Scripten. Tatsächlich ist es das einzige Script von der Irssi-Homepage, das ihr selber installieren müsst. Danach könnt ihr über dieses Script andere Scripts suchen und installieren, Autostart einstellen, alle geladenen Scripte aktualisieren und so weiter.

Evtl. Probleme: Wenn scriptassist.pl nicht fehlerfrei geladen wurde, kann es sein dass euch einige module fehlen, wie z.B. LWP/UserAgent.pm. in diesem Fall einfach das Package "libwww-perl" installieren was diese Module beinhaltet. Für gentoo linux user einfach mal im Portage mit # emerge -s libwww-perl nachschauen.


Die wichtigsten Befehle (weitere mit /scriptassist help):
Scripts suchen:

/scriptassist search <Suchbegriff>

Scripts installieren:

/scriptassist install <script>

Script beim irssi-Start automatisch laden:

/scriptassist autorun <script>

Nach verfügbaren updates gucken:

/scriptassist check

Script updaten:

/scriptassist update script

Alle Scripts updaten:

/scriptassist update all

Trackbar[Bearbeiten]

Trackbar zeichnet beim Verlassen eines Fensters eine Linie als unterste Zeile. Damit kann man beim zurückwechseln zu diesem Fenster direkt sehen, wo man zuletzt gelesen hat.

nm[Bearbeiten]

nm zentriert die Nicknames im Channel anhand des längsten Namens. Das steigert die Übersichtlichkeit ungemein (Hinweis: Einige Themes bieten diese Option auch ohne Script)

Tinyurl[Bearbeiten]

In vielen Channels sind sehr lange URLs, etwa von Ebay, nicht gern gesehen. Abhilfe schafft ein Besuch auf der TinyURL Website, wo man sich eine kurze URL generieren lassen kann. Viel einfacher geht das ganze mit Tinyurl.pl: Einfach "/tinyurl <URL>" eingeben und das Script lässt die URL generieren und gibt sie im aktuellen Fenster aus.

oops[Bearbeiten]

oops.pl zeigt bei der Eingabe von "ls" (ohne /) die Userlist (/names) an und ist damit für Shelluser recht nützlich.

splitlong[Bearbeiten]

Irssi hat eine interne maximale Zeilenlänge, die gesendet werden kann. Eine längere Zeile wird abgeschnitten. Das Skript splitlong.pl verhindert dies, in dem es eine neue Zeile beginnt.

nicklist[Bearbeiten]

Eine Liste der Nicknames im aktuellen Channel wird mit nicklist.pl angezeigt.

Dateitransfer (DCC)[Bearbeiten]

Dateien empfangen[Bearbeiten]

Erhält man ein Datei-Angebot, so wird man darüber im Status-Fenster informiert. Um den Transfer zu starten, nutzt man den Befehle DCC GET <Name des anbietenden Users> <Dateiname>. Um Dateien automatisch herunterzuladen, kann man die Option dcc_autoget aktivieren. Abgebrochene Transfers lassen sich per DCC RESUME vervollständigen, die Option dcc_autoresume sorgt dafür, dass unvollständige Dateien automatisch auch bei einem GET vervollständigt werden.

Dateien versenden[Bearbeiten]

/DCC SEND Benutzername /pfad/zur/datei/foo.bar [/noch/eine/datei/bar.foo]

Tipps und Tricks[Bearbeiten]

Irssi im screen[Bearbeiten]

Das Programm screen stellt eine ideale Ergänzung zu irssi (und anderen Konsolen-Chat-Programmen) dar: Es ermöglicht es, irssi auf mehreren Terminals gleichzeitig zu sehen, etwa auf der Konsole, unter X und remote über SSH. Schließt man einmal versehentlich den Terminal-Emulator, läuft irssi weiter.

Um irssi im screen zu starten, dient der Befehl "screen -S irssi irssi" - das "-S irssi" gibt der screen-session einen Namen, sodass man sie auch dann wieder attachen kann, wenn man mehrere screens laufen hat. Will man jetzt auf einem weiteren Terminal oder nach einem schließen des irssi-fensters wieder ins irc, reicht "screen -x irssi". Und damit man das alles gar nicht mehr braucht, setzt man sich im Startupfile seiner shell (~/.bashrc, ~/.zshrc, etc.) folgende Zeile:

alias irssi='screen -S irssi -xR irssi'

screen prüft dann in diesem Fall, ob bereits eine screen-Instanz mit dem session-Namen 'irssi' existiert. Ist dies der Fall so wird diese attached. Falls dies nicht der Fall ist, wird irssi in einem neuen screen gestartet und dieser screen-Instanz der Name 'irssi' zugewiesen

Wer Probleme damit hat, dass irssi, welches in einer screen remote auf einem Rechner laeuft, aber trotz screen bei der beliebten 24-Stunden-Zwangstrennung austimet, sollte es mal mit der screen-option "nonblock on" versuchen. Offensichtlich blockt screen das letzte aktive Fenster, bis die ssh-Verbindung austimet, da der timeout >3 Minuten ist, verliert irssi die Verbindung zum irc-server.

Anhang

Levels[Bearbeiten]

Level Beschreibung
CRAP Whois Messages und andere Messages
CTCPS Client-to-Client-Protocol
JOINS Chatter betritt den Raum
PARTS Chatter verläßt den Raum
QUITS User verläßt den Server
KICKS User wird gekickt
TOPICS Änderung des Channel-Themas
PUBLIC Channel Nachrichten
SNOTES
NOTICES
MODES Änderung des Modes (Op, voice, etc)
DCC DCC-Events
NICKS Änderung von Nicknames
ACTIONS "/me tut das und das"
WALLOPS
MSGS Private Nachrichten
INVITES Einladung in einen Raum
DCCMSGS Private Nachrichten via DCC
CLIENTNOTICE
CLIENTCRAP Einige andere Messages von Irssi
CLIENTERROR Fehlermeldungen die IRSSI generiert (z.B. Irssi: Unknown command: xyz)

Spezielle Level[Bearbeiten]

Option Beschreibung
HILIGHT Nachrichtentext wird hervorgehoben
NOHILIGHT Hervorhebung wird ausgeschaltet
NO_ACT Kommt eine neue Nachricht in den Channel, wird trotzdem keine Aktivitaet signalisiert
NEVER Nachrichten dieses Typs werden NIE ignoriert oder geloggt

Optionen[Bearbeiten]

Die Optionen sind größtenteils auf der Homepage irssi::Settings dokumentiert. Optionen erlauben es, die Basiseinstellungen des Programmes zu ändern, den Bedürfnissen und Anforderungen des Benutzers anzupassen. Optionen können entweder mittels /SET <Option> <Wert> für eine Sitzung geändert oder, wenn sie in der Konfigurationsdatei "config" eingetragen werden, dauerhaft bestimmt werden.

Option Standard Mögliche Werte Beschreibung/Beispiel
(Nick) completion
completion_strict OFF
completion_keep_privates 10
completion_char :
completion_auto OFF
completion_nicks_lowercase OFF
completion_keep_publics 50
dcc
dcc_autorename OFF
dcc_autoresume OFF
dcc_timeout 5min
dcc_autoget OFF
dcc_upload_path ~
dcc_autoget_masks
dcc_autoget_max_size
dcc_send_replace_space_with_underscore OFF
dcc_own_ip
dcc_download_path ~
dcc_file_create_mode 644
dcc_port 0
dcc_autochat_masks
dcc_mirc_ctcp OFF
dcc_autoaccept_lowports OFF
flood
autoignore_time 5min
autoignore_level
flood_timecheck 8
cmds_max_at_once 5
cmd_queue_speed 2200msec
max_ctcp_queue 5
flood_max_msgs 4
history
scrollback_save_formats OFF
scroll_page_count /2
window_history OFF
max_command_history 100
scrollback_time 1day
rawlog_lines 200
scrollback_lines 500
scrollback_burst_remove 10
log
log_close_string
log_timestamp %H:%M
autolog_colors OFF
autolog_level all -crap -clientcrap -ctcps
awaylog_colors ON
log_day_changed
autolog OFF
autolog_path ~/irclogs/$tag/$0.log
awaylog_level msgs hilight
awaylog_file ~/.irssi/away.log
log_theme =
log_create_mode 600
log_open_string
lookandfeel
show_names_on_join ON
window_check_level_first OFF
emphasis ON
autocreate_split_windows OFF
beep_msg_level
actlist_moves OFF
hilight_nick_matches ON
emphasis_multiword OFF
hide_colors OFF
names_max_width 0
mirc_blink_fix OFF
autoclose_windows ON
bell_beeps OFF
hide_server_tags OFF
show_nickmode ON
theme default
timestamps ON Zeitstempel vor jeder Nachricht ausgeben
indent 10
timestamp_format
activity_msg_level PUBLIC
print_active_channel OFF
autoclose_query 0
activity_hide_targets
use_msgs_window OFF
timestamp_timeout
use_status_window ON
windows_auto_renumber ON
show_nickmode_empty ON
beep_when_away ON
timestamp_level ALL
indent_always OFF
hilight_color %Y
emphasis_replace OFF
hilight_level PUBLIC DCCMSGS
hilight_act_color %M
term_type 8bit
expand_escapes OFF
autocreate_windows ON
autocreate_query_level MSGS DCCMSGS
term_auto_detach OFF
window_default_level NONE
hide_text_style OFF
names_max_columns 6
chanmode_expando_strip OFF
show_quit_once OFF
show_away_once ON
autocreate_own_query ON
activity_hilight_level MSGS DCCMSGS
autostick_split_windows ON
query_track_nick_changes ON
scroll ON
window_auto_change OFF
beep_when_window_active ON
activity_hide_level
show_own_nickchange_once OFF
reuse_unused_windows OFF
colors ON
term_force_colors OFF
autofocus_new_items ON
misc
opermode
lag_check_time 1min
quit_message leaving
paste_detect_time 5msecs
notify_check_time 1min
help_path /usr/share/irssi/help
ctcp_userinfo_reply $Y
override_coredump_limit ON
join_auto_chans_on_invite ON
netjoin_max_nicks 10
channel_sync ON
notify_idle_time 1hour
massjoin_max_joins 3
write_buffer_size 0
STATUS_OPER *
ban_type normal
lag_max_before_disconnect 5min
part_message
auto_whowas ON
paste_verify_line_count 5
max_wildcard_modes 6
hide_netsplit_quits ON
knockout_time 5min
massjoin_max_wait 5000
lag_min_show 1sec
wall_format [Wall/$0] $1-
netsplit_nicks_hide_threshold 15
settings_autosave ON
translation
group_multi_mode ON
cmdchars /
notify_whois_time 5min
kick_first_on_kickban OFF
usermode +i
ignore_signals
netsplit_max_nicks 10
ctcp_version_reply irssi v$J - running on $sysname $sysarch
write_buffer_timeout 0
perl
perl_use_lib /usr/lib/perl5/5.8.5/i686-linux-thread-multi
proxy
use_proxy OFF
proxy_string CONNECT %s %d
proxy_string_after
proxy_port 6667
proxy_address
proxy_password
server
server_connect_timeout 5min
resolve_reverse_lookup OFF
use_ssl OFF
ssl_cafile
hostname
user_name root
resolve_prefer_ipv6 OFF
ssl_cert
nick root
alternate_nick
ssl_cacert
real_name root
ssl_pkey
ssl_verify OFF
skip_motd OFF
server_reconnect_time 5min
servers
channels_rejoin_unavailable ON

Interne Variablen[Bearbeiten]

Umgang mit den Variablen[Bearbeiten]

Irssi besitzt einige interne Variablen, die man zum Beispiel in Alias-Befehlen verwenden kann. Um den inhalt einer Variable anzusehen, kann man im Statusfenster "/eval echo $VARIABLE" eingeben. Auch die werte von /set-Optionen können als $option angesprochen werden. Die Variablen können auch wie folgt formatiert und ausgewertet werden:

Schreibweise Beschreibung
$variable Normale ausgabe
$[n]variable Gibt die Variable auf n Zeichen gekürzt aus. Bei n<0 wird von rechts gezählt.
$#variable Gibt die Anzahl der Wörter in #variable zurück.
$@variable Gibt die Anzahl der Zeichen in #variable zurück.
$($subvariable) Der Inhalt von $subvariable wird als Name der zu nutzenden Variable genutzt (wenn $subvariable == hostname, wird der hostname zurückgegeben).
${expression} Muss genutzt werden, wenn die Variable direkt im text steht, z.B. so: foo${N}foo
$!history! Letzter eingegebener Befehl, der "history" enthält, wird zurückgegeben.

Variablen[Bearbeiten]

Variable Beschreibung
$, Die letzte Person, die einem eine MSG geschickt hat.
$. Die letzte Person, an die man eine MSG geschickt hat.
$: Die letzte Person, die einen der Channels betreten hat, in denen der User ist.
$; Die letzte Person, die in einem der Channels, in denen der User ist, eine Nachricht geschrieben hat.
$A Text der Away-Message
$B Die letzte verschickte MSG
$C Aktueller Channel
$D Gibt die letzte Person aus, die Online gekommen ist, und in deiner Notify-List steht
$E Idle-Zeit in Sekunden
$F Zeit, zu der der client gestartet wurde.
$H ??? "current server numeric being processed"
$I Der Channel, in den man zuletzt eingeladen wurde.
$J Irssi-Version
$K /set cmdchars
$k Erstes zeichen von $cmdchars
$L Aktueller Inhalt der Eingabezeile
$M Modes des aktuellen Channels
$N Nickname
$O ???"value of STATUS_OPER if you are an irc operator"
$P "@", wenn man Channel-Operator in $C ist.
$Q Nicknames, mit denen Querys offen sind
$R Server-Version
$S Server Name
$T Channel/Nick/Query je nachdem wo man sich befindet.
$U ???"value of cutbuffer"
$V Release-Datum des Clients
$W Aktuelles Verzeichnis
$X wie "/userhost $N" (user@host)
$Y Real name
$Z Tageszeit im Format von $timestamp_format
$$ Das $-Zeichen
$versiontime ???"prints time of the irssi version in HHMM format"
$sysname Systemname (z.B. Linux)
$sysrelease System-Version (z.B. 2.4.28)
$sysarch System-Architektur (z.B. i686)
$topic Channel-Topic
$usermode User mode
$cumode ???"own channel user mode"
$cumode_space Wie $cumode, gibt aber ein Leerzeichen zurück, wenn kein user mode
$tag Server tag
$chatnet Netzwerk zu dem der aktuelle Server gehört.
$winref Fenster-Nummer
$winname Fenster-Name
$itemname Ähnlich $T, aber mit dem "visible name" (???)

Farben[Bearbeiten]

mIRC-Farben bei PRIVMSGs[Bearbeiten]

In irssi ist es möglich normale mIRC-Farben zu verwenden. Man sollte es allerdings nicht übertreiben. Farben werden mit ^C(Vordergrundfarbe|,Hintergrundfarbe) eingefügt. ^C steht wie immer für die Tastenkombination Strg+C. Dabei erscheint dann als erstes ein invertiertes C. Danach gibt man den Wert der Vordergrundfarbe und - optional, durch ein Komma getrennt - den der Hintergrundfarbe ein. Bei einstelligen Farbwerten sollte man aufpassen: Folgt auf den Wert eine Ziffer, die eigentlich zum farbigen Text gehören soll, wird diese auch als Teil des Farbwertes interpretiert. Um das zu vermeiden, reicht es dem Farbwert einfach eine 0 voranzustellen damit er zweistellig wird.

Um die Farbe zurückzusetzen reicht ein einfaches ^C.

Farbwert Vordergrund Hintergrund
00 Weiß Hellgrau (blinkend)
01 Schwarz Schwarz
02 Blau Blau
03 Grün Grün
04 Hellrot Rot (blinkend)
05 Rot Rot
06 Magenta Magenta
07 Orange Orange
08 Gelb Orange (blinkend)
09 Hellgrün Grün (blinkend)
10 Cyan Cyan
11 Türkis Hellblau (blinkend)
12 Hellblau Blau (blinkend)
13 helles Magenta Magenta (blinkend)
14 Grau Schwarz (blinkend)
15 Hellgrau Hellgrau

blinkend bedeutet in diesem Zusammenhang, dass der Text - nicht die Hintergrundfarbe - blinkt. Dies wird allerdings nicht von allen Terminals und IRC-Clients umgesetzt.

Beispiele:

foo^C03bar^Cqux => foobarqux
foo^C03,02bar^Cqux => foobarqux
foo^C02,05bar^C03qux^Cblubb => foobarquxblubb

Außerdem gibt es noch ^B um Text fett darzustellen. Beispiel: foobar^Bfoo^Bbar => foobarfoobar

Hintergrund[Bearbeiten]

Code Farbe
%0 black
%1 red
%2 green
%3 yellow
%4 blue
%5 magenta
%6 cyan
%7 white

Text[Bearbeiten]

Code Text
%k black
%K dark grey
%r red
%R bold red
%g green
%G bold green
%y yellow
%Y bold yellow
%b blue
%B bold blue
%m magenta
%M bold magenta
%p magenta (think: purple)
%P magenta (think: purple)
%c cyan
%C bold cyan
%w white
%W bold white
%n / %N Standard-Farbe, entfernt alle gesetzten Farben und Formatierungen. %n hat in themes eine andere Bedeutung: vorherige Farbe.
%F Blinken an/aus (an "Flash" angelehnt)
%U Unterstreichen an/aus
%8 Rückwärts an/aus (?)
%9 Fett an/aus
%: Neue Zeile
Marks the indentation position (?)
%# Monospace font on/off (useful with lists and GUI) (?)
%% Das Zeichen "%".

Weblinks[Bearbeiten]

 Irssi