Xorg und echte Transparenz

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der TIPPs & Tricks Sammlung.
Terminals / Shells X Portage System Dateisysteme Kernel Netzwerk Sonstiges alphabetischer Tipp Index


Inhaltsverzeichnis

[Bearbeiten] Anleitung für Transparenz in X.org 6.8

[Bearbeiten] Bemerkung

In neueren Versionen von Xorg ist Transparenz als Standard aktiviert. In Kde ab 3.5 kann man es zB aktivieren unter den Fenstereinstellungen.

[Bearbeiten] Einleitung

Dies ist eine Zusammenfassung von http://forums.gentoo.org. Es geht darum, den Grafikserver X.org so zu konfigurieren, dass neue Effekte wie u.a. Transparenz für alle Fenster angezeigt werden. Diese Erklärung bezieht sich zwar auf Gentoo, aber es sollte auch unter jeder anderen Distribution mit X.org funktionieren.

!Achtung! Durch Aktivieren der Transparenzen unter Xorg kann es zum Abstürzen des X-Servers kommen.

[Bearbeiten] Erster Schritt

Als Erstes muss X.org 6.8 unter Linux installiert und gestartet werden. In Gentoo macht man das am Besten in einer Root-Konsole mit:

emerge xorg-x11

Wenn X.org fertig installiert ist, kann es sofort benutzt werden. Sollte X.org schon vorher installiert gewesen sein, wird die Datei /etc/X11/xorg.conf benutzt. Falls XFree86 benutzt wurde, wird X.org "/etc/X11/XF86Config" nehmen, aber für später wird es besser sein, die Datei in xorg.conf umzubenennen.

Um X.org zu starten, wird so vorgegangen, wie es von X gewohnt ist:

startx

Das Tolle ist, es werden schon einige neue Vorteile von X.org benutzt, ohne die Konfiguration zu ändern. Beispielsweise wird nun http://freedesktop.org/Software/XDamage gebraucht, was die Bildschirmdarstellung effizienter macht als seither (schön wäre es, wenn Anwendungen das bald nativ unterstützen würden). Um das Potential von X.org auszuschöpfen muss aber noch feingetuned werden.

[Bearbeiten] Zweiter Schritt

Einstellen der X Composite Erweiterung - öffne die xorg.conf in einem Texteditor deiner Wahl (hier nano):

nano -w /etc/X11/xorg.conf

Nun füge die folgenden Zeilen außerhalb der angegebenen Sektionen ein (ganz oben oder unten ist egal)

Datei: /etc/X11/xorg.conf
Section "Extensions"
    Option "Composite" "Enable"
EndSection


Die Option "RENDER" "Enable", die bisher ebenfalls angegeben war, wird – und wurde – niemals benötigt. Diese Erweiterung ist bereits standardmäßig aktiviert und ist unter anderem für die Kantenglättung der Schriftarten zuständig.

Das nächste Mal, wenn X gestartet wird, sollte die X Composite Erweiterung aktiviert sein. Diese Erweiterung erlaubt es, alle Zeichnungen zuerst in einen Offscreen-Zwischenspeicher zu laden, die Zeichnung dort zu beenden und es dann zum aktuellen Framebuffer zu schicken. Somit ist flimmerfreies Zeichnen möglich und ein paar andere Effekte (beispielsweise echte Transparenz oder Schatten, zu denen wir noch kommen!).

Um sicherzugehen, ob die Erweiterung geladen wurde, wirf einen Blick in /var/log/Xorg.0.log:

grep COMPOSITE /var/log/Xorg.0.log

Steht dort folgendes, ist alles geladen:

(II) Initializing built-in extension COMPOSITE

[Bearbeiten] Dritter Schritt

Echte Transparenz und Schatten aktivieren. Endlich ist es soweit, für deine Arbeit belohnt zu werden! Da X.org 6.8.0 relativ neu ist, unterstützen viele Fenstermanager X.orgs neue Fähigkeiten noch nicht. Deswegen muss man zwei spezielle Programme benutzen. Als erstes xcompmgr, das mittlerweile nicht mehr als 'unstable' maskiert ist:

emerge xcompmgr

Und zweitens transset:

echo "x11-misc/transset ~x86" >> /etc/portage/package.keywords
emerge transset

Somit hast du alles für Schatten, coole Ausblend-Effekte und echte Transparenz. Zuerst wird xcompmgr gestartet. Tu das von einem Terminal in X.org:

xcompmgr -c

Mit diesem Befehl sieht man die Effekte bei laufendem xcompmgr – wenn du die Effekt nicht magst kannst du xcompmgr mit "Strg+C" stoppen. Wenn sie dir gefallen, (nach "Strg+C"):

xcompmgr -c &

Mit Hilfe des "&" wird xcompmgr im Hintergrund ausgeführt; beendet wird es dann mit "kill" oder "killall".

Dies wird xcompmgr mit fein gestrichenen Schatten anschalten. Ihr habt nun schöne kleine gestrichene Schatten bei allen Fenstern. Für raue Schatten kann optional -s benutzt werden.

Meine (GlaDiaC) Einstellungen für xcompmgr mit Schatten und Ausblendung sind:

xcompmgr -cCfF -r7 -o.65 -l-10 -t-8 -D7 &

Als nächstes braucht man ein paar schöne Fenster. Dazu in derselben Konsole:

transset

Wenn der Mauszeiger sich geändert hat, klicke einfach ein Fenster an, durch das du durchsehen willst. Transset kann auch ein Argument übergeben werden, wie stark die Transparenz sein soll:

transset .2

(Merke: 0 = volles Durchsehen, 1 = keine Transparenz)

Um die Einstellung rückgängig zu machen, klicke einfach noch mal auf das Fenster, nachdem transset gestartet wurde.

Um all das zu deaktivieren:

killall xcompmgr

Dies beendet xcompmgr und alle Effekte werden wieder deaktiviert.

Das ist erst der Anfang von dem, was X.org 6.8 bieten kann. Wenn Fenstermanager und Anwendungen anfangen diese Erweiterungen voll zu unterstützen, braucht ihr Programme wie transset nicht mehr. Es wird Programme geben, die Transparenz nutzen und zwar so intelligent, dass beispielsweise nur der Inhaltsbereich einer Konsole transparent wird, nicht aber die ganze Konsole. Manche Anwendungen, z.B. kwin (der KDE Fenstermanager) werden dahingehend portiert.

[Bearbeiten] Spezielle Hinweise

Wenn du eine Grafikkarte von Nvidia hast und den Nvidia-Treiber benutzt, sollte folgendes in der "Device section" der xorg.conf stehen:


Datei: /etc/X11/xorg.conf
 Option      "RenderAccel" "true"


Dadurch gibt es einen merklichen Geschwindigkeitsanstieg in Zusammenhang mit der Composite Erweiterung. Leider gilt der Nvidia-Treiber in Bezug auf diese Funktion als instabil.

Für Benutzer von ATI-Grafikkarten mit dem ATI-Treiber gilt es, folgendes in der "Device section" der xorg.conf hinzuzufügen:

Datei: /etc/X11/xorg.conf
 Option      "backingstore" "true"


"Backing store" ist ein Mechanismus, bei dem die Pixelpositionen von überfüllten Bildbereichen vom Server gespeichert werden. Somit hat es der Server leichter, Signale an die X-Client zu schicken, wenn das Fenster nochmals angezeigt werden muss.

[Bearbeiten] Probleme

[Bearbeiten] NVidia & Xorg

Unter Umständen funktionieren OpenGL-Programme, die die GLX-Erweiterung nutzen (z. B. glxgears), nicht. Das Hinzufügen der folgenden Option zur Grafikkarten-"device"-Sektion kann das Problem beheben:

Option "AllowGLXWithComposite" "true"

[Bearbeiten] Proprietäre ATI-Treiber & Xorg

Leider sind die binären ATI-Treiber (noch) nicht kompatibel zu Xorg 6.8.1 mit aktivierter Composite Extension. Um etwas Druck auf ATI auszuüben, kann ein "Linux Driver Feedback"-Formular unter http://apps.ati.com/linuxDfeedback/index.asp ausgefüllt oder Votes im ATi Linux Plattform Bugzilla abgegeben werden.

Die neuen Treiber >=8.8.25 funktionieren mit 6.8.1, aber leider lässt sich Xorg nicht dazu überreden die Composite Extension zu laden ohne auf MESA Opengl zurück zu fallen. D.h. entweder 3d Unterstützung oder Transparenz. Besitzer einer ATI Radeon <=9250 koennen auch auf die Open Source Driver des DRI Projektes zugreifen, die zum einen Composite und GLX simultan zulassen, zum anderen Gebrauch der in X.Org 6.9/7.0 enhaltenen EXA Funktion machen. EXA beschleunigt Composite enormst, ist jedoch zur Zeit den Open Source Radeon Treibern vorbehalten, da ATIs proprietäre Treiber diese Funktion noch nicht unterstützen.

[Bearbeiten] Fluxbox-Fenster lassen sich nicht anheben

Configure -> Slit -> Layer -> Desktop müsste das Problem beheben.

[Bearbeiten] Probleme mit mplayer

Wenn mplayer Probleme bezüglich Transparenz (oder etwas wie "bad display"...) macht, müsste folgende Option das Problem beheben :

mplayer -vo x11 my_video

Alternativ funktioniert evtl. auch das Folgende:

mplayer -vo gl2 my_video

Ggf. müssen noch weitere Anpassungen vorgenommen werden; einfach mal experimentieren ;)

[Bearbeiten] Metacity Probleme

Sollte Metacity Titelleiste und Fensterränder nicht korrekt darstellen oder die Transparenz überhaupt nicht funktionieren, so kann das Deaktivieren des "Renderns" helfen. Dazu muß die folgende Zeile in der EBuild-Datei von Metacity geändert werden:

G2CONF="${G2CONF} ${use_enable xinerama} --disable-compositor"

nach

G2CONF="${G2CONF} ${use_enable xinerama} --disable-compositor --disable-render"

[Bearbeiten] xcompmgr Fehler beim Setzen des Root-Fensters

Unter Umständen funktioniert xcompmgr nicht mehr zuverlässig, wenn ein Hintergrundbild eingestellt wird.

[Bearbeiten] CPU-Auslastung durch X

Sollte bei KDE nach einiger Zeit der X-Server eine Auslastung nahe 100% erreichen und damit das System extrem verlangsamen, lohnt sich ein Neustart des KDE Composite-Managers.

 dcop kwin KWinInterface stopKompmgr; dcop kwin KWinInterface startKompmgr

[Bearbeiten] Anmerkung

Wenn ihr irgendwas zu diesem Artikel hinzufügen könnt, schreibt mir bitte eine E-Mail an nathan AT grebowiec.net. Diese Anleitung wurde ursprünglich auf http://grebowiec.net veröffentlicht.

'Persönliche Werkzeuge