09 enero, 2006

Devil's Pie 0.16 y s-expressions

Me he decidido a probar la nueva versión de Devil's Pie (a pesar de que estaba funcionando con la versión 0.11). La última versión (al escribir estas líneas) es la 0.16. Hasta ahora no había cambiado la versión porque a partir de la versión 0.13 se cambió el archivo de configuración xml por archivos de configuración con formato "s-expression" (luego comentaré ese formato para quien no lo conozca).

¿Por qué el cambio de formato xml (cada vez más utilizado) a s-expressions? Para entender ese cambio habría que conocer un poco el formato s-expression (como yo no lo conocía eché un vistazo a la Wikipedia):

Básicamente, las s-expressions sirven para representar estructuras de datos en forma de texto. Se utilizan en los lenguajes de programación Lisp y Scheme principalmente.

Así, viendo las novedades de la versión 0.13 de Devil's Pie parece ser que se realizó el cambio porque con las s-expressions se pueden combinar diferentes "matchers" (¿alguna traducción candidata?) con operadores lógicos (or, and, not) de forma sencilla, multiplicando las posibilidades de configuración.

Hay una buena documentación en este wiki de Devil's Pie. Está bastante bien explicado y no se necesitan grandes conocimientos de inglés para seguir los ejemplos.

Después de probar la nueva forma de configuración solamente puedo decir que me gusta más. Ahora, en vez de tener un único archivo .devilspie.xml tenemos varios archivos .devislpie/archivo[s].ds. Y una vez escitos nuestros archivos y comprendiendo cómo funcionan, su lectura es muy rápida. Mi .devilspie/terminal-desktop.ds:

(if
        (is (window_name) "terminal-desktop")
        (begin
                (pin)
                (geometry "750x700+5+25")
                (skip_pager)
                (skip_tasklist)
                (wintype "desktop")
        )
)

Con este archivo tengo una terminal como fondo de pantalla, con las siguientes opciones:

  • pin: Para que aparezca en todos los escritorios.
  • geometry: Marca la geometría de la ventana en el formato (anchura)x(altura)+-(xoffset)+-(yoffset).
  • skip_pager: No mostrar en las áreas de trabajo.
  • skip_tasklist: No mostrar en la lista de tareas.
  • wintype: Especifica el tipo de ventana.

¿Complicado? Si tenéis alguna duda contactad conmigo e intentaré resolverlas.

No hay comentarios: