16 septiembre, 2005

Devil's Pie 0.11

Ha salido la versión de Devil's Pie 0.11, que arregla un bug que afectaba al archivo de configuración del terminal como fondo de escritorio. En especial a la acción sobre el tipo de ventana, que causaba una 'Violación de segmento'.

Esta misma mañana le envié un correo a Ross Burton, el autor de la aplicación comentándole el bug (en un pésimo inglés). En apenas una hora me ha respondido, diciéndome que habíamos sido dos personas los que habíamos reportado el error en menos de dos horas y que ya estaba solucionado, indicándome de dónde podía descargar el parche. He abierto la página de Devil's Pie cuando he podido y ya había sacado una nueva versión, la 0.11, que arregla este fallo, aparte de algún otro.

Menos mal, ya que mi escritorio no era el mismo sin mi terminal tan a mano, sin tener que buscarlo por el panel de aplicaciones. Cuando te acostumbras a algo no lo echas en falta hasta que no lo tienes.

Gracias Ross Burton.

02 septiembre, 2005

Terminal como fondo de pantalla

Esta es una pequeña guía que escribí en la web anterior de Gula. La he modificado (más bien poco) y la publico aquí, ya que en estos momentos no está en ningún sitio (creo).

Un día me dije: "si lo que más uso es la consola, pero me gusta acceder a los menús de los escritorios para lanzar aplicaciones de X... ¿Por qué no tener las dos cosas?". Dicho y hecho, utilizo Gnome, pero mi fondo de pantalla es un terminal. Tanto si pulso en "mostrar escritorio", como si accedo al escritorio con combinación de teclas, tengo un terminal esperando que teclee comandos. Además no aparece en la barra de tareas ni tabulando entre ventanas. Podéis ver una muestra de un terminal como fondo de pantalla.

Probablemente habrá una forma más fácil (no la he encontrado, pero se aceptan ideas), y como me costó encontrar esta solución se me ocurrió hacer una guía.

¿Qué necesitamos?

  1. Gnu/Linux - Indudablemente.
  2. Escritorio Gnome- Es el que utilizo desde hace tiempo, no sé si funcionará en otros ya que depende del manejador de ventanas metacity; aunque creo que utiliza especificaciones de freedesktop, por lo que debería funcionar en todos los manejadores de ventanas que las cumplan.
  3. devilspie - Después de conocer esta aplicación mi vida cambió radicalmente. Está diseñada para metacity, actualmente va por la versión 0.10.
  4. Terminal x preferido, preferible que pueda tener fondo transparente. Teóricamente sirve cualquiera del tipo Eterm, aterm, ... aunque el elegido ha sido gnome-terminal (ya que estamos con Gnome).
  5. Un empujoncito brindado por el foro de Mandrake, que me guiaron por el buen camino, es el único sitio donde encontré información: Entrada en el foro de Mandrake.

En primer lugar creamos un perfil del gnome-terminal: Abrimos un terminal. En el menú Editar elegimos Perfiles... Creamos uno nuevo, por ejemplo de nombre "terminal-desktop". A este perfil le damos los valores que deseemos: tipo de letra, tamaño de fuente, color de fuente, color de fondo (en mi caso fondo transparente), etc. En el campo "Título inicial" le daremos el nombre por el que luego reconoceremos el terminal que ejecutemos con este perfil; en un alarde de ingenio yo lo llamé "terminal-desktop". Lo guardamos y vamos al siguiente paso.

El principal artífice de nuestro terminal como fondo es la aplicación devilspie. Esta herramienta sirve para manipular ventanas del gestor de ventanas metacity (en el que yo lo he probado). Así que básicamente, lo que hacemos es lanzar esta herramienta, previamente configurada. Devilspie detecta cuando se lanza una aplicación, examina los parámetros de la ventana según unas reglas que le damos y le cambia unos parámetros que le definimos.

La documentación sobre devilspie es un poco pobre, como ejemplo visualizad el man. Así que tuve que buscar bastante para encontrar cómo funciona el archivo de configuración. Si queréis una lista de las propiedades que se pueden cambiar con devilspie buscad en el README que viene con el código fuente, que fue el último sitio donde miré :'(. Leyendo esta documentación, que es suficiente una vez entiendes el funcionamiento, escribí mi archivo de configuración (basado también en el foro de Mandrake). Este archivo de configuración se llama .devilspie.xml y debe estar en vuestro $HOME:

Código:


<?xml version="1.0"?>
<!DOCTYPE devilspie SYSTEM "devilspie.dtd">
<!-- Archivo: .devilspie.xml -->
<!-- The root element is devilspie -->
<devilspie>
    <flurb name="Terminal in desktop">
        <matchers>
            <!-- Este matcher busca en el titulo de la ventana -->
            <matcher name="DevilsPieMatcherWindowName">
                <property name="window_title" value="terminal-desktop"/>
                <!-- mismo nombre que le hemos dado al titulo en el perfil -->
                <!-- para utilizar Eterm -->
                <!--
                    <property name="application_name" value="Eterm"/>
                -->
            </matcher>
        </matchers>
        <actions>
            <!-- Esta accion sirve para esconder la ventana -->
            <action name="DevilsPieActionHide">
                <!-- Esta propiedad esconde la ventana de la barra de tareas -->
                <property name="skip_tasklist" value="TRUE"/>

                <!-- Esta propiedad esconde la ventana de las 
                    areas de trabajo -->
                <property name="skip_pager" value="TRUE"/>
            </action>

            <!-- Esta accion mueve la ventana delante o detras, 
                solamente tiene la propiedad above -->
            <action name="DevilsPieActionLayer">
                <property name="above" value="FALSE"/>
            </action>

            <!-- Esta accion coloca la ventana en un espacio de trabajo -->
            <action name="DevilsPieActionSetWorkspace">
                <!-- Esta propiedad pone la ventana en 
                    todos los espacios de trabajo -->
                <property name="pinned" value="TRUE"/>
            </action>

            <!-- Esta accion cambia el tipo de ventana -->
            <action name="DevilsPieActionSetWintype">
                <!-- ESTA ES LA PROPIEDAD QUE PONE EL 
                    TERMINAL COMO FONDO DE ESCRITORIO -->
                <property name="wintype" value="DESKTOP"/>
            </action>

            <!-- Esta accion cambia la geometria de la ventana -->
            <action name="DevilsPieActionSetGeometry">
                <property name="width" value="xxx" />
                <property name="height" value="yyy" />
                <property name="xoffset" value="x0" />
                <property name="yoffset" value="y0" />
            </action>
        </actions>
    </flurb>
</devilspie>

Después de configurarlo simplemente debemos añadir devilspie al principio de la sesión. En Gnome se consigue buscando el menú 'Preferencias del escritorio -> Sesiones' (o ejecutáis el comando 'gnome-session-properties'). Allí escribimos devilspie en 'Programas al inicio'.

Ahora ponemos también en sesiones el terminal, que se ejecute después de devilspie, el comando es tan sencillo como: gnome-terminal --window-with-profile=terminal-desktop

Y ya está, tenemos nuestro terminal en el fondo de pantalla. Aunque cambiemos de espacio de trabajo tendremos los comandos que estemos ejecutando (esto se puede configurar). También podemos comprobar cómo, al pulsar en el icono de ver escritorio tendremos allí nuestro terminal, sin ventanas que estorben ni tener que buscarlo. Podéis probar distintas configuraciones, hasta encontrar la que más os agrade.

Alternativa a gnome-terminal: Eterm, terminal muy configurable que acepta temas (man Eterm para más señas).

Espero que esta guía le sirva a alguien. Esta es una pequeña demostración de la potencia de devilspie, se deja a cargo del lector buscar cualquier otro uso. No se explica cómo instalar cada uno de los programas, ya que para cada distribución es diferente y no es el objetivo de esta guía explicar cómo se instalan. Si tenéis cualquier duda intentad contactar conmigo y, si puedo, os la resolveré.