Compiz Fusion

De Guía Ubuntu
Saltar a: navegación, buscar
Compiz - fusion
Compiz logo.png
 
OpenCompositing
0.4 / diciembre de 2006
 ? / ?
compiz
-
Entorno de escritorio
GPL
compiz.org

XGL es un entorno gráfico para GNU/Linux, que combinado con el manejador de ventanas Compiz Fusion permite tener efectos increíbles en el escritorio.

Una alternativa muy buena al XGL es el AIGLX, más estable y seguro, pero solo funciona con los controladores de las tarjetas gráficas libres. Nvidia trae su propio entorno, no se necesita XGL ni AIGLX aunque se hacen los mismos pasos que AIGLX (instalar driver e instalar programas).

El AIGLX viene incorporado en Ubuntu desde la versión 6.10, pero en la 7.04 tiene un mejor soporte.

Nota clasica.png Manual actualizado a 7 de agosto de 2007.
Nota idea.png Compiz Fusion es el nuevo sustituto a Beryl y Compiz. Es el resultado de la integración de ambos proyectos en uno sólo pero aun así es un software sujeto a un fuerte proceso de desarrollo.

A continuación vamos a detallar el proceso de instalación de Compiz Fusión en Ubuntu 6.10 y 7.04

Escritorio con XGL (o AIGLX) y Compiz Fusión

Requisitos mínimos y recomendados

Para hacer funcionar Compiz se deben de cumplir una serie de requisitos, si no se cumplen no es posible hacerlo funcionar.

Básicamente el principal requisito es tener activada la aceleración 3D. Si no sabes como hacerlo lee el articulo Aceleración gráfica en Ubuntu.

Un método rápido para saber si tienes aceleración gráfica es tecleando en un terminal:

$ glxinfo | grep direct

Si el resultado es YES tienes aceleración gráfica.

Las tarjetas sobre las que se ha conseguido funcionar son las tarjetas gráficas de ATI, NVDIA o INTEL, aun así hay gente que ejecuto Compiz Fusion medianamente bien en tarjetas Via Unichrome / Unichrome Pro.

No hay una lista del todo correcta que informe de las tarjetas compatibles pero se sabe que Compiz Fusion funciona en gráficas del nivel de ATI Radeon 7000 con apenas 32 o 64 mb y Nvidia GeForce2 de apenas 32 MB. Aunque el rendimiento es visiblemente menor.

Se recomienda usar la versión 7.04 de Ubuntu que trae mejor soporte para estas tecnologías que cualquiera de sus anteriores versiones.

La versión 6.06 de Ubuntu no esta oficialmente soportada por Compiz Fusion.

Preparativos

Antes de empezar una nota informativa, la mayoría de las tarjetas gráficas funcionan con AIGLX (Nvidia o Intel), que viene incorporado en Ubuntu desde la versión 6.10, pero que es en la 7.04 donde tiene un mejor soporte (de ahí que se recomiende 7.04 para instalar Compiz).

Sin embargo si si usas una ATI y es un modelo Radeon 9550 (o superior) o de la serie X tendrás que usar XGL por lo que necesitarás instalar los drivers propietarios de ATI. (más información en Aceleración gráfica en Ubuntu).

AIGLX, más estable y seguro, pero solo funciona con los controladores de las tarjetas gráficas libres. Nvidia trae su propio entorno, no se necesita XGL ni AIGLX, por lo que a efectos prácticos se siguen los mismos pasos que AIGLX.

En esta guía se comenta como instalar tanto Compiz como XGL, siendo solo necesario seguir estos pasos en los casos descritos.


Eliminando restos de Compiz y Beryl

Si ya habías instalado antes una versión del antiguo XGL+Compiz es necesario que la desinstales, por lo menos, los siguientes paquetes. Para ello escribe esto en una terminal:

$ sudo aptitude purge compiz compiz-gnome cgwd cgwd-themes xserver-xgl csm gnome-compiz-manager

Ubuntu 7.04 trae una versión light de Compiz llamada "Efectos de escritorio" que se debe desinstalar para poder hacer funcionar Compiz Fusion

$ sudo aptitude purge compiz compiz-core desktop-effects
Nota clasica.png No te preocupes cuando te pregunte si quieres eliminar ubuntu-desktop, es un meta-paquete y desinstalarlo no romperá tu sistema

Si ya habías instalado Beryl debes saber que Compiz Fusion es perfectamente compatible con él por lo que no tendrás que desinstalarlo si no quieres.

Aun así siempre es recomendable usar Compiz Fusion en una instalación limpia (sin beryl ni compiz)

Repositorios

Los paquetes que proporcionan este sistema de escritorio no se encuentran en los repositorios oficiales de Ubuntu, por lo que debemos Activar los repositorios universe y multiverse y añadir como repositorio externo los siguientes :

Si usas Ubuntu 32 bits :

# Treviño’s Ubuntu Feisty EyeCandy Repository (GPG key: 81836EBF)
deb http://download.tuxfamily.org/3v1deb feisty eyecandy
deb-src http://download.tuxfamily.org/3v1deb feisty eyecandy

Si usas Ubuntu 64 bits :

# Treviño’s Ubuntu Feisty EyeCandy Repository (GPG key: 81836EBF)
deb http://download.tuxfamily.org/3v1deb feisty eyecandy-amd64
deb-src http://download.tuxfamily.org/3v1deb feisty eyecandy-amd64

Guardamos y cerramos el archivo.

Es importante añadir la clave del repositorio elegido, válida para Ubuntu 32 y 64 bits, por lo que volvemos a la terminal añadimos la clave del repositorio:

$ wget http://download.tuxfamily.org/3v1deb/DD800CD9.gpg -O- | sudo apt-key add -

Y actualizamos la lista de paquetes, generalmente basta con:

$ sudo aptitude update

Instalación de los paquetes

Necesitamos una serie de paquetes, a continuación se describe el proceso de instalacion de algunos de estos paquetes.

  • Compiz Fusion
$ sudo aptitude install compiz # compiz-gnome AND/OR compiz-kde
  • CompizConfig Configurator
$ sudo aptitude install compizconfig-settings-manager # compizconfig-backends-* ?!
  • Plugins de Compiz Fusion:
$ sudo aptitude install compiz-fusion-* 

En el caso de que requieras XGL (ver los casos descritos anteriormente) es necesario que además instale el servidor XGL :

$ sudo aptitude install xserver-xgl

Antes de ejecutarlo asegúrate de seguir los pasos de configuración descritos.

Crear una sesión XGL

Nota clasica.png Este paso sólo es necesario si se requiere instalar XGL según se indica en los apartados anteriores.

Dependiendo de si usamos Gnome o KDE existen pequeñas diferencias.

GNOME

Agregaremos la sesión XGL a las ya existentes, para ello creamos un fichero al que llamaremos, por ejemplo, startxgl.sh :

$ sudo gedit /usr/local/bin/startxgl.sh

Una vez abierto el archivo startxgl.sh, añadir lo siguiente:

<bash>

#!/bin/sh
Xgl -fullscreen :1 -ac -br -accel glx:pbuffer -accel xv:pbuffer &
sleep 4
export DISPLAY=:1
exec gnome-session

</bash>

Guardamos el documento y cerramos el editor de textos. Ahora debemos darle permisos de ejecución con el siguiente comando:

$ sudo chmod a+x /usr/local/bin/startxgl.sh

Por último debemos crear el archivo de inicio de sesión XGL:

$ sudo mkdir -p /etc/X11/sessions
$ sudo gedit /etc/X11/sessions/xgl.desktop

Añadiremos las siguientes lineas al archivo xgl.desktop:

[Desktop Entry]
Encoding=UTF-8
Name=Xgl
Exec=/usr/local/bin/startxgl.sh
Icon=
Type=Application

KDE

Agregaremos la sesión XGL a las ya existentes:

$ sudo kate /usr/local/bin/startxgl.sh

Una vez abierto el archivo startxgl.sh, añadir lo siguiente:

<bash>

#!/bin/sh
Xgl -fullscreen :1 -ac -br -accel glx:pbuffer -accel xv:pbuffer
&
sleep 4
export DISPLAY=:1
exec startkde

</bash>

Guardamos el documento y cerramos el editor de textos. Ahora debemos darle permisos de ejecución con el siguiente comando:

$ sudo chmod a+x /usr/local/bin/startxgl.sh

Por último debemos crear el archivo de inicio de sesión XGL:

$ sudo mkdir -p /etc/X11/sessions
$ sudo kate /etc/X11/sessions/xgl.desktop

Añadiremos las siguientes lineas al archivo xgl.desktop:

[Desktop Entry]
Encoding=UTF-8
Name=Xgl
Exec=/usr/local/bin/startxgl.sh
Icon=
Type=Application

Iniciar Compiz Fusion

Para iniciar compiz, una vez instalado todo, es necesario escribir por consola el siguiente comando:

$ compiz --replace

Con esto probamos que nuestra configuración funciona correctamente, además si queremos usar los temas de beryl en el Emerald, en vez de lo anterior, escribir esto:

$ compiz --replace -c emerald

Para ver más opciones permitidas podemos escribir :

$ compiz --help 

o con más detalles  :

 $ man compiz.real

El problema que surge es que al escribir estos comandos, al cerrar el terminal de consola nos provocará que perdamos los efectos o la decoración de ventanas. Para evitar esto podemos iniciar Compiz de varias formas.

Compiz Fusion en el inicio de Ubuntu

Una vez verificado que funciona nos falta indicar que queremos que se ejecute Compiz Fusion al inicio de nuestra sesión, por lo que agregamos a los programas de inicio. Para ello nos dirigimos a “Sistema > Preferencias > Sesiones” y en la pestaña "Programas de inicio" pulsamos Añadir y escribimos, por ejemplo:

$ compiz --replace

Esto hará que se inicie Compiz al inicio de cada sesión.

Lanzador de Compiz

Otra opción es crear un lanzador en el escritorio, para que por defecto no estén activos los efectos pero podamos iniciarlo en cualquier momento. Para ello simplemente creamos un lanzador de aplicaciones en nuestro escritorio con el comando descrito anteriormente. Al hacer doble click se activarán los efectos de Compiz.

Desactivar Compiz

Una vez activado los efectos aportados por compiz la única manera de detener los efectos es reiniciando el servidor X.

Posibles problemas y posibles soluciones

Compiz Fusion es un software sujeto a un fuerte proceso de desarrollo. Esto implica bastante inestabilidad y debido a la constante innovación y cambios que se producen en este software de manera DIARIA es muy recomendable estar al tanto de los cambios, ya que en ocasiones se puede romper completamente la compatibilidad entre una versión y otra.

Instalé todo, pero desaparecen los bordes de mis ventanas

Si desaparecen los bordes de tus ventanas es porque la configuración de tu xorg.conf no es la correcta, para corregirlo editamos el archivo tecleando en la terminal:

$ sudo gedit /etc/X11/xorg.conf
Nota clasica.png Si Kubuntu (KDE) el editor de textos predeterminado es el kate.

Y añadimos esto al final del archivo:

Section “DRI”
Mode 0666
EndSection

Problema con el driver de NVIDIA 1.0-9629

Existe un problema con el nuevo driver de NVIDIA 1.0-9629 en el cual no muestra la decoración de ventanas y nos da el siguiente error:

 beryl: No GLXFBConfig for depth 32

Para resolverlo, simplemente añade esta linea a /etc/X11/xorg.conf en la sección Screen:

 Option "AddARGBGLXVisuals" "True"

En algunas tarjetas nVidia,lo anterior no funciona. Lo que hay que hacer en esos casos para tener decoración de ventanas es editar xorg.conf y en la Section "Device" agregar estas dos líneas antes de EndSection:

  Option "AddARGBVisuals" "True"
  Option "AddARGBGLXVisuals" "True"

Finalmente reiniciar el servidor gráfico (CTRL+Alt+retroceso)

Aplicaciones 3D con XGL

En Xgl no existe el Direct Rendering, pero no desesperéis, porque XGL corre sobre una sesión que sí lo tiene.

Para usar aplicaciones 3D (juegos a pantalla completa, por ejemplo), solamente hay que ejecutarlos desde terminal con el maravilloso parámetro "DISPLAY=:0 "(sin las comillas) antes de la ruta del juego (generalmente basta el nombre del juego para lanzarlos).

Resulta más cómodo trastear con las lanzaderas de los menuses o hacer Shell Scripts para lanzarlos. DISPLAY=:0 los lanza a través del primer display, donde SÍ hay Direct Rendering.

Es especialmente útil cuando juegas a cosas como el Tremulous o el OpenArena, o a cualquier juego D3D que lances desde Wine o Cedega.

No aparecen los botones de Apagar y Reiniciar con XGL

Puede ocurrir que al iniciar la sesión con XGL/Compiz Fusion e ir a Apagar el sistema descubras que hayan desaparecido los botones de Apagar y Reiniciar. Pero si inicias con Gnome todo esta en su sitio. La explicación y la solución de este problema se puede leer en este hilo.

Si usas Ubuntu (GNOME)

Abre el archivo startxgl.sh:

$ sudo gedit /usr/local/bin/startxgl.sh

Y editamos el archivo para que quede de la siguiente manera:

<bash>

#!/bin/sh
Xgl -fullscreen :1 -ac -accel glx:pbuffer -accel xv:pbuffer & sleep 2 && DISPLAY=:1
cookie="$(xauth -i nextract - :0 | cut -d ' ' -f 9)"
xauth -i add :1 . "$cookie"
# Iniciar Gnome
exec gnome-session

</bash>

Guarda el archivo y reinicia el sistema para tener solucionado el error.

Si usas Kubuntu (KDE)

Abre el archivo startxgl.sh:

$ sudo kate /usr/local/bin/startxgl.sh

Y editamos el archivo para que quede de la siguiente manera:

<bash>

#!/bin/sh
Xgl -fullscreen :1 -ac -accel glx:pbuffer -accel xv:pbuffer & sleep 2 && DISPLAY=:1
cookie="$(xauth -i nextract - :0 | cut -d ' ' -f 9)"
xauth -i add :1 . "$cookie"
# Iniciar KDE
exec startkde

</bash>

Guarda el archivo y reinicia el sistema para tener solucionado el error.

Ver también

Enlaces externos