La indocumentada opción de fondos animados en GNOME

En las últimas versiones de Ubuntu, el entorno de escritorio para GNU/Linux GNOME (http://en NULL.wikipedia NULL.org/wiki/GNOME) ha incluido “fondos animados” (“slideshow backgrounds”, en inglés). Como en otros sistemas operativos conocidos (MacOS, Windows Vista y Windos 7), se trata de poner un conjunto de imágenes como fondos del entorno de escritorio, formando una secuencia de nuestras imágenes favoritas.

Una idea sencilla, ¿no? Pues en GNOME es bastante complicadita. Para empezar, una secuencia de fondos debe definirse con un documento XML; y es dentro de este XML donde se define qué imágenes forman la secuencia y la duración de cada una de ellas como fondo, independiente de las demás. Por ejemplo, se puede especificar que las imágenes que son fotografías mías, duren como fondo 15 minutos, y las que son tapices genéricos de los que descargo en Deviantart (http://deviantart NULL.com/), que duren 10 minutos.

appearance background 300x260 La indocumentada opción de fondos animados en GNOME
Selección de fondos de escritorio en Ubuntu Lucid Lynx 10.04

Muy flexible y todo eso, pero hay tres grandes desventajas. La primera, muy importante, es que al parecer no hay una especificación de la estructura del documento XML que define los fondos animados. Todo lo que se puede hacer es experimentar y usar como base el fondo animado que viene por defecto (situado en /usr/share/backgrounds/cosmos/background-1.xml).

La segunda es que no permite que la secuencia sea aleatoria, pues además de definir una lista de imágenes, (al parecer) se deben definir las transiciones de una imagen a otra, y no hay manera de decir “esta secuencia de imágenes es aleatoria, cuando pases a la siguiente, escoge una al azar”. Quizás sí es posible especificar una secuencia aleatoria, pero como no está documentado, no hay mucho que hacer.

La última es muy importante, pues no hay una herramienta visual oficial con la cual generar fondos animados para GNOME. Se han ido creando varias aplicacioncitas que los generan, desde simples scriptcillos a herramientas bastante elaboradas con una buena interfaz. Pero la oficial, la creada por la gente de GNOME, sigue sin aparecer.

El arroz con pollo

Precisamente, una de las herramientas más completas es Crebs (https://launchpad NULL.net/crebs/), acrónimo de CREate Background Slideshow. Esta puede usarse tanto con interfaz gráfica o mediante ĺinea de comandos, siendo posible usos muy diversos. No obstante, hay detalles que no me gustan de este programita; por ejemplo, no es posible “darle agua” (o “aleatorizar”, como prefieran) a la secuencia de imágenes, de manera que no se presente con el mismo orden en que se añadieron las imágenes. Dicen los desarrolladores que han pensado en eso, pero están trabados en dónde posicionar el botoncito que diga “Shuffle”…

crebs 291x300 La indocumentada opción de fondos animados en GNOME
Crebs con algunas imágenes de muestra

Otra cosa, es obligado arrastrar las imágenes a la ventana, no hay un botoncito para agregarlas con un diálogo de Abrir como Dios manda ni nada de eso… En fin, que tiene sus detalles.

El pollo

Me decidí a hacer mi propio generador de fondos animados para GNOME, pero que no sea la gran cosa, al menos que cubra mis necesidades, sobre todo como utilidad de línea de comandos. Enumerando los requisitos:

  • Las imágenes a utilizar para la secuencia se especificarán mediante un archivo o mediante la entrada estándar. Esto permite más flexibilidad para generar la lista de imágenes, puesto que hay mejores formas de generar listados de imágenes en carpetas y subcarpetas, usando las herramientas diarias de GNU/Linux. Permitiendo que se especifique mediante la entrada estándar, es posible encadenar la salida de un comando que genera el listado de imágenes (como find (http://en NULL.wikipedia NULL.org/wiki/Find)) a la entrada de mi generador de fondos, y permitiendo cualquier guarrada en bash (http://en NULL.wikipedia NULL.org/wiki/Bash_(Unix_shell)) siempre que devuelva un listado de imágenes válido.
  • Aleatorizar el listado de imágenes. Importante funcionalidad, así no me cansaré de ninguna secuencia específica.
  • Establecer el fondo acabado de generar como el actual de GNOME.
  • Emitir el XML generado hacia la salida estándar. Ahora mismo no sé en qué puede ser útil, pero me dió por pensar que para algo podría servir, y no es difícil de incluir.
  • Especificar tiempos de duración de cada imagen como fondo y la duración de las transiciones entre cada imagen.
  • Especificar cómo se mostrarán las imágenes como fondo, si se recortarán, se deformarán, se acercan o se alejan, etc…

Así creé mi propio generador de fondos animados para GNOME. No pretendo hacerle interfaz gráfica, pues su objetivo es sencillo: dado un listado de imágenes, genérame el fondo animado con estas opciones. El uso principal que le doy es este:

$ python /home/mandx/projects/slideshow_generator/slideshow_generator.py -s -w --image-list=/home/mandx/wallpaperlist.txt --out-file=/home/mandx/generated_background.xml

Esta línea la pego como una nueva entrada en las aplicaciones que se se ejecutan al iniciar la sesión (Sistema > Preferencias > Aplicaciones al inicio), así cada vez que inicio Ubuntu, se me genera siempre una nueva secuencia, distinta de la anterior, pero de una lista específica de imágenes.

startup apps 300x187 La indocumentada opción de fondos animados en GNOME
Agregando el script a las aplicaciones al inicio

Los argumentos usados son:

  • –image-list: Especificarle el archivo donde está mi listado de imágenes a usar. Por defecto se lee la entrada estándar. En este caso, la lista es el archivo /home/mandx/wallpaperlist.txt
  • –out-file: Especificarle dónde guardar el fondo generado. Por defecto, lo suelta a la salida estándar (la pantalla). En este caso, el fondo se guardaría en el archivo /home/mandx/generated_background.xml
  • -s: Con esto le digo que le “dé agua” al listado antes de generar el fondo.
  • -w: Aquí le digo que cuando genere el fondo, me lo ponga como fondo de escritorio actual.

También hay otros argumentos que no uso en la línea anterior:

  • –duration-time: Cuánto durará cada imagen como fondo. Por defecto son 600 segundos (10 minutos).
  • –transition-time: Cuánto durará la transición de una imagen a otra. Por defecto son 2 segundos.
  • -e: Verifica cada imagen de la lista si existe realmente. Si no la encuentra, no se agregará a la secuencia final y continúa la generación de la secuencia.

Y si lo llamamos con la opción -h nos mostrará la muela habitual de ayuda sobre todos los argumentos posibles (ah, sí… en inglés).

Si usas Ubuntu o GNOME y te interesa tener fondos animados, descárgalo y di qué bolá.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*


Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>