ubuntuusers.deWikixcompmgr

xcompmgr

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Achtung!

Beim Einsatz von xcompmgr unter GNOME kann es passieren, dass der Standard-Logout-Dialog nicht mehr funktioniert. Hilfe gibt es im Abschnitt "Problembehebung" weiter unten.

xcompmgr ist ein Composite-Manager für den XServer, mit dem man echte Transparenz, Schatten, etc. erzeugen kann, ohne auf AIGLX oder Xgl zurückgreifen zu müssen. Außerdem kann man Fenster und Pop-Up Menüs à la Windows XP einblenden lassen. Die Composite-Erweiterung erlaubt es, alle Zeichnungen zuerst in einem Zwischenspeicher zu erstellen. Dies hat den Vorteil, dass Zeichnungen flimmerfrei dargestellt werden können. Um jedoch komplette Fenster transparent darzustellen, benötigt man unter Umständen zusätzlich das Programm transset-df.

Das KDE- und das Xfce-Projekt haben jeweils eine eigene überarbeitete Version von xcompmgr eingebaut:

Voraussetzung

Um xcompmgr zu nutzen, benötigt man zwingend eine Karte mit Composite-Fähigkeit. Welche Hardware- bzw. Grafikkartenanforderungen xcompmgr hat, kann auf der Übersichtsseite nachgelesen werden. Faustregel: alle Nvidia- und Intel-Grafikkarten funktionieren, bei AMD/ATI-Karten funktioniert es ab dem FGLRX-Treiber 8.42.3.

Ein Test kann mit folgendem Befehl in einem Terminal [3] durchgeführt werden:

glxinfo | grep 'direct rendering' 

Erhält man als Ausgabe:

direct rendering: Yes

dann wird xcompmgr sehr wahrscheinlich funktionieren.

Mit xcompmgr allein kann man aber nur Schatten darstellen. Für Transparenz benötigt man das Programm transset-df.

Installation

Folgendes Paket muss aus den Quellen installiert [1] werden:

  • xcompmgr (universe [2])

Wiki/Vorlagen/Installbutton/button.png

Konfiguration

Hinweis:

Das Bearbeiten der Datei /etc/X11/xorg.conf sollte ab Ubuntu 8.10 Intrepid Ibex nur noch in Ausnahmefällen erforderlich sein.

An dieser Stelle muss dem XServer mitgeteilt werden, dass er die Composite-Erweiterung beim Start automatisch laden soll. Dazu muss man die Datei /etc/X11/xorg.conf in einem Editor mit Root-Rechten öffnen und bearbeiten [4].

Zuerst muss der Abschnitt Section "Extension" angepasst bzw. hinzugefügt werden:

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

Danach sollte der Abschnitt Section "Device" erweitert werden. Man fügt folgende Option hinzu:

  • Für Nvidia-Karten:

    Option "RenderAccel" "true"
  • Für AMD/ATI und Nvidia-Karten:

    Option "backingstore" "true"

xcompmgr starten

Man öffnet ein Terminal [3] und gibt folgenden Befehl ein:

xcompmgr -n 

Dadurch wird der Composite-Manager ohne irgendwelche Optionen gestartet. Eine schöne Einstellung für einen dezenten Schatten ist z.B. folgende:

xcompmgr -l 0.5 -t 0.5 -o 0.5 -r 2 -c 

Hinweis:

Weitere Informationen und Startoptionen, um z.B. die Größe der Schatten einzustellen, findet man in der Manpage zu xcompmgr.

Damit der Manager auch bei jedem Anmelden gestartet wird, sollte man ihn dem Autostart [6] hinzufügen.

Transparenz

Hinweis:

Mit Devil's Pie ab der Version 0.18 kann man die Transparenz direkt durch die Option opacity <Wert> verändern (ohne Verwendung von transset oder transset-df).

transset

Um die Transparenz-Werte anzusprechen, benötigt man zusätzlich noch das Programm

  • transset (universe)

Wiki/Vorlagen/Installbutton/button.png

transset beherrscht nur das einfache Verändern der Transparenz. Durch den Befehl im Terminal [3]

transset <Wert> 

erhält man einen Mauszeiger, mit dem man das Fenster auswählen kann, welches transparent gestellt werden soll.

Der <Wert> muss zwischen 0 und 1 liegen. 0 ist bewirkt ein ganz durchsichtiges Fenster, mit 0.5 ist es halb durchsichtig, und mit 1 wird es völlig undurchsichtig.

transset-df

Eine erweiterte Version von transset ist transset-df {en}. Damit kann man unter anderem die Transparenz mit dem Mausrad verändern.

  • transset-df (universe)

Wiki/Vorlagen/Installbutton/button.png

Das Programm wird durch den Befehl

transset-df <Option(en)> 

im Terminal ausgeführt. Alle Optionen von transset-df erhält man über den Aufruf [3]:

transset-df --help 

Transparenz mit Mausrad-Drehung einstellen

Um die Transparenz des ausgewählten Fenster durch die Drehung des Mausrads (Scrollrad) zu verändern, braucht man noch das Programm xbindkeys, welches mit dem Paket

  • xbindkeys (universe, [2])

installiert wird [1].

Als nächstes legt man die Datei .xbindkeysrc im Homeverzeichnis an [4] und füllt sie mit folgenden Inhalt:

"transset-df --min 0.1 -p --dec 0.2"
 control + b:4

"transset-df -p --inc 0.1"
 control + b:5

Erklärung:

  • in den Anführungszeichen steht der Befehl, der ausgeführt wird

  • darunter steht dann, welche Tastenkombination den Befehl aufruft:

    • control steht für Strg

    • b:4 steht für das Mausrad nach vorne drehen

    • b:5 steht für das Mausrad nach hinten drehen

Zuletzt muss nur noch xbindkeys durch den Befehl [3]

xbindkeys 

ausgeführt werden. Verläuft der Versuch erfolgreich, kann der Aufruf in den Autostart eingetragen werden [6].

Programm transparent starten

Man kann ein Programm über seine Fenster-ID transparent starten. In folgendem Beispiel wird der Terminal-Emulator xterm mit einer Dreiviertel-Sichtbarkeit gestartet. Dazu erstellt man eine Datei[4] mit folgendem Inhalt und macht diese ausführbar [7]:

#!/bin/sh
xterm & sleep 1
id=`xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)" | awk '{print $5}' | sed -e 's#,##g'`
transset-df --id $id 0.75

Dieses Skript öffnet xterm welches nach einer Sekunde transparent wird. Dies geschieht durch die zweite Zeile, welche die ID des Fensters mit aktuellen Fokus ermittelt. Diese ID wird dann von transset-df verwendet.

Die allgemeine Version des Skripts sieht wie folgt aus:

#!/bin/sh
<Programm> & sleep 1
id=`xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)" | awk '{print $5}' | sed -e 's#,##g'`
transset-df --id $id <Transparenzgrad>

Es muss nur <Programm> und <Transparenzgrad> angepasst werden.

Hinweis:

Bei Programmen, welche länger zum Starten brauchen, wird nur das Programm transparent, welches das Skript ausgeführt hat.

Problembehebung

3D-Programme laufen nicht

Die Composite-Erweiterung verträgt sich nicht mit dem ATI fglrx-Treiber, daher wird die DRI-Unterstützung immer deaktiviert. Man kann hier nur auswählen, ob man Schatten und Transparenz nutzen möchte oder lieber 3D-Beschleunigung.

Bei Nvidia-Grafikkarten kann die folgende Option in der Section "Device" in der /etc/X11/xorg.conf helfen, wenn 3D-Programme nicht mehr laufen [4]:

Option "AllowGLXWithComposite" "true"

GNOME Logout Dialog

Bei Verwendung von xcompmgr funktioniert der Standard-Shutdown-Dialog von Ubuntu nicht mehr. Man kann aber den GNOME-Dialog als Alternative aktivieren. Nachteil ist, dass der Ruhemodus etc. nicht mehr aktiviert werden kann. Um den Logout-Dialog zu wechseln, den Konfigurationseditor starten und den Schlüssel /apps/panel/global/upstream_session setzen, so dass der Original-GNOME-Logout-Dialog aktiviert wird. Damit die Änderung sichtbar wird, muss das GNOME-Panel durch den Befehl [3]

pkill gnome-panel 

neugestartet werden.

GNOME-Panel wird ignoriert

Wenn nach dem Start von xcompmgr Fenster das GNOME Panel verdecken, reicht es, mit

killall metacity 

den Fenstermanager neu zu starten [3]. In manchen Fällen wird Metacity leider nicht neu gestartet. Dann muss man es manuell mit dem Befehl

metacity 

nachholen.

Diese Revision wurde am 29. Juni 2011 um 03:08 Uhr von aasche erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Desktop, LXDE

Passwort vergessen?