Workshop Xgl - Die nächste Generation des Linux-Desktops

28.08.2006 von Jörg Thoma
Wabbelige Fenster, stufenlose Transparenz und ein virtueller Würfel mit Desktop-Oberflächen: Xgl zaubert schicke 3D-Effekte und viele nützliche Funktionen auf den Linux-Desktop. Wir zeigen Ihnen, was Xgl kann und wie Sie ihn einfach unter SUSE 10.1 installieren.

Was Windows Vista verspricht, kann Linux bereits: Xgl stattet Ihren Linux-Desktop mit schicken 3D-Funktionen aus und beginnt so eine neue Generation der Fenster- und Applikations-Verwaltung. Fenster bieten damit Effekte wie Zooming und Transparenz und mit dem Desktop-Manager Compiz bringen Sie Ihre virtuellen Desktops auf einem Würfel unter, der sich im virtuellen Raum drehen lässt.

Meist benötigen Sie für den 3D-Desktop die Linux-Referenz-Treiber für Ihre Grafikkarte, die die Hersteller auf Ihren Web-Seiten anbieten. Davon abgesehen ist Xgl recht anspruchslos und so lässt sich der 3D-Desktop auch auf Rechnern mit älteren Grafikchips nutzen.

Die in Linux integrierten OpenGL-Treiber unterstützt die 3D-Funktionen ausgewählter Programme. Xgl stellt dagegen die OpenGL-Fähigkeiten einer Grafikkarte als Treiber für den X-Server und somit für die gesamte grafische Oberfläche zur Verfügung. Darauf wiederum setzt der Fenster-Manager Compiz auf, der die auf OpenGL basierenden 3D-Effekte zur Verfügung stellt.

Der Anwender sieht aber trotzdem die gewohnte Desktop-Oberfläche mit KDE oder Gnome, die sozusagen die oberste Schicht in diesem Modell bildet.

Hardware - OpenGL ist Pflicht

Grundsätzlich funktioniert der Xgl-Server mit allen Grafikkarten, die OpenGL-Funktionen im Chipsatz verarbeiten können. Da OpenGL seit mehr als einem Jahrzehnt für viele grafikbasierte Anwendungen Standard ist, können die meisten Karten damit umgehen. Letztlich hängt die Funktionalität aber auch von den Grafikkarten-Treibern ab, die nicht nur die OpenGL-Schnittstelle, sondern auch die optimale Hardwarebeschleunigung zur Verfügung stellen. Xgl nutzt die standardisierte OpenGL-Schnittstelle GLX und vereinfacht so den Hardwareherstellern die Treiberentwicklung.

Besitzer von Nvidia-Karten können sich einer fast lückenlosen Unterstützung erfreuen und auch mit einer ATI-Karte mit Radeon-Chipsatz kommen Sie - mit einigen Einschränkungen - in den Genuss des 3D-Desktops. Rechner und Notebooks mit neueren Intel-Chipsätzen (i9xx) bringen die 3D-Effekte ebenfalls auf den Bildschirm. Besitzer eines Matrox-, SiS- oder Via-Grafikchipsatzes bleiben allerdings bislang außen vor.

Sind die proprietären Grafik-Treiber erst einmal korrekt installiert, holen Sie mit dem Kommandozeilen-Befehl „glxinfo“ nähere Infos zu den OpenGL-Fähigkeiten des Treibers auf den Schirm.

Xglx - der 3D-Treiber

Bislang liefen auf OpenGL basierende Anwendungen getrennt von Desktop-Managern wie Gnome oder KDE. Sie griffen dabei entweder direkt über das Direct Rendering Interface (DRI) oder über die 3D-Erweiterungen der proprietären Treiber auf die OpenGL-Funktionen der Grafikkarte zu. Alternativ kam die Grafikbibliothek Mesa zum Einsatz, die ähnlich wie Gtk für Gnome und Qt für KDE, Fensterelemente wie Rahmen und Buttons zur Verfügung stellt. Einen - gegenwärtig auf 2D optimierten - gesamten Desktop auf 3D zu portieren, scheiterte bislang.

Hier setzt das Xgl-Projekt an. Dessen Treiber Xglx klemmt sich zwischen den X-Server und den Windowmanager Compiz und rendert dabei 2D-Funktionen in 3D. Durch den direkten Zugriff auf OpenGL übernimmt die Grafikkarte sämtliche Berechnungen und die CPU des Rechners bleibt weitgehend unbelastet.

Im Test hatten die neuen Effekte kaum Auswirkungen auf das Arbeiten. Lediglich die Wassereffekte wie Regentropfen oder Schlieren ließen die CPU-Last auf über 20 Prozent ansteigen, allerdings handelt es sich dabei um Spielereien, die keineswegs ständig aktiv sind. Ansonsten blieb die Last auf dem Hyperthreading-System angenehm niedrig. Positiv fällt auf, dass Xgl einwandfrei mit mehreren CPUs und Hyperthreading zusammenarbeitet und die benötige Rechenleistung aus allen Prozessoren bezieht.

Der Composite-Manager Compiz

Letztendlich verantwortlich für die 3D-Effekte auf dem Desktop zeichnet sich der Window-Composite-Manager Compiz. Dieser übernimmt die Fenster-Befehle des X-Servers, also Position oder Größe, fügt Effekte hinzu und übergibt diese dann Xglx zum endgültigen Rendern. Unter Suse funktionieren Xglx und Compiz weitgehend problemlos mit den beiden Standard-Desktops KDE und Gnome, die Effekte stehen allen geöffneten Fenstern zur Verfügung.

Compiz hat mehr zu bieten, als gummiartige Fenster: Da der gesamte Desktop auf Compiz und Xglx liegt, kann dieser ebenfalls von den 3D-Effekten profitieren. Prominentes Beispiel: Virtuelle Desktops lassen sich auf einem Würfels platzieren, den Sie dann mit der Maus im virtuellen Raum drehen können.

Anspruchsvolle Effekte - auch mit älterer Hardware

Bei der Darstellung der Effekte ist die Grafikkarte gefordert, die CPU des Rechners muss sich nur um die jeweilige Anwendung kümmern, die in einem Fenster läuft. Ist die betreffende OpenGL-Anwendung nicht allzu komplex, läuft der 3D-Desktop mit einfachen Effekten auch auf etwas älteren Karten recht flüssig.

Dank Trennung von Grafik- und Hauptprozessorlast unterbricht die Ausführung eines Effekts auch nicht die Anwendung selbst. Spielen Sie beispielsweise einen Videoclip ab und drehen dabei den virtuellen Desktop-Würfel, läuft der Clip ungehindert weiter.

Selbst der neue Taskmanager, der Ihnen eine Vorschau der geöffneten Fenster anzeigt, zeigt das laufende Video. Der Xglx-Treiber sorgt außerdem für verbessertes Anti-Aliasing bei der Darstellung von Schriften.

Installation mit SUSE 10.1

Suse hat es sich mit der aktuellen Version 10.1 nach eignen Angaben zum Ziel gemacht, die Installation von Xgl so einfach wie möglich zu gestalten. Deswegen haben wir uns dazu entschieden, die notwendigen Schritte einzeln durchzugehen.

Um den 3D-Desktop auf Ihrem Rechner einzurichten, installieren Sie zunächst die Pakete „xgl“, „xgl-hardware-list“, „compiz“ sowie gegebenenfalls noch „libsvg“ und „libsvg-cairo“ von der Suse-Installations-DVD. Verwenden Sie statt Gnome den KDE-Desktop, installiert Yast dabei zusätzlich noch weitere Pakete, um Abhängigkeiten aufzulösen.

Starten Sie anschließend das Modul „Desktop Effects Settings“. Unter Gnome finden Sie es in der Taskleiste unter „System, Kontrollzentrum, Desktop Effects Settings“ unter KDE starten Sie es über <Alt>-<F2> und die Eingabe von „gnome-xgl-settings“.

Xgl unter Gnome und KDE einrichten

Mit der Datei xgl-hardware-list liefert Suse eine Datenbank aller getesteten Grafikchipsätze, die das Modul „Desktop Effects Settings“ nun mit Ihrer installierten Grafikkarte abgleicht. Meldet das Tool dann „Your graphics card is supported“ steht dem 3D-Desktop nichts mehr im Weg. Wie Sie vorgehen, wenn Sie eine andere Meldung erhalten, lesen Sie im Kapitel „Problematische Karten“.

Klicken Sie auf die Schaltfläche „Enable 3D-Desktop“, um den Treiber zu aktivieren. Das Modul richtet nun Xgl und Compiz ein und meldet Sie automatisch vom Desktop ab. Klappt das nicht, müssen Sie sich gegebenenfalls selbst abmelden. Verwenden Sie den Gnome-Desktop, sollten nach erneutem Anmelden am Desktop, die 3D-Effekte bereits funktionieren. Achtung: Tastenkürzel die Sie unter Gnome eingerichtet haben, müssen Sie nun erneut konfigurieren.

Nutzen Sie KDE als Desktop-Oberfläche, müssen Sie noch ein paar weitere Einstellungen vornehmen, bevor Sie in den Genuss des 3D-Desktops kommen. Diese sind im nächsten Kapitel detailliert beschrieben

Spezielle Einstellungen für KDE

Starten Sie das KDE-Kontrollzentrum über „Persönliche Einstellungen“ im KDE-Menü. Unter „Arbeitsfläche, Fensterleiste“ sollten Sie sicherstellen, dass die Option „Die Fenster sämtlicher Arbeitsflächen anzeigen“ aktiviert ist. Anschließend erstellen Sie mit einem Texteditor, etwa Kate, eine neue Datei mit folgendem Inhalt:

[Desktop Entry]
Encoding=UTF-8
Exec=compiz --replace gconf & gnome-window-decorator &
GenericName[en_US]=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
X-KDE-autostart-after=kdesktop

und speichern diese als „compiz.desktop“ im Verzeichnis /home/<Benutzername>/.kde/Autostart. Der vorangestellte Punkt im Verzeichnisnamen verrät, dass es sich beim Unterverzeichnis „.kde“ um ein verstecktes Verzeichnis handelt, das Sie im „Speichern“-Dialog von Kate mit <F8> sichtbar machen können.

Melden Sie sich abschließend vom Desktop ab und wieder an. Danach stehen Ihnen die 3D-Effekte auch unter KDE zur Verfügung.

Problematische Karten

Nicht alle funktionierenden Grafik-Chipsätze haben es in die Datei xgl-hardware-list geschafft. Stuft das Tool „Desktop Effects Settings“ Ihre Grafikkarte mit der Meldung „Your graphics card is not supported but may work“ als nur bedingt Xgl-tauglich ein, lohnt der Versuch trotzdem. Kontrollieren Sie dann, ob Ihre Karte auf einer unten genannten Websites verzeichnet ist. Ist das der Fall, stehen die Chancen gut.

Dasselbe gilt, wenn Sie die Meldung „Your graphics card is not in Xgl's database“ erhalten. Lautet das Urteil dagegen „Your graphics card will not work with Xgl“, besitzen Sie entweder eine Grafikkarte ohne 3D-Beschleunigung oder aber Ihr Chipsatz verursacht schwere Fehler, so dass Sie auf Xgl verzichten sollten. Die Software ist noch in der Entwicklungsphase, regelmäßige Updates können Sie über das Internet einspielen.

Eine ausführliche Liste unterstützter Grafkchipsätze finden Sie hier. Weitere Hilfe bietet die Wiki-Seite http://de.opensuse.org/Xgl_unter_SUSE_Linux_verwenden im Abschnitt 3 „Einrichtung“. Hilfe bei Problemen mit Xgl finden Sie hier.

Mit Fenstern arbeiten

Hat die Konfiguration des 3D-Desktops geklappt, können Sie seine Effekte erforschen. Starten Sie dazu noch einmal das Tool „Desktop Effects Settings“ und wechseln Sie in den Reiter „Window Effects“.

Sicher ist Ihnen sofort aufgefallen, dass die Fenster beim Bewegen mit der Maus elastisch nachgeben. Diesen Effekt schalten Sie über „Make Windows wobble while they're being moved“ ein und aus. Mit aktivierter Option „Make window edges sticky when I hold down „Control““ können Sie Fenster bis zu einen gewissen Punkt stauchen, wenn Sie sie mit der Maus bei gedrückter <Strg>-Taste an der Titelleiste eines Fensters ziehen. Das Fenster muss dabei mit mindestens einem Rahmenteil einen Desktop-Rand berühren.

Um Fenster beim Verschieben durchsichtig zu machen, aktivieren Sie „Make windows translucent while they're being moved“. Die Optionen „Make windows wobble when they first appear“, „Make windows fade away when they are closed“ und „Show windows zooming to/from taskbar on minimize/maximize“ versehen die Fenster mit Effekten, wenn Sie diese öffnen, schließen, minimieren oder wiederherstellen.

Die Transparenz eines Fensters können Sie auch einzeln und stufenlos regulieren: Bewegen Sie dazu die Maus über das Fenster, drücken Sie <Alt> und bewegen Sie das Mausrad. Mit „Translucent Windows“ können Sie diesen Effekt ein- und ausschalten oder statt der <Alt>-Taste die <Shift>-, <Strg>- oder <Windows>-Taste verwenden.

Der Desktop-Würfel

Besonderes Highlight von Xgl ist der Desktop-Würfel. Sie können diesen im Reiter „Desktop Cube“ konfigurieren. Auf die Seiten des virtuellen Würfels passen bis zu 14 virtuelle Desktops, auch wenn sich die Zählerbox neben „Wrap the desktop around a „cube“ with sides“ auf „100“ hochjagen lässt. Um den Würfel zu drehen, halten Sie <Strg>- und <Alt>-Taste gedrückt und ziehen den Würfel mit der Maus.

Wenn Sie nun ein Fenster über den linken oder rechten Rand des aktiven Desktops hinaus schieben, klappt es automatisch um die Kante des Würfels zum nächsten Desktop um. Ist im Reiter „Desktop Cube“ die Funktion „Edge Flipping“ aktiviert, brauchen Sie den Mauszeiger samt Fenster nur nahe genug an den Desktop-Rand schieben, dann dreht sich der Würfel automatisch zur nächsten Arbeitsfläche.

Mehrere Anwendungen können Sie bequem auf mehrere Oberflächen verteilen. Per Mausklick in der Taskleiste auf eine Anwendung springt der Würfel dann automatisch auf den jeweiligen Desktop, auf dem das Fenster der Anwendung liegt.

Auch die weiße Fläche auf der Oberseite des Würfels lassen sich ändern. Wie das geht, verrät der das nächste Kapitel „Desktop-Würfel gestalten“.

Desktop-Würfel selbst gestalten

Unter Suse Linux trägt der virtuelle Desktop-Würfel auf der Oberseite ein Logo von Novell. Sie können dieses aber durch ein eigenes Bild im SVG- oder PNG-Format ersetzen, indem Sie dieses als root in den Ordner /usr/share/compiz kopieren. Nutzen Sie dafür beispielsweise den Punkt „System, Dateiverwaltung, Konqueror (Systemverwaltungsmodus)“ im KDE-Menü. Beenden Sie dann ebenfalls als root den gconf-Daemon mit dem Konsolenbefehl „gconftool-2 --shutdown“ und starten Sie dann den Gnome-Konfigurations-Editor mit „gconf-editor

Navigieren Sie dort zu dem Schlüssel „apps/compiz/plugins/cube/screen0/options“. Hier finden Sie den Schlüssel „images“, den Sie mit einem Doppelklick zur Bearbeitung öffnen. Fügen Sie über „Hinzufügen“ den Dateinamen des zuvor kopierten Bildes der Liste hinzu und verfrachten diesen mit der Schaltfläche „Hoch“ nach oben. Das Resultat können Sie sofort begutachten.

Sollte Ihr Bild nicht genau auf den Würfel passen, aktivieren Sie zusätzlich den Schlüssel „scale_image“. Aktivieren Sie zusätzlich im Schlüssel „apps/compiz/plugins/rotate/screen0/options“ die Option „snap_top“, dann bleibt die Oberseite als Bild stehen, wenn Sie den Würfel dorthin drehen. Mit der <Leertaste> blättern Sie dann durch die Liste der unter „images“ eingetragenen Bilder. Schließen Sie nun den Gnome-Konfigurations-Editor und melden Sie sich erneut am Desktop an.

Fensterverwaltung und Taskmanager

Selbst bei vielen geöffneten Fenstern behalten Sie künftig den Überblick: Drücken Sie einfach die <Pause>-Taste, dann arrangiert der neue Fenstermanager alle geöffneten Fenster verkleinert nebeneinander auf dem Bildschirm. Per Mausklick auf das gewünschte Fenster wechseln Sie dann blitzschnell dorthin.

Ein erneutes Drücken derselben Taste befördert die Fenster wieder an ihre ursprüngliche Position. In der Voreinstellung erzielen Sie den gleichen Effekt, indem Sie den Mauszeiger in die obere, rechte Ecke eines Desktops bugsieren. Diese Einstellungen ändern Sie im Reiter „Other Features“ unter „Window Picker“. Praktisch ist auch der neuen Taskmanager, der sich wie gehabt mit <Alt>-<Tab> aufrufen lässt. Statt der Programmsymbole zeigt dieser nun eine Vorschau des aktiven Fensters.

Weitere Funktionen

Ebenfalls nützlich ist die integrierte Zoom-Funktion. Bei gedrückter <Windows>-Taste und gleichzeitigem Bewegen des Scrollrads können Sie stufenlos in den Desktop hinein- und wieder herauszoomen. Die Einstellungen dazu liefert der Reiter „Other Features“ unter „Zoom“.

Im selben Reiter finden Sie auch das Gimmick „Water Effect“. Wenn Sie gleichzeitig <Strg>- und <Windows>-Taste gedrückt halten und dabei die Maus bewegen, bilden sich auf dem Desktop Wellen wie auf einer Wasseroberfläche. Bei <Shift>-<F9> fängt es auf dem Desktop an zu regnen und hört erst beim erneuten Drücken der Tastenkombination wieder auf.

Xgl deaktivieren

Mit dem Tool „Desktop Effects Settings“ können Sie den 3D-Desktop in der Schaltfläche „Disable 3D Desktop“ auch wieder deaktivieren. Können Sie das Tool nicht erreichen, weil Desktop-Oberfläche oder X-Server nicht mehr korrekt starten, können Sie XGL auch auf der Konsole deaktivieren. Starten Sie dazu Ihren Rechner neu und geben Sie am Startbildschirm die Bootoption „init3“ ein. Das System bleibt dann im Konsolenmodus. Melden Sie sich als root samt Passwort an und geben Sie an der Kommandozeile den Befehl

gnome-xgl-switch --disable-xgl

ein. Falls Sie KDE verwenden, können Sie sicherheitshalber noch die Datei compiz.desktop mit der Befehlszeile

mv /home/<Benutzername>/.kde/Autostart/compiz.desktop /home/<Benutzername>/compiz.desktop

verschieben. Danach starten Sie mit „init 5“ direkt die grafische Oberfläche oder starten Ihren Rechner mit „reboot“ neu.

Parallelprojekt AIGLX

Das AIGLX-Projekt wurde von der Fedora-Gemeinde und den Xorg-Entwicklern ins Leben gerufen. Im Gegensatz zu Xgl, bei dem letztendlich ein neuer X-Server entstehen soll, wollen die AIGLX-Entwickler den bestehenden X-Server 3D-tauglich umschreiben. Die beiden Projekte kooperieren jedoch miteinander.

Während Xgl aufgrund seiner Architektur den Grafikkartenherstellern wenig Arbeit in der Treiberentwicklung abverlangt, da es lediglich die OpenGL-Schnittstelle erfordert, integriert das AIGLX-Projekt zusätzlich die OpenGL-Erweiterung Direct Rendering, über die auch 3D-Spiele zusätzliche Funktionen nutzen können

Dieser Weg erfordert zwar Anpassungen in den proprietären Treibern der Hardwarehersteller, gibt diesen aber auch die Gelegenheit, der Linux-Gemeinde weitere Karten-spezifische Funktionen zur Verfügung zu stellen. AIGLX befindet sich allerdings noch in einer frühen Entwicklungsphase und funktioniert bislang nur mit wenigen Grafikkarten.

Fazit

Klar, viele Effekte von Xgl sind lediglich Spielerei, etwa die fallenden Wassertropfen oder die wabbeligen Fenster. Die restlichen Funktionen haben aber durchaus ihre Existenzberechtigung. Außerdem, wer sagt denn, dass solche Features kommerziellen Betriebssystemen, etwa Mac OS oder Vista vorbehalten sind? Ganz im Gegenteil, viele Effekte lassen die Konkurrenz aus Redmond oder Cupertino alt aussehen. Besonders der Würfel ist eine praktische Art, seine virtuellen Desktops im Blick zu behalten.

Schade ist, dass Xgl noch relativ schwer zu installieren ist, besonders, wenn man nicht Gnome sondern KDE einsetzen will. Zwar hat das Kororaa-Linux-Projekt vor einiger Zeit eine sehr gute Live-CD veröffentlicht, musste den Download aber wegen Lizenzproblemen wieder einstellen. Wer übrigens kein SUSE auf seinem Linux-Rechner haben will, sondern lieber auf Ubuntu setzt, der findet hier eine sehr gute, englischsprachige Anleitung zur Installation.

Damit Sie sich dennoch ein Bild von der neuen Oberfläche machen können, haben wir für Sie in unserem Blog ein paar Flash-Filme zusammengestellt, die Ihnen die Funktionen von Xgl demonstrieren. (mja)