# &kappname; Information

Thomas
Luebking
thomas.luebking@web.de
Thomas
Reitelbach

    tr@erdfunkstelle.de

Deutsche Übersetzung
2005
Thomas Luebking
&FDLNotice;
2005-01-15
2.0.1

&kappname; ist ein Composite-Darstellungsprogramm, welches von &kwin; genutzt wird.

Dieses Handbuch liefert Ihnen einige allgemeine Erklärungen, was es kann, wie es funktioniert und wo die Einschränkungen liegen. Es geht hier nicht darum, Ihnen zu erklären, wie Sie dies benutzen (da es sowieso vollkommen automatisch im Hintergrund abläuft).

KDE
kwin
render engine

## Einleitung

&kappname; basiert auf xcompmgr, Keith Packards Referenzimplementierung zur Verwendung der neuen X-Composite-Funktionen

Ein Composite-Manager fängt die Ausgaben von X-Fenstern ab und rendered sie in ein einzelnes Bild, welches dann auf dem Bildschirm dargestellt wird. Der Vorteil dieser Vorgehensweise ist, dass man beinahe alles mit dem Fensterinhalt anstellen kann, bevor er auf dem Bildschirm dargestellt wird, inkl. Transparenzen und Schatten. Man könnte auch jedes Fenster einfärben oder mit einem Werbebanner versehen, sie kleiner quetschen, unterteilen, Scanlinien hinzufügen oder alles andere vorstellbare.

## Xorg

Sie benötigen zwingend X.org 6.8 oder neuer, damit &kappname; funktioniert. X.org 6.7 oder ältere Versionen werden nicht funktionieren.

### Einrichtung

Sie müssen die Composite-Erweiterung explizit aktivieren. Fügen Sie Ihrer X.org Einrichtungsdatei den Folgenden Eintrag hinzu:

    Section "Extensions"
        Option "Composite" "Enable"
    EndSection

Falls dies von Ihrer Hardware unterstützt wird, dann aktivieren Sie die Hardware-Beschleunigung Ihrer Grafikkarte. Dies wird am besten von NVIDIA und etwas weniger gut von ATI-Karten unterstützt.

    Section "Device"
    ...
    ...
        Option     "RenderAccel" "true"
    ...
    ...
    EndSection

Nun sollte &kappname; verfügbar sein. Weitere Informationen finden Sie in der FAQ.

## Einstellungen

Dieser Abschnitt beschreibt die möglichen einstellbaren Parameter, wie sie sich auswirken und wie performant sie sich verhalten.

### Transparenz

Ein transparentes Objekt lässt Licht durch sich hindurchscheinen. Im Hinblick auf Fenster währe das z. B. die Arbeitsfläche oder darunterliegende Fenster.

Transparenz ermöglicht es, ein bestimmtes Fenster hervorzuheben, eine 3-Dimensionale der Arbeitsfläche zu sehen, bedeckte Fenster weiterhin beobachten zu können und sieht vor allem gut aus :) Der Preis dafür ist allerdings einiges an Systemleistung.

Sie können Transparenz für die folgenden Elemente unabhängig voneinander einrichten:

Aktive Fenster

  Es wird empfohlen, Transparenz für aktive Fenster nicht zu benutzen. Der Hauptgrund dafür ist Geschwindigkeit und weil es für Sie wahrscheinlich irritierend ist, den Inhalt eines transparenten Fensters zu erfassen. Dauernd auf ein transparentes Fenster zu blicken, kann sehr ermüdend sein.

Inaktive Fenster

  Wenn Sie inaktive Fenster transparent erscheinen lassen, wird das jeweils aktive Fenster hervorgehoben und kann leichter auf dem Bildschirm erfasst werden. Wenn Sie allerdings einen niedrigen Wert wählen, könnten Sie Schwierigkeiten haben, inaktive Fenster aufzufinden. Wenn Sie einen sehr niedrigen Wert wählen (<20&percnt;) könnten Sie sogar die Anordnung von Fenstern verwechseln und versehentlich auf einen Ok-Knopf klicken, obwohl Sie nur ein Fenster aktivieren wollten. Optimale Werte liegen meist zwischen 60&percnt; und 80&percnt;.

Fenster verschieben

  Zwar sieht es wirklich grandios aus, wenn ein Fenster fast vollkommen transparent bewegt wird, jedoch ist der Preis dafür sehr hoch, besonders wenn Sie zusätzlich auch noch Schatten aktiviert haben. Probieren Sie die Einstellung aus und wenn Sie den Eindruck haben, das es zu langsam ist, dann nutzen Sie am besten undurchsichtige Fenster beim Verschieben. Dies gilt übrigens auch für Größenänderungen von Fenstern.

Angedockte Fenster

  Da angedockte Fenster normalerweise starr sind und nur selten verschoben werden, hat diese Einstellung kaum Einfluss auf Ihre Systemleistung.

Behandler Fenster, die "im Vordergrund bleiben" als aktiv

  Wenn Sie einstellen, dass ein Fenster über den anderen bleibt, dann wollen Sie dieses meist leicht im Auge behalten können. Es kann also durchaus Sinn machen, das Fenster auf diesem Wege hervorzuheben.

ARGB-Fenster abschalten

  XRender unterstützt Fenster mit einer Alpha-Maske, also transparenten Bereichen. Es gibt derzeit keine oder nur wenige Programme, die diese Funktion wirklich nutzen, da sie nur mit einem Composite-Manager Sinn macht. Dies könnte sich in der Zukunft allerdings ändern.

  Auf der anderen Seite setzen die meisten gtk 1.x-Programme (z. B. xmms) eine solche Alpha-Maske ein, was wiederum in beinahe unbrauchbaren Fenstern resultiert, wenn der Hintergrund des Programms nicht schwarz ist. Daher können Sie diese ARGB-Fenster auch abschalten. Es wird hoffentlich bald einen Patch für GTK geben, um das Problem zu beheben.

### Schatten

Warum sollte irgendwer wollen, dass Fenster einen Schatten werfen??? Nun ja, vielleicht, weil es einfach toll aussieht. Oder weil dadurch Fenster besser voneinander unterschieden werden können ... oder vielleicht doch, weil es einfach toll aussieht ;-)

Schatten aktivieren

  Das Werfen von Schatten kostet natürlich wieder einiges an Systemleistung. Daher können Sie diese Funktion auch abschalten.

Größe aktives Fenster
Größe inaktives Fenster
Größe angedocktes Fenster

  Sie können verschiedene Schattenausmaße für verschiedene Fenstertypen einstellen. Die Werte sind nicht absolut, sondern werden auf die jeweilige Bildschirmauflösung angewandt.

  Im Prinzip können Sie jeden gewünschten Wert einstellen (wenn Sie die Einrichtungsdatei mit einem Editor bearbeiten), aber je größer der Schatten wird, desto größer ist auch die Leistungseinbuße.

Vertikaler Versatz
Horizontaler Versatz

  In der Voreinstellung wird ein Schatten um das gesamte Fenster gezeichnet, so als würde das Licht von der Mitte des Fensters ausgehen. Benutzer, die diese Funktion bereits von &MacOS; kennen, möchten vielleicht lieber einen vertikalen Versatz haben, &Windows;-Benutzer mögen vielleicht lieber einen in Richtung rechts-unten. Experimentieren Sie einfach mit den Werten, bis Sie zufrieden sind.

Farbe für Schatten

  Normalerweise erscheint ein Schatten als Ergebnis von fehlendem Licht in Grautönen (die maximale Schattenfarbe ist daher Schwarz). Aber es geht hier ja nunmal um eine virtuelle Welt, also warum sollte man die Schattenfarbe nicht anpassen können?

Schatten beim Verschieben abschalten

  Aktivieren Sie diese Einstellung, wenn Sie mehr Leistung beim Verschieben von Fenstern benötigen (besonders, wenn Sie transparente Fenster benutzen).

Schatten bei Größenänderung abschalten

  Es ist klug, diese Einstellung aktiviert zu haben, egal ob Sie transparente Fenster benutzen oder nicht.

### Effekte

Aufblendende Fenster
Bei Änderungen der Durchsichtigkeit zwischendurch ausblenden

  Anstatt ein Fenster einfach anzeigen zu lassen, kann es auch langsam eingeblendet werden. Das sieht wirklich imponierend aus, aber genauso imponierend ist auch der Preis dafür :(

Einblendegeschwindigkeit
Ausblendegeschwindigkeit

  Es macht Sinn, hier eine möglichst schnelle Einblende- und eine langsame Ausblendegeschwindigkeit zu wählen.

## Probleme

Die gesamte Composite-Erweiterung ist noch ziemlich neu. Es können durchaus viele Probleme auftreten, möglicherweise sogar X zum Absturz bringen! Daher empfehlen wir dringend, die Erweiterung nicht auf kritischen Systemen zu aktivieren. Falls Sie ein möglicherweise leicht instabiles System riskieren können, dann haben Sie hiermit die Möglichkeit, Ihren Arbeitsalltag zu verschönern.

Sie werden wahrscheinlich das ein oder andere Problem bemerken - und bekommen natürlich auch Lösungen:

Ich habe X.org 6.8.x, aber &kappname; startet nicht

Sie müssen die Composite-Erweiterung explizit einschalten. Fügen Sie einen neuen Abschnitt zu /etc/X11/XorgConfig hinzu:

    Section "Extensions"
       Option "Composite" "Enable"
    EndSection

Gut, &kappname; funktioniert nun, ist aber furchtbar langsam

Falls dies von Ihrer Grafikkarte unterstützt wird, schalten Sie die Hardwarebeschleunigung ein

    Section "Device"
    ...
    ...
    Option     "RenderAccel" "true"
    ...
    ...
    EndSection

Wenn es immer noch langsam ist, passen Sie die Speicherverwendung an. Reduzieren Sie entweder die Bit-Tiefe (z. B. von 24 auf 16) oder die Auflösung (z. B. von 1280x1024 auf 1024x768).

Beachten Sie bitte, dass der gravierendste Faktor derzeit der CPU-Cache zu sein scheint.

Nachdem ich die Composite-Erweiterung aktiviert habe, lassen sich keine GLX-Programme mehr starten. Ich habe eine NVIDIA-Karte

NVIDIA hat einige Probleme aus der Welt geschafft, indem sie die GLX-Unterstützung deaktiviert haben, wenn Composite aktiv ist. Die Reaktivierung ist zwar möglich, verursacht aber möglicherweise Probleme mit einigen Kernel/Treiber/GPU-Kombinationen.

    Section "Device"
    ...
    ...
    Option  "AllowGLXWithComposite" "true"
    ...
    ...
    EndSection

Ich wollte ein SDL-Spiel (ohne GL) spielen, z. B. scummvm, aber mit aktiviertem compmgr ist nur ein Schatten sichtbar.

Dies ist ein Problem mit dem PictType der von SDL zurückgegeben wird.

Lösung:

    Anstatt scummvm direkt aufzurufen, nutzen Sie
    SDL_VIDEO_X11_VISUALID=0x24 scummvm. Dadurch wird SDL angewiesen, ein unterstütztes Format zurückzuliefern und Sie können wieder wie gewohnt spielen.

Programm XXX lässt sich nicht mehr starten, seit die Composite-Erweiterung aktiv ist

Programm YYY lässt X abstürzen, seitdem die Composite-Erweiterung aktiv ist

Programm ZZZ sieht seltsam aus, seit die Composite-Erweiterung aktiv ist

Die Composite-Erweiterung ist immer noch sehr experimentell!

Lösung:

Probieren Sie dies: `XLIB_SKIP_ARGB_VISUALS=1 programmName`

Programme, die dafür bekannt sind, mit Composite Schwierigkeiten zu haben:

- Alle gtk1-Programme (z. B. gmplayer, xmms, gaim). Die Programme starten nicht, sehen sehr seltsam aus oder lassen X abtürzen.

- &kuickshow; - zeigt nur einen schwarzen Rahmen an

- &Qt; Designer - lässt X abstürzen

- &kopete; - lässt X abstürzen

- &kolf; - lässt X abstürzen

Ich möchte ein Video ansehen, sehe aber nur Artefakte im Video-Fenster

Probieren Sie xv als Video-Backend. Das ist der Überlagernde Modus, in dem das Videobild direkt in den Graphikspeicher der Graphikkarte geschrieben wird.

Es gibt hoffentlich bald eine Lösung für dieses Problem. Die besten Ergebnisse habe ich bisher mit Xine gemacht. Aber Videos in einem transparenten Fenstern anzusehen ist wirklich sehr langsam.

## Dank und Lizenz

### Autoren

Thomas Luebking baghira-style@gmx.net - Editor

&underFDL; &underGPL;