Compiz Fusion

De Guía Ubuntu
Saltar a: navegación, buscar
Compiz - fusion
Compiz logo.png
 
OpenCompositing
0.5.2 / ?
 ? / ?
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 22 de octubre 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.

Compiz Fusion en Ubuntu 7.10 Gutsy Gibbon

Para conseguir tener Compiz Fusión en esta versión de Ubuntu debemos instalar los drivers de la targeta gráfica, para ello hay que seguir los pasos de la sección de #Preparativos y una vez que estén correctamente instalados tansolo tenemos que activar Compiz Fusion. Para ello nos dirigiremos a Sistema -> Preferencias -> Apariencia y en la pestaña Efectos visuales podemos configurar entre 3 niveles: *Ninguno desactiva Compiz Fusion.

  • Normal nos ofrece unos efectos moderados, con un bajo consumo de recursos.
  • Extra nos ofrece más efectos, pero con un mayor consumo de recursos.

Si queremos tener un mayor control sobre los efectos de Compiz Fusion y poder personalizarlo totalmente tenemos que instalar los paquetes compizconfig-settings-manager y emerald. Una vez instalados volvemos a la ventana Apariencia y en la pestaña Efectos visuales nos encontramos con una 4 opción, Personalizado que nos permite como bien dice el nombre personalizar nuestros efectos. Una vez seleccionada la opción podemos hacer clic en "Preferencias de gtk" y nos aparecerá el compizconfig-settings-manager, una herramienta para configurar Compiz. También podemos acceder a esta herramienta desde Sistema -> Preferencias -> Advanced Desktop Effect Settings. Desde esta herramienta se pueden hacer todas las congifuraciones deseadas, añadir plugins, etc.

Preparativos

Antes de comenzar, 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 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, es más estable y seguro, pero sólo 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 sólo necesario seguir estos pasos en los casos descriptos.


Eliminando restos de Compiz y Beryl

Si ya habías instalado antes una versión del antiguo XGL+Compiz es necesario que desinstales, por lo menos, algunos 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 tanto, volvemos a la terminal y añadimos la clave del repositorio:

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

Acto seguido, actualizamos la lista de paquetes; para ello, 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
  • 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. Dependiendo del gestor de ventanas que tengamos instalado podremos hacerlo de una manera u otra.

GNOME

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 .

KDE

Para que al iniciar la sesión se ejecute el comando podemos añadir el comando en el inicio de KDE. Para podemos o usar la GUI o mediante consola.

$ cd 
$ kate ~/.kde/Autostart/compiz.sh

Escribimos en el nuevo fichero :

<bash>

#!/bin/bash
compiz --replace

</bash>

Guardamos y le damos permiso de ejecución. <bash>

$ chmod +x ~/.kde/Autostart/compiz.sh

</bash>

A partir de ahora se inicia Compiz con la sesión KDE.

Lanzador de Compiz (icono)

Existe una versión preliminar del famoso icono de Beryl portado al reciente Compiz Fusión, desde este icono podemos activar o des activar los efecto cómodamente.

Os lo podéis bajar de este enlace:

http://ubuntuforums.org/showpost.php?p=3163821&postcount=8

Nota (GNOME): si no os aparece el icono de Compiz Fusion pero si un espacio, debéis poner la barra de herramientas con un ancho mínimo de 26 píxeles

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

En Kubuntu para desactivar Compiz se puede invocar /usr/bin/metacity --replace.

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 puede ser por muchos motivos:

  • Porque no has instalado un decorador de ventanas compatible con Compiz Fusion. Si es eso te recomiendo que instales el paquete emerald mediante tu gestor de paquetes preferido (Synaptic) o mediante la terminal:
sudo aptitude install emerald
  • 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)

Compiz Fusion consume muchos recursos usando XGL

Ejecuta Compiz Fusion con este comando:

LD_PRELOAD=/usr/lib/fglrx/libGL.so.1.2.xlibmesa compiz --replace

Compiz Fusion se bloquea aleatoriamente y/o permanentemente al cerrar la sesión (logout)

Si usas una tarjeta gráfica Nvidia prueba con esto:

  • Abre el script de inicio de Compiz Fusion con este comando
sudo gedit /usr/bin/compiz
  • Busca esto:
# No indirect by default
INDIRECT=1
  • Y cámbialo por esto otro:
# No indirect by default
INDIRECT=0

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.

Las aplicaciones hechas en Java no se visualizan correctamente

Ver No se ve la interfaz gráfica de ninguna aplicación hecha en java si está funcionando Compiz Fusion

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

Soporte oficial de Compiz Fusion

Enlaces externos

Colabora en Wikipedia Wikipedia alberga un artículo enciclopédico sobre Compiz Fusion. (en español)
Colabora en Commons Commons alberga contenido multimedia sobre Compiz Fusion.

La versión original del artículo, o partes de él, han sido extraídas de Entre tuxes y pepinos, que edita bajo licencia by-nc-sa. Consúltese la autorización en Guía Ubuntu:Autorizaciones/Entre tuxes y pepinos.