# Handbuch zum KDE Fenstermanager Kwm

Das KDE Team
0.19.15, 29. November 1998

Diese Dokumentation wurde zuletzt an Kwm Version 0.19.15 angepaßt. Bitte senden Sie alle Kommentare und Erweiterungen an den Autor.

Deutsches Handbuch zum KDE Fenstermanager Kwm

KDE
Kwm
Fenstermanager
Windowmanager

## Einführung

Dieses Dokument enthält allgemeine Informationen über Kwm, eine Funktionsübersicht und technische Informationen, die für Entwickler der Kwm Kontrollmodule und des Systemsound-Moduls nützlich sind.

Für weitere Informationen, wie man Kwm auf niedriger Ebene konfiguriert (nur für die Entwickler von kwinconfig interessant), sehen Sie bitte in die erzeugte Kwmrc und in den Quellcode.

Für alle Programmierer gilt: sehen Sie in `Kwm.h` aus libkdecore nach, um Informationen zu erhalten, wie Sie Kwm für Ihre Zwecke nutzen können. Für Module ist die Klasse `KwmModuleApplication` ein gutes Beispiel, wie man Module schreibt.

### Funktionalität

Kwm ist der Fenstermanager für KDE. Unter anderem bietet er:

- Vollständige Integration in KDE.

- Eine komplette Steuerung über Tastenkurzbefehle

- Modernes Erscheinungsbild mit einzigartigen Titelleisten und Symbolen, die nicht in kryptischen Konfigurationsdateien eingestellt werden müssen.

- Eine bequeme Mini-Befehlszeile mit Anzeige bisheriger Befehle für einen schnellen Zugriff auf eine Shell.

- Konfiguration zur Laufzeit, ohne daß ein Neustart nötig wäre. Dies schließt sowohl das Erscheinungsbild wie auch Tastenkurzbefehle ein.

- Fenstermanager der zweiten Generation. Kwm nutzt eine moderne GUI-Bibliothek für seine Fensterelemente (Knöpfe, Menüs, Listboxen usw.) anstatt der Aufblähung des Quellcodes mit einer proprietären oder allzu simplen Xlib-Implementierung.

- Ausgezeichnete Fokusbehandlung, sogar wenn Sie auf verschiedenen virtuellen Arbeitsflächen arbeiten (nie wieder Arbeitsfläche-wechseln-und-Fokus-verloren, wie das bei anderen Fenstermanagern passiert).

- Sitzungsmanagement und einen Zwischenspeicher für dafür ausgelegte Anwendungen. Dieser Zwischenspeicher ist in der Lage, Ihre Anwendungen im letzten Zustand wiederherzustellen. Auch mit den Eigenschaften des Fensters (maximiert, angeheftet, als Symbol usw.) und auf der richtigen virtuellen Arbeitsfläche.

- Modernes modulares Konzept, das den X-Server dort nutzt, wo es möglich ist. Kwm-Module sind sehr unabhängig: sie können vor oder nach Kwm gestartet werden. Kwm kann neu gestartet werden, während die Module laufen und bindet diese danach wieder automatisch ein.

- Einige mächtige Module wie etwa die KDE Kontrolleiste (die auch eine Programmleiste umfaßt) und eine sehr hübsche Pager-Anwendung zur Verwaltung der virtuellen Arbeitsflächen.

- Bietet einige Erweiterungen für den X-Server in `Kwm.h`: Jetzt können sich Anwendungen selbst maximieren (oder anheften, die Dekoration ein-/ausschalten oder was auch immer) und Mini-Symbole definieren. Das funktioniert auch für angezeigte Fenster.

## Die Benutzung von Kwm

### Befehlszeilenparameter

Kwm bietet folgende Befehlszeilenparameter:

-version

  zeigt die Versionsnummer, inklusive Patchlevel; startet Kwm nicht

-nosession

  startet Kwm, ohne die vorige Sitzung wiederherzustellen

### Tastenkurzbefehle

Die globale gültigen Kurzbefehle sind über das Kontrollzentrum einstellbar. Weitere sind möglich.

Alt-Esc oder Control-Esc

  Manager für aktuelle Sitzung mit Abmelden-Knopf

Alt-Tab und Alt-Shift-Tab

  durch die Fenster der aktuellen Arbeitsfläche wechseln

Ctrl-Tab und Ctrl-Shift-Tab

  durch die virtuellen Arbeitsflächen wechseln (kann in Kwmrc ausgeschaltet werden)

Alt-F2

  öffnet eine Mini-Befehlszeile

Alt-F3

  Menü für Fensteroperationen

Alt-F4

  Fenster schließen

Ctrl-F&lsqb;1..8&rsqb;

  auf virtuelle Arbeitsfläche wechseln

Ctrl-Alt-Esc

  Kill-Modus für Fenster (Cursor wird zum Piratenkopf)

### Mauskontrolle

Klicken Sie auf den Rand oder die Titelleiste

- linke Maustaste: das Fenster aktivieren und nach vorne holen

- mittlere Maustaste: das Fenster aktivieren und nach hinten stellen

- rechte Maustaste: das Menü für Fensteroperationen anzeigen, wenn das Fenster aktiv ist; ansonsten aktivieren, ohne es nach vorne zu holen

Doppelklick auf die Titelleiste schaltet "maximiert"an/aus

Ziehen der Titelleiste

- linke Maustaste: verschiebt das Fenster und holt es nach vorne

- mittlere Maustaste: verschiebt das Fenster, ohne es in den Vordergrund zu holen

Ziehen an Ecken oder Kanten

- linke Maustaste: ändert die Größe des Fensters und holt es nach vorne

- mittlere Maustaste: ändert die Größe des Fensters, ohne es in den Vordergrund zu holen

Das gesamte Fenster

- Alt-linke Maustaste: verschiebt das Fenster

- Alt-mittlere Maustaste: holt das Fenster nach vorne

- Alt-rechte Maustaste: ändert die Größe des Fensters

Knöpfe auf den Titelleisten (konfigurierbar)

- Menü: Fensteroperationen

- Anheften: heftet an oder macht das Anheften rückgängig (Fenster bleibt auf dem Bildschirm, wenn Sie die Arbeitsfläche wechseln)

- Minimieren: als Symbol darstellen

- Maximieren:

  - linke Maustaste: maximieren

  - mittlere Maustaste: vertikal maximieren

  - rechte Maustaste: horizontal maximieren

- Schließen: schließt das Fenster (Anwendungen könnten nachfragen, ob sie etwas speichern sollen)

### Mini-Befehlszeile

Drücken Sie `Alt-F2`, um ein kleines Fenster mit einer Befehlszeile zu öffnen. Geben Sie ein Unix-Shellkommando ein (die SHELL-Umgebungsvariable wird benutzt, um zu bestimmen, welche Shell den Befehl ausführt), oder eines der folgenden:

- Geben Sie eine URL ein, um ein KFM-Fenster mit der angegebenen URL zu öffnen. Sie können das `http://` oder `ftp://` weglassen, wenn der Servername mit www. oder ftp. beginnt.

- Geben Sie `man:`Befehl ein, um ein KFM-Fenster mit der Handbuchseite des Befehls anzuzeigen.

Sie können die `Pfeil-nach-oben`-Taste benutzen, um vorher eingegebene Befehle zu wiederholen. Sie können auch die `Tab`-Taste benutzen, um teilweise eingegebene Dateinamen zu vervollständigen wie in vielen Shells.

### Befehle

Sie können Kwm-Befehle senden mit:

`Kwm::sendKwmCommand(QString)` (aus KDE-Anwendungen)

oder

`Kwmcom Beffehl` (von der Befehlszeile)

Das ist speziell für Entwickler von kglobalshortcut interessant.

Derzeit versteht Kwm folgende Befehle:

- refreshScreen aktualisiert den Bildschirm

- darkenScreen verdunkelt den Bildschirm. Vorsicht: das macht die Arbeitsumgebung unempfänglich für Tastatur- und Mauseingaben

- logout zeigt den Abmelden-Dialog an

- commandLine öffnet die Mini-Befehlszeile

- taskManager zeigt das Fenster "Aktuelle Sitzung" an

- configure lädt die Konfiguration aus Kwmrc erneut

  - winMove

  - winResize

  - winRestore

  - winIconify

  - winClose

  - winSticky

  - winOperations

  Diese Befehle betreffen das derzeit aktive Fenster und tun ziemlich genau das, was Sie erwarten würden. (`winOperations` zeigt das Menü für Fensteroperationen an.)

  - deskUnclutter

  - deskCascade

  Diese Befehle reorganisieren die Fenster auf der Arbeitsfläche.

- desktop&lsqb;1-8&rsqb; schaltet zur angegebenen Arbeitsfläche

  - desktop+1

  - desktop+2

  - desktop-1

  - desktop-2

  - desktop&percnt;2

  Diese Befehle schalten zwischen den Arbeitsflächen um. `desktop&percnt;2` schaltet zwischen einer Arbeitsfläche mit ungerader und der mit der nächsten geraden Zahl um. Das bedeutet, zwischen 1 und 2 oder zwischen 3 und 4. Das ist nützlich, um "Abwärts" und "Aufwärts" in einer virtuellen n*2-Matrix zu emulieren, die vom KDE Pager benutzt wird. In ähnlicher Weise bedeutet "`desktop+2`" "rechts" und "`desktop-1`" "links".

- go:anderes&lowbar;programm Der Befehl go verläßt Kwm samt allen seinen Modulen und startet stattdessen anderes&lowbar;programm. Dabei kann anderes&lowbar;programm der Name eines alternativen Fenstermanagers sein wie z.B. fvwm. Beachten Sie dabei: Sie können keine Pfadangaben an den Befehl go weitergeben, sondern nur den Namen des ausführbaren Programms, da `Kwmcom` auf 20 Zeichen beschränkt ist.

## Konfiguration

Kwm kann mit dem KDE Kontrollzentrum konfiguriert werden. Öffnen Sie den Bereich "Fenster", um mit den verschiedenen Konfigurationsoptionen zu arbeiten. Zur Konfiguration der Arbeitsfläche, öffnen sie "Kontrolleiste". Wenn Sie lieber eine Konfigurationsdatei bearbeiten, erklärt dieser Abschnitt die Optionen in der `Kwmrc`-Datei, die sich in `˜/.kde/share/config` befindet.

### Kwmrc

Die `Kwmrc`-Konfigurationsdatei ist in folgende Abschnitte aufgeteilt:

- Buttons

- General

- Session

- Desktop

- Decoration

- Focus

- Sticky

#### &lsqb;Buttons&rsqb;

Dieser Abschnitt bestimmt die Anordnung der Knöpfe für die Fensterkontrolle in der Titelleiste. Er enthält Zeilen der Form

ButtonX=Knopfname

wobei X ein Buchstabe von A bis F ist, und Knopfname einer von: `Menu, Sticky, Iconify, Maximize, Close, Off`. Die Knöpfe A, B und C erscheinen auf der linken Seite der Titelleiste, und D, E und F auf der rechten.

#### &lsqb;General&rsqb;

Dieser Abschnitt definiert eine Reihe von Einstellungen:

- AltTabStyle=`KDE&verbar;CDE` (Voreinstellung ist KDE)

  Ein Alt+Tab-Verhalten im CDE-Stil, das zusammen mit der "klassischen" Fokusregelung benutzt werden kann. Der CDE-Stil ist Standard bei Einstellung der klassischen Fokusregelung, da der KDE-Stil dafür nicht viel Sinn hat. Für alle anderen Fokuseinstellungen können Sie den Stil wählen.

- AutoRaise=Wert (in Millisekunden)

  Wenn `FocusPolicy` auf `FocusFollowMouse` gestellt ist, gibt dieser Punkt die Zeit an, wenn ein Fenster den Fokus durch die Maus erhält, bis das Fenster in den Vordergrund geholt wird.

- BorderSnapZone=Wert (in Pixel)

  Wenn der Benutzer ein Fenster positioniert und eines der Fensterränder dem Bildschirmrand nahe kommt, rastet das Fenster am Rand ein. Wert bestimmt, wie nahe das Fenster dem Bildschirmrand sein muß, um einzurasten.

- Button3Grab=`on&verbar;off`

  Beim Wert `off`, werden Fensteroperationen mit der rechten Maustaste ausgeschaltet, so daß das Anwendungsfenster Maustasten-Ereignisse empfangen kann.

- ControlTab=`on&verbar;off`

  Der Wert `on` gibt dem Benutzer die Möglichkeit, `Strg`+`Tab` zu drücken, um zwischen virtuellen Arbeitsflächen umzuschalten.

- ElectricBorder=Wert (in Millisekunden)

  Wenn Sie mehr als eine virtuelle Arbeitsfläche haben, gibt die ElecticBorder die Möglichkeit, zwischen ihnen mit einer Mausbewegung an den Rand des Bildschirms den Arbeitsflächenwechsel. Wert gibt die Zeit an, während der Sie den Mauszeiger am Rand lassen müssen, bis die Arbeitsfläche wechselt. Ein Wert von -1 stellt diese Funktion aus.

- ElectricBorderPointerWarp=`NoWarp&verbar;MiddleWarp&verbar;FullWarp`

  Wenn die `ElectricBorder`auf "on" steht, geben Sie hier eine der oben genannten Optionen an, damit der Mauszeiger nach dem Arbeitsflächenwechsel entweder gar nicht (`NoWarp`), nur halbwegs (`Middlewarp`) oder ganz (`FullWarp`) in der Mitte des Bildschirms positioniert wird.

- ElectricBorderNumberOfPushes=Wert (Voreinstellung ist "5")

  Die Anzahl der Randberührungen, die innerhalb der bei `ElectricBorder` angegebenen Zeitspanne erfolgen müssen, damit die virtuelle Arbeitsfläche gewechselt wird, ohne ein Fenster zu verschieben.

- FocusPolicy=`ClickToFocus&verbar;FocusFollowMouse`

  `ClickToFocus` gibt an, daß in das Fenster geklickt werden muß, um den Fokus auf das Fenster zu richten. `FocusFollowMouse` gibt immer dem Fenster unter der Maus den Fokus.

  `ClassicFocusFollowsMouse` bedeutet, daß kein Fenster ohne Maus den Fokus erhält. Die Kwm-Einstellung focusFollowMouse überträgt den Fokus dagegen auf neue Fenster oder solche, die mit Alt-tab angesteuert werden, um mehr Kontrolle über die Tastatur zu erlauben.

- MaximizeOnlyVertically=`off&verbar;on`

  Wenn `on`, beschränkt diese Einstellung die Fenstervergrößerung auf die vertikale Richtung.

- ResizeAnimation=`1..10 (Maximale Geschwindigkeit)`

  Wenn auf `on`, werden Fenster beim Vergrößern und Verkleinern graphisch animiert. (Voreinstellung ist 1)

- RstartProtocol=`… (Voreinstellung ist "`rstart -v`")`

- ShapeMode=`off&verbar;on`

  Wenn ShapeMode auf `on` steht, benutzt Kwm standardmäßig benutzerdefinierte Bilder für die Fensterränder (siehe unten).

  - ShapePixmapTop=pixmap

  - ShapePixmapBottom=pixmap

  - ShapePixmapLeft=pixmap

  - ShapePixmapRight=pixmap

  - ShapePixmapTopLeft=pixmap

  - ShapePixmapTopRight=pixmap

  - ShapePixmapBottomLeft=pixmap

  - ShapePixmapBottomRight=pixmap

  Diese Optionen geben an, welche Bilder an den entsprechenden Seiten/Ecken der Fenster angezeigt werden, wenn `ShapeMode` auf `on` steht. pixmap sollte der Name einer Pixmapdatei (.xpm) sein, die sich in `share/apps/Kwm/pics` befinden muß.

  Die Kwm-Quelltexte beinhalten einen Ordner `images`, der ein Beispiel für die Shape-Erweiterung enthält.

- TitlebarLook=`shaded&verbar;plain&verbar;pixmap`

  Diese Einstellung bestimmt das Erscheinungsbild von Fenstertitelleisten.. Wählen Sie `pixmap`, damit Kwm ein benutzerdefiniertes Bild in der Titelleiste anzeigt, wie im folgenden beschrieben.

- TitlebarPixmapActive=pixmap

  bzw.

- TitlebarPixmapInactive=pixmap

  Diese Optionen geben an, welche Bilder in den Titelleisten von aktiven und inaktiven Fenstern angezeigt werden, wenn `TitleBarLook=pixmap`.

- TitleAnimation=Wert (in Millisekunden)

  TitleAnimation weist Kwm an, lange Fenstertitel (zu lang für den sichtbaren Bereich der Titelleiste) hin und her zu bewegen, um sie ganz anzuzeigen. Wert gibt die Geschwindigkeit der Animation an. Stellen Sie auf 0, um die Animation abzuschalten.

- TitlebarDoubleClickCommand=`winMaximize&verbar;winShade&verbar;winMo ve&verbar;winResize&verbar;winRestore&verbar;winIconify&verbar;winClose&verbar;winSticky&verbar;winOperations`

  Diese Option erlaubt Ihnen anzugeben, welches Fensterverhalten stattfinden soll, wenn der Benutzer doppelt auf die Titelleiste klickt.

- TraverseAll=`on&verbar;off`

  Beim Wert `on` wechselt `Alt`-`Tab` durch alle Fenster auf allen Arbeitsflächen. Wenn auf `off`, wechselt `Alt`-`Tab` nur durch die Fenster der aktuellen Arbeitsflächen.

- WindowMoveType=`Opaque&verbar;Transparent`

  Diese Option kontrolliert das Aussehen von Fenstern beim Verschieben. `Opaque` zeigt das ganze Fenster, während `Transparent` nur einen Rahmen darstellt.

- WindowPlacement=`cascade&verbar;interactive&verbar;manual&verbar;random&verbar;sma rt`

  Diese Option bestimmt, wie Kwm Fenster auf der Arbeitsfläche plaziert, wenn sie zum ersten Mal geöffnet werden. `manual` läßt den Benutzer das Fenster plazieren. `interactive` nimmt zusätzlich einen Prozentwert wie z.B.:

  `WindowsPlacement=interactive,25`

  Mit Plazierung auf dem Wert `interactive` benutzt Kwm den `smart`-Algorithmus, um das Fenster zu plazieren, solange das Fenster andere nicht um mehr als die angegebene Prozentzahl überdecken würde. In diesem Fall wird `manual`-Plazierung gewählt, damit der Benutzer das Fenster selbst plazieren kann. Die Prozentzahl kann größer als 100 sein.

  Die anderen Optionen lassen Kwm das Fenster plazieren.

- WindowSnapZone=Wert (in Pixeln)

  Wenn der Benutzer ein Fenster positioniert und einer der Fensterränder den Rändern eines anderen Fensters nahe kommt, schnappt der Rand des zu verschiebenden Fensters am Rand des anderen Fensters ein. Wert gibt an, wie nahe sich die Fenster sein müssen, damit dieser Effekt eintritt.

#### &lsqb;Session&rsqb;

- proxyignore=`xemacs,xterm,…,`

  Eine durch Kommas unterteilte Liste von (nicht-KDE) Anwendungen, deren Zustand (Fenstereigenschaften) nicht gespeichert werden sollen, wenn sich der Benutzer abmeldet.

#### &lsqb;Desktop&rsqb;

Dieser Abschnitt definiert die Anzahl der virtuellen Arbeitsflächen, deren Namen und Positionen. Er enthält Zeilen wie die folgenden:

- NumberOfDesktops=Wert

  Gibt die Anzahl der virtuellen Arbeitsflächen an. Derzeit unterstützt Kwm bis zu 8 Arbeitsflächen.

- Desktop&num;&lsqb;C&rsqb;=Name

  Gibt den Namen von Desktop &num; an, zum Beispiel `Desktop1[C]=Eins` die Arbeitsflächen sind von 1-8 nummeriert.

- Desktop&num;Region=Geometrie

  Gibt die Geometrie für Desktop &num; an; zum Beispiel

  `Desktop1Region=101+0+923+722`

Beachten Sie, daß Überschreiben der "Desktop Regions" wenig Auswirkungen haben wird, da kpanel (die Kontrolleiste) beim Start jedesmal als vernünftig angesehene Werte für die aktuelle Arbeitsfläche an Kwm melden wird. Sobald Sie sich vom System abmelden, wird Kwm diese Einstellungen speichern.

#### &lsqb;Decoration&rsqb;

- noDecorationTitles=,

- tinyDecorationTitles=,

- noDecorationClasses=,

- tinyDecorationClasses=,

#### &lsqb;Focus&rsqb;

- noFocusTitles=,

- noFocusClasses=,

#### &lsqb;Sticky&rsqb;

- stickyTitles=,

- stickyClasses=,

Jede Eigenschaft erlaubt Ihnen, eine durch Kommas getrennte Liste von reglären Ausdrücken anzugeben. Ein Fenster, dessen Titel oder Klasse dem definierten Ausdruck entspricht, wird dann entsprechend dekoriert.

Beachten Sie: Diese Hinweise betreffen jeweils nur neue Fenster. Vergessen Sie nicht, `kwmcom configure` aufzurufen oder `kwm` neu zu starten, nachdem Sie die Datei kwmrc geändert haben.

Statt die Konfigurationsdatei manuell zu bearbeiten, sollten Sie vielleicht eher das Dienstprogramm `kstart` benutzen.

## Sound-Ereignisse

Kwm erzeugt einige Sound-Ereignisse, die in einem Systemsound-Modul genutzt werden können. Derzeit sind die folgenden Sound-Ereignisse implementiert:

- Fenster minimieren

- Fenster wiederherstellen

- Fenster maximieren

- Fenster maximieren aus

- Fenster anheften

- Fenster anheften aus

- Fenster neu

- Fenster löschen

- Neues Dialogfenster

- Dialogfenster löschen

- Fenster einrollen

- Fenster ausrollen

- Abmelden

- Abmelden-Nachricht

## Oft gestellte Fragen

### Warum sollte ich Kwm benutzen?

Ich habe mehrere Tage damit zugebracht, 10 verschiedene Fenstermanager zu konfigurieren. Jetzt habe ich 678 Zeilen in meinen Konfigurationsdateien, und Sie kommen daher und möchten mir meinen Fenstermanager wegnehmen!

Antwort: Sie müssen nicht, es ist nur ein kostenloses Angebot. KDE unterstützt alle derzeitigen Fenstermanager, aber um den gesamten Nutzen daraus zu ziehen, empfehlen wir, daß Sie Kwm benutzen. Weiteres siehe unter Funktionalität.

### Warum kann ich keine neuen Tastenkombinationen für Anwendungen definieren?

Antwort: Weil es nicht die Aufgabe des Fenstermanagers ist. Wenn eine KDE Anwendung die Klasse KGlobalAccel aus libkdecore benutzt, dann hat sie einfachen Zugang zu allen systemweit gültigen Tastenkürzeln.

### Warum sieht Kwm so ähnlich aus wie Windows 95?

Antwort: Hoppla, ist das so? Mal sehen… (Matthias versucht, jemanden zu finden, der Windows 95 hat, weil er selbst Windows 95 auf keinem seiner Computer hat, hmm, niemand hat hier Windows 95. Na ja, mal von einer alten Linux-Distribution fvwm95-2 installieren…) Nein, das kann ich überhaupt nicht bestätigen. Kwm sieht viel hübscher aus und bietet mehr Fenstermanagement-Funktionalität im Kern.

### Ist es möglich, KDE-Erweiterungen zu anderen Fenstermanagern hinzuzufügen?

Antwort: Ja, ist es. Sie müssen einfach `Kwm.h` und `Kwm.C` aus `libkdecore` durchsehen und Ihren bevorzugten Fenstermanager erweitern, um auf die dortigen Anforderungen richtig zu reagieren. Wir haben gehört, daß einige Fenstermanager bereits ein paar oder sogar die meisten Hints unterstützen.

### Unterstützt Kwm schattierte Fenster wie z.B. OpenStep?

Antwort: Ja.

## Mitarbeiter

### Entwickler

`Matthias Ettrich`

### Autoren

`Matthias Ettrich`

`Stephen Schaub` -- Bearbeiter

`Kalle Dalheimer` -- Bearbeiter

`Robert Williams` -- Bearbeiter

### Übersetzer

`Oliver Hensel` -- Erste deutsche Übersetzung

`Thomas Diehl` -- Redaktion und Neubearbeitung der Übersetzung