5 de agosto de 2010

Script gráfico que crea un fondo de pantalla dinámico. Backg 1.0

Os acordáis de cómo crear un fondo de pantalla dinámico en Ubuntu?

Era bastante pesado tener que copiar cada ruta de imágen 3 veces; y eso que son 9 imágenes; sustituyéndola en el script. Ideé un script gráfico que al ejecutarlo, nos abre un navegador de carpetas en el que tenéis que seleccionar las imágenes que queráis y que ya te genera el script solo :-)

Para no ensuciar la portada del blog , hacemos click aquí para seguir leyendo el post.



¿Cómo funciona?

Fácil, se hace uso de los comandos más sencillos de Linux. echo, redireccionamiento de salida, ...

Se utiliza Zentify para lograr el seleccionador de imágenes gráfico. Al seleccionar cada imágen, guarda la ruta de cada una y la va escribiendo en el archivo .xml cuyo nombre por defecto es "backg.xml".

Descargar y ejecutar

Realmente es así de sencillo. Descargamos la versión 1.0 aquí, hacemos doble click en el script y lo ejecutamos.

Tras haber seleccionado las 9 imágenes, el script te habrá generado un archivo .xml en la ruta /Imágenes cuyo nombre es "backg.xml".

Ahora, vamos a nuestro escritorio, click derecho, "Cambiar el fondo de pantalla":


Paso 1: Cambiar fondo de pantalla



Añadir el script:

Paso 2: Añadir el script

Hacemos visible todos los archivos:

Paso 3: Hacer visible todos los archivos
Seleccionamos el script y lo añadimos:

Paso 4: Seleccionar el script y añadirlo
Cerramos y listo, ya tenemos nuestro fondo de pantalla dinámico.

4 comentarios:

  1. Hola. Le he estado echando un ojo a tu script, y si me permites, te hago un par de correcciones.

    La primera es la parte de "cd Imágenes/". Muchos de los que ejecutan el script no tendrán esta carpeta, o con ese nombre, así que tira un error (no es problema, pero queda feo). De todas maneras si quieres incluirlo, pon "cd ~/Imágenes", así funcionará aunque el script se ejecute en un lugar distinto al home del usuario (ruta absoluta).

    Y bueno, lo otro es una pequeñez, las dos últimas lineas, "# ** backg 1.0 ** Made by Monzi_sez
    # Creative Commons, www.monzisez.blogspot.com" tienes que comentarlas con una almohadilla, como te pongo, no con el símbolo del dolar (se hace así en bash).

    También aclararía que es necesario usar zenity (yo lo tenía de otra vez que estuve trasteando con él haciendo unos scripts, pero fuera de Ubuntu, no creo que sea tan común tenerlo instalado :) ).

    ResponderEliminar
  2. Antes que nada, es la versión 1.0 y tengo previsto muchos cambios, entre ellos que te pida la ruta de tu imágen antes de comenzar, el nombre con el que lo guarda, etc...

    No quise poner todo de golpe para intentar atraer más público y seguidores al blog.

    La primera parte no es problema ninguno, he puesto "Imágenes" porque es la que hay por defecto, sino se ejecutaría en el home de la persona. Pero te haré caso, y lo voy a cambiar a "cd ~/Ima....."

    Las almohadillas también las pongo, lo sabía pero lo puse al voleo todo :p

    Zenity es uno de los pocos que te permiten tener una GUI. Y por lo que tengo entendido, no solo está para ubuntu y se puede instalar en otros S.O.
    ¿Qué GUI común me recomendarías?

    Lo bueno de todo esto es que el script está alojado en mi cuenta Dropbox, por lo que al actualizar el script la URL no cambia :-)

    Gracias y saludos :-)

    ResponderEliminar
  3. Hola monzisez, XD.
    estaría mejor si lo realizaras con bucles, y así no estar limitado solo a ciertas imagenes, :).

    # Espero que gmail no coma nada de los que no se deb ###

    #!/bin/bash
    #FILE=`zenity --file-selection --filename --title="Seleccione un archivo"`
    cd ~/Imágenes
    echo "Bienvenido al creador de fondo de pantallas dinámicos de monzi's blog."
    echo "www.monzisez.blogspot.com"


    echo "

    2010
    01
    28
    16
    19
    00

    " > backg.xml

    x=0

    FILE[$x]=`zenity --file-selection --filename --title="Seleccione un archivo"`

    case $? in
    0)
    echo "\"${FILE[$x]}\" seleccionado.";;
    1)
    echo "No ha seleccionado ningún archivo.";;
    -1)
    echo "No ha seleccionado ningún archivo.";;
    esac

    while [[ ${FILE[$x]} != "" ]]
    do
    x=`expr $x + 1`

    FILE[$x]=`zenity --file-selection --filename --title="Seleccione un archivo"`

    case $? in
    0)
    echo "\"${FILE[$x]}\" seleccionado.";;
    1)
    echo "No ha seleccionado ningún archivo.";;
    -1)
    echo "No ha seleccionado ningún archivo.";;
    esac


    echo "
    1795.0
    "${FILE[`expr $x - 1`]}"" >> backg.xml
    echo "

    5.0" >> backg.xml
    echo ""${FILE[`expr $x - 1`]}"" >> backg.xml
    echo ""${FILE[$x]}"" >> backg.xml
    echo "" >> backg.xml


    done

    # bucle para que vuelva a empezar desde imagen 1
    echo "
    1795.0" >> backg.xml
    echo ""${FILE[$x]}"" >> backg.xml
    echo "

    5.0" >> backg.xml
    echo ""${FILE[$x]}"" >> backg.xml
    echo ""${FILE[0]}"" >> backg.xml
    echo "

    " >> backg.xml



    # ** backg 1.0 ** Made by Monzi_sez
    # Creative Commons, www.monzisez.blogspot.com

    ResponderEliminar
  4. En ubuntu 11.10 ya no permite seleccionar el archivo.xml en la interfaz fondo de escritorio. Para que aparezca disponible a todos los usuarios hay que meter una línea en el archivo:
    /usr/share/gnome-background-properties/ubuntu-wallpapers.xml
    Del tipo:
    <wallpaper deleted="false">
    <name>mi secuencia de wallpapers</name>
    <filename>/home/usuario/.miswallpapers/archivo_mio.xml</filename>
    <options>zoom</options>
    </wallpaper>

    Estaría bien que el script metiera el archivo_mio.xml en /usr/share/gnome-background-properties/archivo_mio.xml e introdujera el trozo de código pertinente en /usr/share/gnome-background-properties/ubuntu-wallpapers.xml .

    ResponderEliminar