Compiz/Problembehebung

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.


Anmerkung: Bitte auf Aktualität überprüfen und gegebenenfalls ausmisten. Falls nötig, die Ubuntu-Versionen dazu schreiben, bei denen eine Lösung aktuell ist.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Ein Terminal öffnen

  2. Einen Editor öffnen

  3. Bearbeiten von Paketquellen

  4. Pakete installieren

Inhaltsverzeichnis
  1. Erste Schritte
    1. Compiz neu konfigurieren
    2. Compiz startet nicht automatisch
    3. Compiz starten und stoppen
    4. Zurücksetzen
  2. Probleme und Lösungen
    1. Probleme mit Fensterleisten
      1. Keine Fensterleiste
    2. Fensterleisten verschieben
    3. Oberer Bildschirmrand gesperrt
    4. Ruckelnde Wiedergabe von Videos
    5. Probleme bei Spielen
    6. Spiel XY läuft nicht mit Compiz
    7. SKIP_CHECK nötig
    8. GNOME: Probleme mit den Tastaturkürzeln
    9. Keine Aktivierung mit Nvidia und mehrere...
  3. Links

Auch wenn über die letzten Jahre sowohl die Hardwarevoraussetzungen als auch die Treiberunterstützung unter Ubuntu deutlich besser geworden sind, treten doch immer wieder Probleme mit Compiz, insbesondere auch im Zusammenhang mit anderen anspruchsvollen graphischen Anwendungen wie HD-Videos usw auf.

Erste Schritte

Compiz neu konfigurieren

Mitunter hilft bereits, das Programm neu konfigurieren zu lassen mittels

sudo dpkg-reconfigure compiz 

Compiz startet nicht automatisch

Manuelles starten in der Konsole mit

compiz 

Möchte man das nicht jedes mal eingeben müssen, kann man den Eintrag in den Autostart hineinsetzen.

Compiz starten und stoppen

Manchmal kann es vorkommen, dass Compiz abstürzt. Dann fehlt z.B. die Fensterleiste bzw. -Dekoration. Dies kann man sehr einfach mit dem Fusion Icon/Select Window Decorator beheben. Oder im Terminal [1]:

Um Compiz zu stoppen, den folgenden Befehl ausführen:

killall compiz 

Um Compiz zu starten, gibt man folgende Befehle ein:

compiz --indirect-rendering --strict-binding --replace gconf &
gnome-window-decorator --replace & 

Zurücksetzen

Im erweiterten Konfigurationsmanager von Compiz unter Einstellungen das kleine 'Besensymbol' (rechts außen) auswählen. Zusätzlich muss man im eigenen Home-Verzeichnis den versteckten Ordner ~/.compiz entfernen.

Falls Compiz nicht mehr startet, kann man die Compiz-Konfiguration auch in einem Terminal-Fenster auf die Standardwerte zurücksetzen.

Achtung!

Wichtig ist, dass Compiz nicht gestartet ist, da es sonst zu einem Absturz kommen kann!

Folgender Befehl sorgt dafür, das die Standardwerte von Compiz geladen werden:

gconftool-2 --recursive-unset /apps/compiz
rm -rf ~/.compiz 

Danach die installierten Compiz-Pakete neu installieren und den XServer neu starten.

Probleme und Lösungen

Probleme mit Fensterleisten

Keine Fensterleiste

Falls beim Start keine Fensterleiste erscheinen sollte, ist Compiz nicht korrekt gestartet. Um dies einzustellen, benutzt man den erweiterten CompizConfig Einstellungs-Manager und trägt dort den gewünschten Fenster-Dekorator im Bereich Effekte/Window Decoration entsprechend ein:

  • gtk-window-decorator --replace (GNOME Standard)

  • emerald --replace (GNOME Emerald)

  • kde-window-decorator --replace (KDE)

Danach aktiviert man dieses Modul, damit die Änderung greift.

Eine weitere Möglichkeit, um den Fensterdekorateur im laufenden Betrieb zu wechseln, bietet das Panel-Plugin Fusion-Icon/Select Window Decorator. Nach einem Wechsel sollte man - unter Nutzung von Fusion-Icon/Reload Window Manager - den Fenstermanager neu starten, damit die Änderung wirkt.

Die entsprechenden Befehle für das Terminal [1]:

  • GNOME

gtk-window-decorator & 

bzw. um Compiz zu beenden

metacity --replace & 
  • KDE

kde-window-decorator & 

bzw. um Compiz zu beenden

kwin --replace & 

Fensterleisten verschieben

Falls das Verschieben mit der Fensterleiste hängt oder ruckelt, muss im GNOME Konfigurationseditor eine Anpassung vorgenommen werden. Dazu öffnet man diesen und navigiert zum Schlüssel "/apps/compiz/plugins/resize/allscreens/options". Man wählt den Wert "stretch_texture" aus und startet danach den Computer neu.

Oberer Bildschirmrand gesperrt

Bei Compiz ist das Verschieben von Fenstern (z.B. bei GNOME mit gedrückter Alt -Taste) über den oberen Bildschirmrand hinaus standardmäßig deaktiviert. Dies ist insbesondere bei Netbooks lästig, wenn Fenster zu groß für den Bildschirm sind und man deswegen nicht an alle Bedienelemente herankommt. Man kann den oberen Rand mit folgender Befehlszeile im Terminal freischalten:

gconftool-2 --type bool --set /apps/compiz/plugins/move/allscreens/options/constrain_y 0

Alternativ kann man einen Konfigurationseditor starten und dort unter "/apps/compiz/plugins/move/allscreens/options/" den Haken hinter "constrain_y" entfernen.

Ruckelnde Wiedergabe von Videos

Videoanwendungen über einen Composite Manager wie Compiz stellen wesentlich höhere Anforderung an die Hardware. Mit folgenden Einstellungen sollte wieder eine flüssige Wiedergabe mit dem MPlayer gewährleistet sein. Dazu startet man den Mplayer, öffnet per Rechtsklick rechte Maustaste die "Einstellungen" und wählt im Reiter "Video" den Treiber "X11/xv" oder "gl/X11/openGL" aus. Nun noch die folgenden Optionen aktivieren:

und folgende Option deaktivieren:

Im Reiter "Codecs & Demuxer" nimmt man folgende Einstellungen vor:

Leider wird so das Bild im Vollbildmodus nicht mehr gezoomt. Der VLC Player ist in ähnlicher Weise betroffen.

Anmerkung: Die verschiedentlich empfohlene Option "Frame-Dropping aktivieren" ist nicht notwendig.

Probleme bei Spielen

Beispiel: Frozen-Bubbles ist fast komplett transparent, bestimmte Konturen lassen sich nur erahnen. Allgemeine Lösung im Terminal [1]:

export XLIB_SKIP_ARGB_VISUALS=1 
<Programmname>  

Für Frozen-Bubbles:

# Beispiel 
export XLIB_SKIP_ARGB_VISUALS=1 
frozen-bubble 

Zur Vereinfachung lässt sich ein Script schreiben [2],

#!/bin/sh
export XLIB_SKIP_ARGB_VISUALS=1
$1

als /usr/local/bin/launch3d speichern (dies erfordert Root-Rechte) und ausführbar machen [1]:

sudo chmod 755 /usr/local/bin/launch3d 

Nun kann man per

launch3d <Programm> 

das gewünschte <Programm> starten.

Spiel XY läuft nicht mit Compiz

In einem solchen Fall bietet es sich an, Compiz für die Spieldauer zu deaktivieren. Dazu startet man das Spiel fortan über ein Skript, das zuerst Compiz deaktiviert (Metacity aktiviert), dann das Spiel startet und nach Beenden Compiz (Emerald) wieder aktiviert. Hier ein Beispiel für Neverwinter Nights unter GNOME:

#!/bin/sh
metacity --replace &
sleep 3
nwn && compiz &
sleep 3
emerald --replace & 

Wird Emerald über das Plugin "Fensterdekorator" aktiviert bzw. nicht genutzt, kann auf dessen Aufruf samt vorhergehendem sleep 3 verzichtet werden. Die sleep-Dauer in Sekunden kann je nach System auch verlängert, verkürzt oder sogar ganz entfernt werden, denn sie dient lediglich dazu, Grafikprobleme beim zu schnellen Umschalten zwischen den verschiedenen Modi zu vermeiden.

Bei diesem Beispiel wird übrigens vorausgesetzt, dass sich Neverwinter Nights in einem im PATH definierten Ordner befindet, ansonsten muss es aus dem Spielverzeichnis heraus über das Kommando ./nwn anstelle des oben genannten nwn gestartet werden. Näheres dazu findet sich unter Umgebungsvariablen.

Unter KDE ersetzt man metacity & durch kwin &.

SKIP_CHECK nötig

Compiz überprüft anhand einer internen Liste beim Start automatisch, ob die eigene Grafikkarte (für Compiz) geeignet ist. Daher ist z.B. bei Mobile-Karten von ATI eine Umgehung der Überprüfung beim Compiz-Start notwendig. Einmalig wird das durch ein

SKIP_CHECKS=yes compiz --replace 

erreicht. Bei manchen Grafikkarten führt dies dazu, dass zwar die Effekte funktionieren, am rechten und/oder unteren Bildschirmrand aber ein Bereich entsteht, in dem "Grafikmüll" angezeigt wird. Hier kann es helfen, in der Datei /etc/X11/xorg.conf im Abschnitt "Screen" die Option "DefaultDepth" auf den Wert "16" zu setzen:

...
Section "Screen"
...
        DefaultDepth    16
...
EndSection
...

Nach dieser Änderung muss zunächst der XServer neu gestartet werden, bevor anschließend die Kontrolle mit der SKIP_CHECK-Methode erneut durchgeführt wird.

Um die SKIP_CHECK-Methode dauerhaft zu verankern - sodass Compiz auch per Menü-Befehl gestartet werden kann - muss

mkdir -p ~/.config/compiz && echo SKIP_CHECKS=yes >> ~/.config/compiz/compiz-manager 

in einem Terminal [1] ausgeführt werden. Der letzte Befehl muss einmal von allen Benutzern ausgeführt werden, die die Effekte nutzen wollen.

GNOME: Probleme mit den Tastaturkürzeln

Die GNOME Tastenkürzel können sich mit den voreingestellten Tastenkürzeln der Compiz-Plugins überschneiden. Letztere lassen sich mit dem Programm gset-compiz jedoch nach Belieben verändern.

Falls die Supertaste, die gleichzeitig der Windows-Taste Windows heutiger Tastaturen entspricht, nicht funktionieren sollte, so fehlt eine notwendige Einstellung. Dazu wählt man

Keine Aktivierung mit Nvidia und mehreren Monitoren (Compiz)

Um das Problem zu beheben, muss in den Nvidia-Einstellungen statt "Separate X Server" auf "TwinView" umschalten werden. Ggf. benötigt der Rechner einen Neustart. Diese Einstellung findet man in den "NVIDIA X Server Settings" (Menü "System -> Systemverwaltung") unter "X Server Display Configuration" im Reiter "Display".

Hinweis:

Wenn »TwinView« eingeschaltet ist, können die Monitore nicht einzeln per »Rotation«, sofern aktiviert, gesteuert werden. Ist ein drehbarer Monitor vorhanden (Pivot), so drehen sich alle Monitore in die gleiche Richtung mit. Wenn »Seperate X screen« aktiv ist, kann jeder Monitor einzeln in verschiedenen Richtungen gedreht werden, wobei jeder Monitor einen eigenen X-Server hat.

TwinView
Vorteil: Anwendungen können von Monitor A nach B usw. geschoben werden.
Nachteil: getrennte Drehung einzelner Monitore ist nicht möglich ist, jeder Monitor hat die Bildschirmnummer 0, kein Monitor kann direkt angesprochen werden.

Seperate X screen
Vorteil: jeder Monitor kann unabhängig gedreht werden, jeder Monitor hat eine eigene Bildschirmnummer und kann direkt angesprochen werden.
Nachteil: die jeweilige Anwendung muss vom gewünschten Monitor oder mit dem Befehl DISPLAY=:0.1 <Anwendung> gestartet werden, wobei keine Anwendung von Monitor A nach B usw. verschoben werden kann.