Bienvenido a la wiki dedicada a los usuarios nuevos en GNU/Linux, este sitio esta orientado a ayudar a los usuarios nuevos... Si deseas contribuir, por favor crate una cuenta.

Metisse

De PUFs Wiki

Metisse

Desarrollador:
O. Chapuis y N. Roussel
Paquete:
Ninguno
Género:
Entorno de Escritorio
Licencia:
GPL
En español:
No
Sitio Web:
http://insitu.lri.fr/metisse/

Metisse es un escritorio 3D para Linux, se diferencia de Compiz y Beryl en que tiene la usabilidad como objetivo, mientras que estos últimos tienen como objetivo un escritorio bonito. Es parte de una investigación en usabilidad que se está realizando por una universidad Francesa, y está liberado exclusivamente para la distribución de Linux Mandriva, sin embargo es código GPL y nosotros podemos obtenerlo :)

Tabla de contenidos


[editar] Introducción

Metisse se compone de dos partes, el núcleo en primer lugar y Metisse en segundo lugar.

El núcleo provee un servidor X11 acelerado mediante OpenGL, ¿Cómo lo logra? fácil, depende de un servidor X11 común ( por ej. X.org ) para ejecutarse encima como un cliente más, pero aprovecha las características OpenGL, basicamente como si fuera un glxgears mucho más importante :)

Luego, Metisse está basado en FVWM, obviamente bastante modificado para lograr todos los efectos 3D utilizando OpenGL.


[editar] Requerimientos

  • pkg-config
  • DNS-SD
  • Placa de video con aceleración 3D
  • GCC ( con g++ )
  • GNUMake


[editar] Obteniendo el Código Fuente

Para obtener Metisse nos dirigimos a la siguiente página http://insitu.lri.fr/metisse/docs/building.html donde nos dirá como obtener la última versión, una vez sepamos cual es basta ejecutar los siguientes dos comandos para obtener el codigo fuente:

# wget http://insitu.lri.fr/metisse/download/0.4.0-rc4/nucleo-0.6.tar.bz2
# wget http://insitu.lri.fr/metisse/download/0.4.0-rc4/metisse-0.4.0-rc4.tar.bz2

obviamente reemplazando el archivo con la versión correspondiente. De más está decir que necesitamos wget.

Luego procedemos a descomprimir utilzando tar de la siguiente manera:

# tar xvjf nucleo-0.6.tar.bz2
# tar xvjf metisse-0.4.0-rc4.tar.bz2

También podríamos haber optado por bajar el último código disponible mediante CVS.


[editar] Compilando el Núcleo

Para compilar el núcleo entramos al directorio correspondiente:

# cd nucleo-0.6

y ejecutamos el comando configure. Pero he aquí una de las gracias de compilar desde las fuentes, nosotros podemos especificarle soporte para que cosas queremos y con que optimización debe compilar el codigo fuente. No voy a entrar en detalles ya que para ello está el manual del GCC, pero supongamos que queremos utilizar las siguientes optimizaciones:

-O2 -march=athlon-xp -fomit-frame-pointer

entonces basta con ejecutar los siguientes comandos antes de configure:

# export CFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer"
# export CXXFLAGS=${CFLAGS}
# ./configure

el primero de ellos le dice a configure que opciones de optimización utilizar para compilar código C, el segundo le dice que utilice las mismas optimizaciones para compilar código C++. También podemos utilizar el comando

# ./configure --help

para que nos muestren todas las opciones de configure.

Hay que aclarar dos puntos muy importantes, el primero es que para los que quieran utilizar el plugin/módulo de QT deberán disponer de QT 4, cosa que probablemente no tengan ya que hasta que no salga KDE 4 no va a ser muy necesaria. El segundo es que sí o sí debemos tener soporte para DNS-SD, de lo contrario el núcleo no compilará por más que pase el configure satisfactoriamente.

Una vez terminado el configure podemos utilizar los siguientes comandos para compilar e instalar Matisse respectivamente:

# make
# make install

[editar] DNS-SD

Obviamente no basta con tener las librerías necesarias para el soporte DNS-SD, también necesitamos los archivos de encabezado y demás archivos relativos al desarrollo de aplicaciones, a continuación hay una lista de paquetes necesarios para obtener soporte DNS-SD en Metisse:

  • Gentoo: mDNSResponder
  • Debian/Ubuntu: ¿¿libavahi-compat-libdnssd-dev??


[editar] Compilando Metisse

El proceso es similar para Metisse en si, debemos utilizar configure, pero con la diferencia de que aquí podemos y debemos pasarle algunas opciones extra, en especial debemos decirle que utilice GLX, y opcionalmente que utilice extensiones MMX. Resumiendo debería ser algo así:

# cd metisse-0.4.0-rc4
# export CFLAGS="-O2 -march=athlon-xp -fomit-frame-pointer"
# export CXXFLAGS=${CFLAGS}
# ./configure --enable-glx-x86 --enable-mmx
# make
# make install

es importante mencionar algunas cosas:

  • El núcleo debe estar compilado e instalado con anterioridad.
  • Debemos utilizar --enable-glx-x86 ya que no sirve de nada usar --enable-glx porque Metisse solamente funciona en la plataforma i386.
  • Para los que quieran utilizar GTK+ vale decir que Metisse espera encontrarse con la versión 1.x de las librerías y no con la 2.x, con esta última no va a compilar, así que no intenten engañar al configure :)


[editar] Usando Metisse

Como mencionamos antes Metisse depende de un servidor X11, además de ejecutar su propio servidor y su propio manejador de ventanas, todo esto lo podemos hacer con los siguientes comandos:

# X &
# export DISPLAY=":0.0"
# Xmetisse -geometry 1280x1024 -ac :1 &
# metisse-start-fvwm -wd :1 &

Los comandos realizan las siguientes funciones:

  1. Ejecuta X.org, que por defecto será en el display 0.0
  2. Le dice a los comandos siguientes ( los de Metisse ) que el servidor X11 está en el display 0.0
  3. Ejecuta el servidor X11 de Metisse indicándole el tamaño de la ventana --recuerden que el servidor de Metisse es en realidad una ventana dentro de un servidor verdadero-- y que no utilice restricciones de control de acceso.
  4. Ejecuta la versión modificada de FVWM que utiliza los efectos 3D.

Vale aclarar que luego de ejecutar el primer comando debemos pulsar la combinación de teclas Ctrl+Alt+Fn para volver a nuestra consola y seguir escribiendo comandos.

A algunos quizás les moleste los escritorios o la barra de FVWM, desde luego que pueden reemplazar todo esto por un escritorio de KDE por ej. ejecutando la siguiente serie de comandos en la consola:

# export DISPLAY=":1.0"
# kicker &
# kdesktop &

Como verán, estos programas deben utilizar el display 1.0 ya que es el que está utilizando el servidor X11 de Metisse. Para GNOME pueden hacer algo similar:

TODO: VERIFICAR
# export DISPLAY=":1.0"
# nautilus &

Desde luego me imagino que más de uno querrá quitar la barra de FVWM o la ventanita con los escritorios flotantes, esto es sencillo, sabemos que estos procesos se llaman FvwmPager y FvwmButtons o similar, podemos ver estos procesos y matarlos adecuadamente de la siguiente forma:

# ps -e | grep -i fvwm
14013 tty1    00:00:00 fvwmi
14016 tty1    00:00:00 FvwmCompositor
14077 tty1    00:00:00 FvwmEvent
14080 tty1    00:00:00 FvwmPager
14083 tty1    00:00:00 FvwmButtons
14092 tty1    00:00:00 FvwmIconMan
# kill 14080
# kill 14083

Desde luego esto es solamente la prueba inicial, luego decidiremos si queremos utilizarlo como escritorio predeterminado, en cuyo caso podríamos crear un script en .xinitrc, o modificar los scripts correspondiente a nuestro Display Manager. También veremos que hacer con Fvwm, ya que podemos ejecutar los comandos a mano en lugar de un solo comando que haga todo y después matar procesos.

También se preguntarán que pueden hacer con su nuevo Metisse, bueno, aquí tienen algunas cosas para hacer: http://insitu.lri.fr/metisse/docs/using.html


[editar] Gentoo

Los usuarios de Gentoo disponen por suerte un overlay para portage: http://gentoo-wiki.com/HOWTO_Metisse


[editar] Problemas

Si encuentran problemas durante la compilación, no se asusten, jamás he visto un programa tan rehacio a ser compilado, aquí documento alguno de los errores con los que me he encontrado:

[editar] glxext.h

Durante la compilación aparece un error haciendo referencia a una línea como la siguiente:

#ifdef GLX_GLXEXT_PROTOTYPES
extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *);
#endif /* GLX_GLXEXT_PROTOTYPES */
typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
#endi

En este caso el problema se encuentra más arriba, si retrocedemos un poco veremos estas líneas:

#ifndef GLX_ARB_get_proc_address
typedef void (*__GLXextFuncPtr)(void);
#endif

lo único que debemos hacer es comentar las líneas que comienzan con el símbolo #, de esta forma:

/* #ifndef GLX_ARB_get_proc_address */
typedef void (*__GLXextFuncPtr)(void);
/* #endif */

cuando terminemos de compilar volvemos a dejarlas como estaban.

[editar] Metisse no se cierra

Esto es común, de hecho, es la regla diría yo. Para cerrar Metisse completamente basta con ejecutar el siguiente comando al finalizar la sesión:

# killall Xmetisse

[editar] x86-64

Lamentablemente Metisse está escrito de una manera poco portable a otras plataformas, por ahora solamente hay soporte para arquitecturas i386. He logrado compilar Metisse para x86-64 pero se cierra dando segfault.


[editar] Recursos y Enlaces

Herramientas personales