Composite

Publication date
12/28/2004
Categories
, ,

This post is archived. Possibly it isn't valid anymore or it's simply no more interesting.

Una de les avantatges de l'X.Org és que soporta noves extensions com el Composite que permet crear transparències. Això ens permet afegir ombres a les finestres i difuminats al mostrar-les o ocultar-les.

Captura de l'escriptori amb l'extensió Composite activada

Els passos a seguir són aquests:

  1. Carreguem les extensions necessàries a l'arxiu de configuració de les X.Org (/etc/X11/xorg.conf)

    Section "Extensions"
        Option  "RENDER"    "Enable"
        Option  "Composite" "Enable"
    EndSection
  2. Reiniciem les X per assegurar-nos que arrenca sense problemes i comprovem que el Composite està habilitat (un xdpyinfo | grep -i composite hauria de mostrar-ho).

  3. Si hem arribat aquí sense problemes ja només ens queda jugar amb els paràmetres de l'xcompmgr, que és l'aplicació que s'encarrega de tot aquest "eye candy" (man xcompmgr per veure les opcions que accepta).

    Per facilitar-me la feina m'he creat aquest script per deixar-me l'escriptori tal com vull:

    #!/bin/sh
    
    ######################################################################
    # Configuració
    ######################################################################
    
    SHADOW_RADIUS=10
    SHADOW_OFFSET_LEFT=0
    SHADOW_OFFSET_TOP=5
    SHADOW_OPACITY="0.3"
    
    ######################################################################
    # Apliquem la configuració
    ######################################################################
    
    xcompmgr -nfFc -D 0 
        -o "$SHADOW_OPACITY" -r "$SHADOW_RADIUS" 
        -l "$(echo "$SHADOW_OFFSET_LEFT - $SHADOW_RADIUS * 1.5" | bc)" 
        -t "$(echo "$SHADOW_OFFSET_TOP - $SHADOW_RADIUS * 1.5" | bc)" &

Acceleració per hardware

Si veus que tot va molt lent és possible que no s'aprofiti l'acceleració 2D de la teva targeta gràfica. En el cas de les NVidia es pot habilitar l'acceleració per hardware editant novament la configuració de l'X.Org:

Section "Device"
    Driver "nvidia"
    (...)
    
    # Enable or disable hardware acceleration of the RENDER
    # extension.  THIS OPTION IS EXPERIMENTAL.  ENABLE IT AT YOUR
    # OWN RISK.  There is no correctness test suite for the
    # RENDER extension so NVIDIA can not verify that RENDER
    # acceleration works correctly.   Default: hardware 
    # acceleration of the RENDER extension is disabled.
    
    Option "RenderAccel" "true"
EndSection

El problema del driver d'NVidia és que no permet recomana utilitzar alhora el Composite i el mòdul GLX, que és el que s'encarrega de l'acceleració 3D. De fet, per defecte no ens deixarà activar els dos alhora. Però sempre podem forçar-ho afegint el següent:

Section "Device"
    (...)

    # Enables GLX even when the Composite X extension is loaded.
    # ENABLE AT YOUR OWN RISK.  OpenGL applications will not
    # display correctly in many circumstances with this setting
    # enabled.  Default: GLX is disabled when Composite is
    # loaded.
                        
    Option "AllowGLXWithComposite" "true"
EndSection

Jo per si de cas no l'he habilitat. Per lo poc que utilitzo les 3D no val la pena arriscar-se...

Problemes

Es veu que hi ha aplicacions que no s'aclaren amb la nova extensió, algunes peten com el plugin de Flash i d'altres no es mostren correctament, com les versions anteriors a la 2.8.8 del gestor de finestres Metacity (el que ve per defecte amb el Gnome).

La solució (temporal) passa per definir la variable XLIB_SKIP_ARGB_VISUALS. Per exemple, jo l'he definit a l'arxiu .gnomerc del meu $HOME.

# Workaround per les aplicacions que peten amb el Composite habilitat
export XLIB_SKIP_ARGB_VISUALS=1

4 comments

  1. raimon

    12/29/2004 | #

    ... no ens pots deixar a mitjes, continua :)

    Quan em passi a Fedora Core 3 (que espero que sea en breve... i no fer experiments amb l'actual 2) i surtin dubtes.... ja pots preparar la enciclopidia de primers auxilis :)

    un altre escriptori que em va sorprendre com a concepte, es el skippy, que permet:
    "Una aplicación para generar miniaturas de las ventanas que tenemos abiertas presentándolas todas en el escritorio, evitándonos tener que recorrer la lista de ventanas para seleccionar una ventana a restaurar."

    Aqui trobareu el How to per fedora -> http://fedoranews.org/tchung/skippy/

    Potser encara prefereixo el ALT+TAB o el CRT+TAB.....

  2. Francesc

    01/01/2005 | #

    Apa, ja he acabat l'article :-)

    Raimon, he provat l'skippy i té molt bona pinta (a l'igual que el komposé). Llàstima que em consumeixi tants recursos.

    Ja explicaràs què tal quan ho provis...

  3. Mans

    01/08/2005 | #

    Ei Rooz, molt bon tutorial! Només aclarir per a qui li faci tonteries el metacity, que actualitzant a la versió 2.8.8 va perfecte (utilitzo gentoo). Res més

    Salut!

  4. Francesc

    01/08/2005 | #

    Acabo d'actualitzar el metacity i tens raó, ja s'ha solucionat el problema.

    Una cosa menys per la que preocupar-se ;-)

Comment this post

Fields marked with * are required.

*
It won't be made public. If you have a gravatar it will be displayed.
*