# Das &ksirc; Handbuch

Andrew
Stanley-Jones

    asj@chowtown.cban.com

Philip
Rodrigues

    phil.rod@ntlworld.com

Frank
Schütte

    F.Schuette@t-online.de

Deutsche Übersetzung
2001-07-25
1.10.00
&FDLNotice;

Diese Dokumentation beschreiben das &kde; &irc;-Programm &ksirc; 1.1.

KDE
KSirc
irc
Internet relay chat

## Einleitung

&ksirc; ist für &kde; das Standard-&irc;-Programm. Es unterstützt Skripte in der Sprache Perl und ist im wesentlichen kompatibel zu &mirc;.

## &ksirc; verwenden

### Falls man &irc; noch nie verwendet hat...

Einfach gesprochen ist &irc; ein Chat-Protokoll. Es ist durch einen offiziellen Internet-Standard definiert worden. Um &irc; zu verwenden, muss man Verbindung zu einem Server aufnehmen und in einen Kanal (channel) hineingehen (äquivalent zu einem Chat-Raum).

Man wählt Verbindungen Neuer Server oder drückt F2, um Verbindung zu einem Server aufzunehmen. Im Dialog wählt man eine Gruppe aus dem linken Listenfeld und einen Server aus dem mittleren Listenfeld. Die Portnummer ist in der Regel 6667. Es erscheint ein neues Fenster, das die vom Server gesendeten Nachrichten anzeigt. Wenn diese Nachrichten beendet sind, kann man einen Kanal auswählen. Eine Liste der verfügbaren Kanäle erhält man durch den Befehl ``/list``. Um in einen Kanal hineinzugehen, gibt man den Befehl ``/join` #Kanalname` an. Um einen Kanal zu verlassen, dient der Befehl ``/part``.

Damit sind die Grundlagen bekannt. Detailiertere Informationen folgen weiter unten.

### Grundlagen von &ksirc;

#### Server

Mit &ksirc; kann man gleichzeitig Verbindung zu vielen Servern aufnehmen. Um sich mit einem Server zu verbinden, wählt man Verbindungen Neuer Server oder drückt F2. Im Verbindungsdialog kann man zunächst die gewünschte Gruppe, dann einen Server und schließlich einen Port wählen.

Danach klickt man auf Verbinden und ein neues Fenster erscheint. Das Fenster Server-Kontrolle ermöglicht eine Kontrolle über die Server, mit denen &ksirc; verbunden ist.

#### Kanäle (Channels)

Mit dem Befehl ``/join`` oder über den Menüeintrag Verbindungen In Kanal hineingehen oder durch drücken von F3 kann man in einen Kanal hineingehen.

Geöffnete Kanäle werden im Fenster Server-Kontrolle unter dem zugehörigen Server angezeigt. Man kann einen Kanal wieder verlassen, indem man `/part` eintippt, im Menü Kanal Schließen wählt oder &Ctrl;W betätigt.

#### Kanal-Einstellungen

Das Kanal-Menü im Kanal-Fenster enthält einige nützliche Einstellungen:

&Ctrl;T Ticker-Modus

  Zeigt den Kanal wie einen Börsen- oder Nachrichtenticker an. Zu beachten ist, das man in diesem Modus nicht an der Unterhaltung im Kanal teilnehmen kann. Um den Ticker-Modus zu beenden, klickt man mit der rechten Maustaste auf den Ticker und wählt aus dem Menü Verstecken....

&Ctrl;S In Log-Datei speichern...

  Speichert den Inhalt des Kanals in einer Datei.

&Ctrl;A peitmarke

  Jeder Aussage im Kanal wird die Zeit in der Form HH:MM vorangestellt.

#### Benutzer

In jedem Kanal wird die Benutzerliste rechts in einer Spalte angezeigt. Klickt man mit der rechten Maustaste auf einen der Namen, so erscheint ein Menü mit einigen selbst erklärenden Funktionen:

Spitznamen aktualisieren

  Fordert vom Server die aktuelle Teilnehmerliste dieses Kanals an.

Folgen

  Folgt einem bestimmten Teilnehmer in den Kanal, in den er geht.

Nicht folgen

  Beendet die Verfolgung eines Teilnehmers.

Wer ist

  Sendet eine "CTCP whois"-Anfrage über einen Teilnehmer. Es werden verschiedene Informationen über einen Teilnehmer (z.B. Computername, Server-Verbindung usw.) abgefragt.

Ping

  Sendet ein "CTCP Ping" zu einem Teilnehmer, um dessen Antwortzeit zu testen.

Version

  Sendet eine "CTCP Version"-Anfrage, um die Programmversion eines Teilnehmers zu ermitteln.

Abuse

  Einen Teilnehmer in einer von mehreren Weisen schlecht behandeln.

Die folgenden Befehle sind nur für Kanal-Operatoren zugänglich:

Kick

  Den Teilnehmer aus dem Kanal werfen.

Ban

  Den Teilnehmer von der Teilnahme im Kanal ausschließen.

unBan

  Den Teilnahmeausschluß für einen Benutzer aufheben.

Op

  Dem Teilnehmer Operator-Rechte geben.

DeOp

  Die Operator-Rechte für einen Teilnehmer widerrufen.

## Farben von &ksirc;

Das Farbschema von &ksirc; ist dem von &mirc; ähnlich. Es wurden einige geringe Modifikationen für eine bessere Anwendbarkeit vorgenommen.

    <fg> == Vordergrund
    <bg> == Hintergrund
    &lsqb;&rsqb; == Optional

### Kompatibilität zu &mirc;

Format:

- Der Befehl `0x03<fg>&lsqb;,<bg>&rsqb;` ändert die Farbe für den Vordergrund und den Hintergrund

- Der Befehl `0x03` stellt für diese Zeile auf die Standardeinstellung zurück

### &ksirc; Standard

Format:

- `˜<fg>&lsqb;,<bg>&rsqb;` ändert die Vordergrund- und Hintergrundfarbe

- `˜c` stellt auf Standardeinstellungen zurück

- `˜b` ändert das Schriftattribut in fett

- `˜u` ändert das Schriftattribut in unterstrichen

- `˜i` ändert das Schriftattribut in kursiv

- `˜r` ändert das Schriftattribut in unterstrichen

Warum verwendet &ksirc; das Zeichen ˜ an Stelle von 0x03 (ˆC)? Erstens ist es schwer 0x03 in Skripten zu verwenden und zweitens haben einige C-Funktionen Probleme damit. ˜<Zeichen;> ermöglicht mehr Befehle, ohne Probleme mit zukünftigen Erweiterungen von &mirc; zu bekommen.

### Farbnummern

1. weiß

2. schwarz

3. blau

4. grün

5. rot

6. braun

7. violett

8. orange

9. gelb

10. hellgrün

11. rosa

12. hellrosa

13. hellblau

14. rosa

15. grau

16. hellgrau

### Sendet die Attribute fett, unterstrichen, invertiert und die Farbe

Mit den folgenden Tastenkürzeln kann man Steuerzeichen in den Text einfügen:

- &Ctrl;B für fett

- &Ctrl;U für unterstrichen

- &Ctrl;R für invertiert

- &Ctrl;K für farbig

- &Ctrl;O für Standard

### Beispiele

Unterstreichung eines einzelnen Wortes in einem Satz:

1. Man tippt &Ctrl;U

2. Tippe das Wort ein

3. Tippe noch einmal &Ctrl;U

Nur der Text zwischen den Start- und Endezeichen wird verändert. Man kann diese Methode für alle anderen Steuerzeichen ebenfalls verwenden.

Das Steuerzeichen &Ctrl;K funktioniert etwas anders, da man hier noch eine Farbnummer angeben muss. Um beispielsweise ein einzelnes Wort einzufärben:

1. Man tippt &Ctrl;K

2. Nun tippt man eine Zahl zwischen 0 und 15

3. Nun tippt man das Wort

4. Schlileßlich tippt man noch einmal &Ctrl;K

Wenn man außerdem noch die Hintergrundfarbe eines Wortes verändern will, muss man zwei durch ein Komma getrennte Zahlen anstatt einer einzigen angeben. Die erste Zahl gibt die Textfarbe an, die zweite steht für die Hintergrundfarbe. Der Farbbereich reicht von 0 bis 15. Die Tabelle der Farben befindet sich im vorigen Abschnitt.

Ein Textabschnitt kann auch in mehrere Steuerzeichen eingeschlossen werden. Man kann also einen Textabschnitt fett, unterstrichen und farbig darstellen.

## Filter

### Filterregeln und ihre Erstellung

Falls man diese Anleitung nicht versteht, kann man auf den für die nächste Programmversion geplanten Filterassistenten warten. Das kann allerdings noch ein wenig dauern.

Der Filter versucht den Text in match zu finden und durch den Text in From und To zu ersetzen. Die Texte in diesen drei Feldern können jeweils reguläre Ausdrücke von Perl sein. Die Regeln werden in absteigender Reihenfolge ausgewertet. Die oberste Regel zuerst, dann die zweite Regel, usw. Alle Texte werden wie folgt ausgewertet:

`$Name` wird durch den Inhalt der Umgebungsvariable `Name` ersetzt. Diese Ersetzung wird allerdings bei der Eingabe der Regel bereits vorgenommen und später auch nicht mehr verändert. Damit ist diese Ersetzung vermutlich von geringem Wert.

`$$Name` wird beim Vergleich durch den Inhalt der Perl-Variable `$Name` ersetzt. Dabei kann es sich um Zeichenketten wie `$1`, `$2` oder normale Variablen handeln, die in sirc vorhanden sind (wie z.B. `$nick`, `$channel`, usw.).

`˜Name˜` genau einmal am Zeilenanfang sendet die Textzeile an das Fenster mit dem Titel Name. Falls das Fenster nicht existiert, wird der Text an das Fenster gesendet, das zuletzt den Fokus hatte. Es gibt einige Spezialfenster, deren Name von einem vorangestellten `!` eingeleitet wird.

`!default`

  Das aktuelle Fenster. Es existiert immer.

`!all`

  An jedes Fenster senden. Der Text erscheint eventuell nicht in allen Fenstern, da die angezeigten Texte von der Fensterart abhängen. Zum Beispiel zeigen Kanal-Fenster keine part/quit-Nachrichten, es sei denn der zugehörige Spitzname nimmt am Kanal teil.

`!discard`

  löscht den Text.

Der Rest des Textes wird wie ein normaler regulärer Ausdruck in Perl behandelt. Ein gutes Verständnis der Manualseite `perlre` ist von Vorteil, ein grundlegendes Verständnis von regex sollte man mindestens haben.

### Beispiele:

1. Um in jedem Text alle Vorkommen von kde durch KDE zu ersetzen

       Match: .*
       From: kde
       To: KDE

   Jeder Text wird untersucht und darin jedes Vorkommen von kde durch KDE ersetzt.

2. Gesucht ist jeder Text, der kde enthält. Dieser Text soll an das Fenster mit dem Namen kde gesendet werden

       Match: kde
       From: ˆ
       To: ˜kde˜

   Sucht nach dem Wort kde und ersetzt im Erfolgsfall den Textanfang (ˆ) durch ˜kde˜.

3. Obwohl das Beispiel funktioniert, erhält man für den Fall, das der Text bereits ein `˜wrgendein_Fenster˜` enthält, `˜kde˜˜irgendein_Fenster˜...`. Stattdessen kann man das Folgende tun:

       Match: kde
       From: ^(?:˜\S+˜)
       To: ˜kde˜

   Hier ist die "From"-Zeile ein wenig kompliziert. Sie bedeutet: suche 0 oder 1 Vorkommen von `˜\S+˜`. Das ist 1 Tilde, ein oder mehrere Zeichen und eine weitere Tilde. Der ganz Vorsichtige könnte stattdessen `(*:˜\S+˜)` verwenden, was &ksirc; veranlasst, nach 0 oder mehr Kanalbefehlen zu suchen, für den Fall, dass vorherige Regeln unkorrekt sind.

4. Kill-Nachrichten des Server sind meistens lang, häßlich und nervig. Eine grundlegende Nachricht auf dalnet sieht etwa folgendermaßen aus:

       *** Notice -- Received KILL message for
       BOBO!ANDY@line82-basel.datacomm.ch from NickServ
       Path: empire.ny.us.dal.net[209.51.168.14]!trapdoor.ca.us.dal.net
       [206.86.127.252]!caris.ca.us.dal.net[208.1.222.221]
       !services.dal.net[2008.1.222.222]!services.dal.net
       (NickServ Enforcement)

   Wenn man die Option `+s` verwendet, erhält man Hunderte davon; sie huschen schnell über den Bildschirm. Man kann 3 Regeln erstellen, um diese Nachrichten Schritt für Schritt zu verarbeiten. Man kann auch mit weniger als 3 Regeln auskommen, aber dieses Beispiel eignet sich, um in mehreren Schritten zu zeigen, wie mit mehreren Regeln eine umfangreiche Nachricht analysiert wird. Im ersten Schritt wird der Pfad-Anteil entfernt.

       Match: ^\*\*\*.* KILL message for.*
       From:  Path: \S+
       To: .

   Match sucht nach einer Nachricht, die mit `***` beginnt. Den `*`-Zeichen muss jeweils `\` vorangestellt werden, da sie selbst als Sonderzeichen dienen und für 0 oder mehr Vorkommen des vorangestellten Textes stehen. `.*` passt auf beliebige Zeichen bis zum Text `"KILL message for"`. Damit kann man vermeiden, `-- Received...` usw. einzutippen. Das angehängte `.*` passt auf alle Zeichen bis zum Zeilenende (das ist aber soviel ich weiß überflüssig).

   Die From-Zeile bedeutet: ersetze " Path: " und alle Zeichen bis zum nächsten Zwischenraum (whitespace) durch To. To enthält lediglich `"."`, weshalb der gesamte Pfad durch einen einzelnen Punkt ersetzt wird.

   Die Nachricht hat nun folgendes Aussehen:

       *** Notice -- Received KILL message for BOBO!ANDY@line82-basel.datacomm.ch
       from NickServ. (NickServ Enforcement)

   Beachtenswert ist der neue `"."` hinter `NickServ`.

5. Damit ist die Nachricht bereits wesentlich klarer, aber KILLs von NickServ sind nicht so wichtig, also wollen wir die Nachricht an das Spezialfenster `!discard` weiterleiten.

       Match: ^\*\*\*.*KILL message.*\(NickServ Enforcement\)
       From: ^(?:˜\S+˜)
       To:  ˜!discard˜

   Die Match-Regel sucht nach der KILL-Nachricht und überprüft, ob sie von NichServ ist. Man beachte die Zeichen `\(` und `\)`. Beide Klammern `()` haben in regulären Ausdrücken eine besondere Bedeutung, daher muss jeweils `\` vorangestellt werden. Das ist ähnlich zu Beispiel 3.

6. Jetzt sind die Kills von NickServ herausgefiltert, aber das Lesen der Nachricht ist immer noch nicht einfach. Daher soll die Nachricht jetzt umorganisiert werden:

       *** [KILL] <KILLER> killed <KILLED> (reason)
       Match: \*\*\*.*KILL message
       From: \*\*\*.*for (.*?) from (.*?)\. \((.*?)\).*
       To: *** [KILL] $$2 killed $$1 ($$3)

   Die Match-Regel such nach `***irgendetwas` KILL message. Wir können nicht `ˆ` verwenden, da wir gerade `˜<wenster>˜` an die Nachricht angehängt haben.

   Die From-Zeile wird interessant. Der Abschnitt `"for (.*?) "` sucht nach dem Wort "for" gefolgt von weiteren Zeichen. `.*?` sucht nach 0 oder mehr Zeichen mit Ausnahme eines Zeilenumbruches. Diese Suche stoppt, wenn die erste Bedingung für einen Abbruch gegeben ist. Mit anderen Worten passt die Zeichenkette auf alles bis zum nächsten Leerzeichen. Die umgebenden `()` sorgen für das Speichern des gefundenen Textes. Jedes Auftreten von () speichert die gefundene Zeichenkette in `$&num;`, wobei `&num;` bei 1 für die erste Teilzeichenkette beginnt usw. . Im Beispiel wird `$1` der Spitzname/Benutzername des "gekillten"Teilnehmers zugeordnet. `$2` enthält den Namen der killenden Person. Zwischen `()` haben wir den Grund. `(` und `\(` sind ein wenig verwirrend. Man muss bedenken, dass `\(` für das Zeichen `'('` steht.

7. Im nächsten Beispiel wird gezeigt, wie man ein wenig Farbe in &ksirc; bringen kann. Weitere Informationen zu Farben findet man im Abschnitt Farben. Im folgenden wird ein Filter vorgestellt, der den Spitznamen `<NICK>` in jeder Zeile hervorhebt:

       Match: ^(?:˜\S+˜)<\S+>
       From: <(\S+)>
       To: <˜4$$1˜c>

   Nimmt den Spitznamen und fügt die Farbe &num;4 zwischen `<>` hinzu. `˜c` löscht die Farbe wieder.

## Tastenkürzel

Liste der Tastenkürzel und Tastaturbefehle von &ksirc;.

### Tastenkürzel

Tastenkürzel | Aktion
--- | ---
&Alt;F | Öffnet das Datei-Menü.
&Alt;E | Öffnet das Menü Bearbeiten.
&Ctrl;N | Öffnet ein neues Kanal-/Abfrage-Fenster.
&Ctrl;T | Ticker-Modus
&Ctrl;Q | Beenden
&Ctrl;X | Fenster ausschneiden
&Ctrl;V | Einfügen
&Ctrl;Enter | Eine Nachricht an die letzte Person schreiben, die eine Nachricht an micht gesendet hat
&Ctrl;&Shift;Enter | Eine Nachricht an die vorletzte Person beginnen, die eine Nachricht an micht gesendet hat
&Ctrl;K | Umschalten der Textfarbe (gefolgt von einer Zahl). Text nach dieser Eingabe wird in der gewünschten Farbe dargestellt.
&Ctrl;U | Textattribut unterstrichen ein-/ausschalten. Text nach der ersten Betätigung dieser Tastenkombination wird unterstrichen, bis man die Tastenkombination ein zweites Mal betätigt.
&Ctrl;I | Textattribut kursiv ein-/ausschalten. Text nach der ersten Betätigung wird kursiv gedruckt. Nach der zweiten wird das Attribut wieder ausgeschaltet.
&Ctrl;B | Textattribut fett ein-/ausschalten. Text nach der ersten Betätigung wird fett gedruckt. Nach der zweiten wird das Attribut wieder ausgeschaltet.
&Ctrl;R | Textattribut invertiert ein-/ausschalten. Text nach der ersten Betätigung wird invertiert gedruckt. Nach der zweiten wird das Attribut wieder ausgeschaltet.
Tab | Versucht, den Spitznamen einer Person aus dem angefangenen Wort zu komplettieren. Diese Funktion ist vermutlich von der Shell her bekannt.

## Mitwirkende und Lizenz

&ksirc; Copyright 1997-2001, die &ksirc; Entwickler.

Teile der Dokumentation Copyright 1997, Andrew Stanley Jones

Dokumentation aktualisiert für &kde; 2.2 von Philip Rodrigues phil.rod@@ntlworld.com

Deutsche Übersetzung Frank Schütte F.Schuette@t-online.de

&underFDL; &underGPL;

## Installation

### Wie bekommt man &ksirc;

&ksirc; ist Teil des &kde;-Projektes. Man findet die aktuelle Version von &ksirc; im Paket kdenetwork auf ftp://ftp.kde.org/pub/kde , dem &FTP;-Server des &kde;-Projektes.

### Anforderungen

Für die Installation von &ksirc; benötigt man mindestens die Version 2.2 von &kde;.

Falls man &ksirc; selbst kompilieren und installieren will, benötigt man mindestens die folgenden Programme als Voraussetzung:

- g++ 2.8 / egcs 1.0.3 (oder kompatibel)

- GNU make

- autoconf 2.1

- automake 1.4

- Qt 2.2.x

- KDE 2.1

### Kompilation und Installation

&ksirc; ist Teil des Pakets kdenetwork von &kde; 2.2 und wird mit diesem zusammen installiert. Generell gibt es keinen Grund, den Quelltext von &ksirc; selbst zu kompilieren. Falls man das dennoch möchte oder falls man nur den Quelltext zur Verfügung hat, kann man die Kompilation und Installation, wie unter Linux üblich, bewerkstelligen durch:

    % ./configure
    % make
    % su -c "make install"

&ksirc; verwendet `autoconf` und `automake`, daher sollte es keine Probleme während des Kompilationsprozesses geben. Falls dennoch Probleme auftreten, kann man sich and die &kde;-Entwickler-Mailingliste kde-devel@master.kde.org wenden.