Creando archivos XML manualmente - Ubuntu - Cambiar periodicamente tu wallpaper.

atxy2k

Bovino adicto
#1

Muy buen día a todos nuevamente, bueno, en esta ocasión les traigo algo en particular, a los que hemos tenido la oportunidad de instalar Ubuntu, o alguna distribución derivada de debian, nos hemos topado a la hora de cambiar nuestro fondo de escritorio, estos pequeños grupos de imagenes, el mas comun, Cosmos, que tiene la caracteristica de cambiar cada determinado tiempo, incluso cuando la maquina enciende de fondo de pantalla, mucha gente, e notado, en foros, paginas de internet, entre otras cosas, se pregunta, como realizar este tipo de archivos, y algunas lo han intentado, sin embargo, no todas han tenido éxito, por lo cual me dio la ociosidad de intentarlo hasta que me saliera, y bueno, me costo algunos intentos pero lo logre, por lo tanto, quiero proporcionarles la informacion para todas aquellas personas que desen hacer sus propios paquetes de imágenes para que cambien periódicamente cada determinado tiempo, esto lo haremos de manera manual, mediante la creación de un archivo XML para Ubuntu.

Preguntas Frecuentes:


¿Que es XML?
.- Consiste en un sistema de organización y etiquetado de documentos, no es precisamente un lenguaje, sino un conjunto de reglas que especifican la etiquetación de documentos, por lo tanto no maneja etiquetas especificas, se usa para poder compartir información de un sistema a otro, algunos lenguajes que incluyen XML son Html y Postscrip.
¿No es mas facil usar un programa que lo haga por nosotros?.- Bueno, esto puede ser quizá lo mas común en preguntar, de cierta manera si, es mas facil usar un programa que realize todas estas acciones, sin embargo, tenemos que tener en cuenta de que el programa debe de iniciarse junto con nuestro sistema, lo que nos produce consumo de procesador y consumo de ram, así mismo, nos consume minima, pero determinada cantidad de disco duro, y debemos de tener el daemon ejecutado todo el tiempo, por otro lado, utilizar un archivo XML para que realize estas cosas, nos reduce menos el consumo de ram, no debemos de tener ejecutado ningun daemon especifico, y definitivamente, un archivo en XML esta creado en el editor de textos, por lo tanto, un archivo XML no ocupa siquiera 10 kbts de disco duro, lo que lo reduce, a simplemente, nada.
¿Existe un programa que haga esto por si solo? En efectiva, si, existe un programa que puede realizar todo lo que nosotros haremos con tan solo un clic, generando un archivo XML para nosotros ya terminado, pero bueno, esto lo digo, ¿por que?, por que quiza muchas personas puedan descargarse un programa, instalarlo, y darle clic para hacerlo funcionar, pero no todas las personas tendran la voluntad de tratar de ver, como funciona, que es lo que hace, como es que se forma ese archivo, que es lo que contiene, y como puedo hacer uno si en algun momento no puede instalar el programa, o simplemente por el ambre de conocimiento, de esta manera, este tutorial viene siendo opcional para aquellas personas que lo deseen asi, aunque tambien pueden esperar a que simplemente postee el programa, pero bueno, que mejor para el autoestima que saber que entiendes exactamente como funcionan las cosas a las que las demas creen que solo se le da un cli ¿no?.
¿Hay algun conocimiento previo que deberia de tener? En realidad, si conocemos un poco de programación eh HTML, esto les será sumamente fácil, sin embargo, no es ninguna obligación, ya que sinceramente los pasos son sumamente sencillos, y con un poco de dedicación que le proporcionemos es mas que suficiente para poderlo realizar.
Y bien!… ya sin tanto preámbulo, comencemos.
Preparando Nuestro Area De Trabajo
Bien, pues primero que nada, como en casi todos los tutoriales, no podemos trabajar con todas las cosas revueltas en distintas carpetas y en distintos lugares, ya que esto, se nos haría sumamente complicado a la hora de manejar direcciones en linea de comandos, sin embargo, aunque hay gente que se arriesga a hacerlo así, en esta ocasión, es sumamente necesario incluir todo lo que usaremos en una sola carpeta, que en este caso no será mas que imágenes, para esto, preferiblemente, y para que les sea aun mas fácil a ustedes realizar los pasos de este tutorial, les recomiendo crear una carpeta en “Mi Carpeta Personal”, el nombre no importa, pero bueno, supongamos nosotros, que la llamaremos “Mi_xml” va?.

Una vez hecho esto, vamos a introducir dentro de ella, todas las imágenes, las cuales queramos que vayan cambiando periódicamente, para esto tendremos en cuenta, que mientras mas imágenes utilicemos, mas tiempo tardaremos creando nuestro archivo, por lo pronto, para este tutorial, voy a trabajar solamente con 5 imágenes, posteriormente ustedes pueden utilizar la cantidad que les guste.

Bien, aquí están mis 5 imágenes que usare para crear mi archivo XML, tengamos en cuenta dos cosas principalmente para nuestra comodidad al trabajar lo siguiente, primero que nada, observen, que las 5 imágenes que estoy utilizando son “jpg”, esto también es estratégico, ¿por que?, por que a la hora de trabajar, cuando manejamos muchas imágenes, es muy tedioso estar observando que tipo de extensión es cada una de las imágenes, por lo tanto para nuestra facilidad, tratemos de que todas sean por lo pronto de la misma extensión ¿sale?, ya cuando tengan un poco de practica, utilicen las imágenes que quieran y solo tomen en cuenta escribir bien su extensión, otro punto decisivo en lo siguiente, será, que al momento en que estemos trabajando, necesitaremos escribir exactamente los nombre específicos de las imágenes, por lo tanto, al ser muy tedioso estar escribiendo y viendo que tan complicado son sus nombres cuando usan muchos guiones, nombres en ingles, entre otros símbolos, será mas conveniente para nosotros renombrar las imágenes de forma en que sea más fácil ubicarlas posteriormente.
Bueno, ahí están mis imágenes renombradas, una vez esto hecho, explicare que será exactamente lo que haremos, mediante unos comandos de programación similar a los de HTML, indicaremos en un archivo, los datos necesarios para una transición de imágenes, esto es, pensando un poco más lógicamente, ¿que es lo que queremos?, primeramente, lo que queremos es que en la pantalla se nos muestra una imagen estatica durante determinado tiempo, al finalizar este tiempo, lo que queremos es que mediante una transición simple, la imágen, cambie de esa, a otra ubicada en el mismo lugar, para esto debemos indicar los datos necesarios, el tiempo necesario, y utilizar las etiquetas necesarias para todo nos salga bien, entendido esto, podemos pasar al lado interesante, lo que vamos hacer en este momento, será abrir el editor de textos con el que estemos trabajando, en mi caso, es Gedit, el editor de texto predeterminado de Ubuntu, ubicado en Aplicaciones/Accesorios/Editor De Textos, una vez abierto este, lo que haremos será activar el modo resaltado XML, para esto nos vamos al menú ver/modo resaltado/marcado/XML. ¿Para que nos sirve esto?, muchas personas al tratar de realizar este tipo de archivos, no tomaban en cuenta la sintaxis de las etiquetas que requiere XML para funcionar, con esta opción, el editor de texto nos marcara con otro color de letra, cuando alguna etiqueta este mal, con esto, se nos será aun mas sencillo concluir nuestro archivo XML con éxito, ya que podremos ver en que momento estemos cometiendo un error. Bueno, con eso concluimos los preparativos de configuración, ahora bien, antes de comenzar, debemos conocer unos comandos básicos que utilizaremos para programar la secuencia de cambio de imágenes, estos son los siguientes:
* <background> : esta etiqueta indicara el inicio, y el final de nuestro archivo, es decir, debemos de comenzar todo el archivo con este comando, y finalizarlo con el mismo, pero para indicar que estamos cerrando su función, utilizaremos una diagonal antes de la palabra, de esta manera: </background>.
* <starttime> : Esta etiqueta indicara el momento de inicio de toda nuestra secuencia, es decir, dentro de esta, deberemos de introducir 6 etiquetas mas, el año, mes,día, hora, minuto y segundo de cuando se iniciara nuestra transición de imágenes, al finalizar, tambien cerraremos la etiqueta utilizando </starttime>.
– <year> : Indica el año de inicio de transición de nuestras imágenes, generalmente usaremos un año anterior al que estemos para que desde el momento en que activemos nuestro archivo XML comience la transición, siempre va ubicado dentro de la etiqueta “starttime” y se finaliza con </year>.
– <month> : Indica el mes del año en que iniciara nuestra transición, se manejan desde el 01 al 12, si se especifica el mes con letras la etiqueta no tiene validez. Se ubica dentro de la etiqueta “starttime” y se cierra con </month>.
– <day> : Al igual que las dos anteriores, se ubica dentro de “starttime”, e indica el día de inicio de nuestra transición, generalmente se utiliza la cifra 01 para esta etiqueta, y se cierra al igual que las anteriores </day>.
– <hour> : De la misma manera, indica la hora de inicio, generalmente utilizamos “00″, que serian las 12 de la noche como inicio, se ubica dentro de “starttime” y se cierra con </hour>.
– <minute> : Indica el minuto de inicio de nuestra transición, al igual que la etiqueta “hour”, se utiliza el minuto “00″ para su inicio, se ubica dentro de “starttime” y se cierra con </minute>.
– <second> : Indica el segundo, se ubica dentro de “starttime”, se utiliza generalmente “00″ para iniciar y se cierra con </second>.
* <static> : Esta es una de las etiquetas más importantes de nuestro archivo, ya que es la que señala la imagen que permanecerá estática y determinara el tiempo que permanecerá en esa posición, al igual que las otras etiquetas, se cierra con </static> , y dentro de esta, se fijan dos etiquetas mas, la de la duración de la imagen estática, y la de la ubicación del archivo de imagen.
- <duration> : Esta etiqueta, se usa tanto dentro de la etiqueta <static> como dentro de la etiqueta <transition> (la cual veremos posteriormente), esta se utiliza para indicar el tiempo de duración de la instrucción, es decir, cuando se encuentra dentro de la etiqueta “static”, indica el tiempo que tardara la imagen estática en la pantalla, y cuando se maneja dentro de la etiqueta “transition”, indica el tiempo que tardara la transición de una imagen a otra, este tiempo, se indica obligatoriamente en segundos y en milésimas de segundo, es decir, si queremos que una imagen tarde 5 minutos estática en la pantalla, deberemos incluir los cinco minutos pero convertidos en segundos, en este caso, serían 300.0 segundos, cabe decir que el punto cero (300.0) que se encuentra despues de los 300, indica las milésimas de segundo, el igual que las demas etiquetas, se cierra con </duration>.
– <file> : Indica la ubicación de la imagen que permanecerá estática, se cierra de igual manera con la etiqueta </file>, y la dirección se escribe desde el directorio raiz, en nuestro caso seria algo mas o menos como lo siguiente: “/home/usuario/Mi_xml/01.jpg”.
* <transition> : Esta etiqueta es la segunda mas importante de nuestro archivo, indica el cambio mediante una leve transición de la imagen estática, a una nueva, con esto, lo que haremos será cambiar la imagen estática a una nueva, que si lo vemos desde otra perspectiva, será la nueva fija, por lo tanto, la volveremos a cambiar mediante la transición por otra estática, y así sucesivamente para obtener nuestras transiciones, para su funcionamiento, depende de tres etiquetas mas, (si, es cansado al principio, pero luego es rapido no se preocupen), la de duración, vista anteriormente, la de la imagen incial (from), y la de la imagen final (to), que la inicial, siempre será la imagen fija anterior, es decir, si tenemos como imagen fija la 01, lo que necesitamos es cambiarla a la 02, por lo tanto, utilizaremos la etiqueta, transition, y la imagen inicial será la imagen 01, y la final, la 02, se cierra con </transition>
– <from> : Indica la ubicación de la imagen inicial, para grandes rasgos, la imagen desde donde se iniciara la transición será la imagen que permanecía fija anteriormente, se indica la ruta tal y como en la etiqueta “file”, y se cierra con </from>
– <to> : Indica la imagen por la que cambiaremos la imagen fija actual, la cual pasa se indica la ruta tal y como el la etiqueta “from”, y se cierra con </to>.
Bueno, ahora que ya tenemos los comandos básicos que usaremos en nuestro documento, podemos comenzar a realizar el nuestro, ya con nuestro editor de texto abierto, bien, lo primero que haremos, será crear una referencia del tipo de archivo que haremos, o una indicación del tipo de imágenes que usaremos, esto, lo haremos mediante una sintaxis que ira en la parte superior del documento, identificada con los símbolos “<!” y “>”, la cual será nuestra primera linea de texto, en mi caso, sin imágenes de MAC, así que pondre lo siguiente:
<!— ARCHIVO XML DE IMAGENES DE MAC —>
Tomemos en cuenta que esta linea, al estar iniciada con los símbolos mencionados, no tiene validez alguna como instrucción, es solo para la orientación personal. Luego de haber hecho esto, comenzaremos con las instrucciones reales, lo primero que haremos, será marcar el incio de neustra transición con la etiqueta <background>:
<!— ARCHIVO XML DE IMAGENES DE MAC —>
<background>
</background>
Como pueden ver, yo tengo la mañana de colocar la etiqueta inicial y la de cierre de una vez, para así, omitir errores mas adelante, o que se me vaya a olvidar, bueno, dentro de esta etiquete deberemos incluir todas las demas, es como el body en html para los que lo hayan visto con anterioridad, dentro se encuentra todo el proceso, y lo que incluira, por lo tanto, deberemos incluir primeramente, el año, mes, minuto, y segundo en el que nuestra transición dara, inicio, para esto, colocaremos la etiqueta starttime, y dentro de estas las etiquetas year, month,day,hour,monite,second con sus respectivos cierres, de la siguiente manera:
<!— ARCHIVO XML DE IMAGENES DE MAC —>
<background>
<starttime>
<year>2011</year>
<month>01</month>
<day>01</day>
<hour>00</hour>
<minute>00</minute>
<second>00</second>
</starttime>
</background>
Bien, como podemos notar después de la explicación de cada una de las etiquetas, dentro de la etiqueta starttime incluimos las seis etiquetas, donde especificaremos el año, en este caso 2011, el mes, 01, es decir, enero, el día, de la misma manera 01, hora, 00, es decir, las 12 de la noche, minutos y segundos en los que empezara nuestra transición, cada etiqueta tiene su apertura, y su cierre, no olviden esto, por que basta un símbolo omitido para hacer que el archivo no funcione sale?.. Bien, luego de esto viene lo bueno, como explique anteriormente, lo que deseamos es que una de nuestras imágenes aparezca fija durante determinado tiempo, y luego, que con una leve transición cambie a otra, la cual permanecerá fija durante otro tiempo determinado, luego de esto, utilizaremos de nuevo la transición para dejar otra imagen, y así sucesivamente, por lo tanto, lo primero que haremos será dejar una imagen fija, lo cual lograremos con la etiqueta static, con sus respectivos complementos, de la siguiente manera:
<static>
<duration>300.0</duration>
<file>/home/atxy2k/Mi_xml/01.jpg</file>
</static>
Como podemos ver, la etiqueta se abre arriba y se cierra abajo, tenemos la etiqueta duration, que indica que la imagen permanecerá fija durante 5 minutos ( 5 min = 300 seg), y la dirección del archivo, ubicado en mi caso en “/home/atxy2k/Mi_xml”, seguido del nombre de la imagen, para esto era lo que era mejor renombrarla junto con su extensión: 01.jpg, esta etiqueta, ira ubicada debajo del cierre de starttime de la siguiente manera, por lo pronto, dejaremos estática la imagen numero 01.jpg en la pantalla durante 5 minutos:
<background>
<starttime>
<year>2011</year>
<month>01</month>
<day>01</day>
<hour>00</hour>
<minute>00</minute>
<second>00</second>
</starttime>
<static>
<duration>300.0</duration>
<file>/home/atxy2k/Mi_xml/01.jpg</file>
</static>
</background>
Bien, ya tenemos el momento en que nuestra transición empezara, la primera imagen que mostrara, y durante cuanto tiempo la mostrara, bien, ahora, ¿que pasara cuando terminen esos 5 minutos?, pues bueno, deberemos usar una transición, para hacer que cambie de la imagen fija, a una nueva, el tiempo de la transición, generalmente no debe ser mas de 3 o 5 segundos, ya que en el momento de la transición, se utiliza levemente el procesador, y si forzamos al sistema que utilize la transición demasiado tiempo, estaremos consumiento procesador durante mucho tiempo, lo que hara que se alente levemente el sistema durante ese lapso. Por lo pronto, vamos a especificar mediante la etiqueta transition, el cambio de la imagen 01.jpg a la imagen 02.jpg en un lapso de unos… 3 segundos… (3.0).
<transition>
<duration>3.0</duration>
<from>/home/atxy2k/Mi_xml/01.jpg</from>
<to>/home/atxy2k/Mi_xml/02.jpg</to>
</transition>
Ahi esta, la duración de la transición debera ser de 3 segundos desde la imagen 01.jpg hasta la 02.jpg, bien, esto, va bajo la etiqueta static, una vez hecho esto, ¿que pasa cuando termina la transición?, pues fácil, volvemos al paso numero 1, asignamos como fija la imagen 02.jpg durante otros 5 minutos.
<background>
<starttime>
<year>2011</year>
<month>01</month>
<day>01</day>
<hour>00</hour>
<minute>00</minute>
<second>00</second>
</starttime>
<static>
<duration>300.0</duration>
<file>/home/atxy2k/Mi_xml/01.jpg</file>
</static>
<transition>
<duration>3.0</duration>
<from>/home/atxy2k/Mi_xml/01.jpg</from>
<to>/home/atxy2k/Mi_xml/02.jpg</to>
</transition>
<static>
<duration>300.0</duration>
<file>/home/atxy2k/Mi_xml/02.jpg</file>
</static>

</background>
Es fácil darse cuenta de lo que hacemos ¿verdad?, ahora que fijamos la imagen 2 durante 5 minutos, necesitaremos usar una transición para cambiarla por la imagen 3 durante otros 5 minutos, y asi, nuestro objetivo es cambiar las imagenes de esta manera:
De la 01.jpg a la 02.jpg
De la 02.jpg a la 03.jpg
De la 03.jpg a la 4.jpg
De la 04.jpg a la 05.jpg
Y por ultimo, para volver a hacer que esta transición comience, debemos de volver a poner la imagen 01.jpg como imagen fija, es decir, usaremos otra transición para cambiar de la 05.jpg a la 01.jpg nuevamente, todo el archivo, al final nos quedaría mas o menos de esta manera:
<!— ARCHIVO XML DE IMAGENES DE MAC —>
<background>
<starttime>
<year>2011</year>
<month>01</month>
<day>01</day>
<hour>00</hour>
<minute>00</minute>
<second>00</second>
</starttime>
<static>
<duration>300.0</duration>
<file>/home/atxy2k/Mi_xml/01.jpg</file>
</static>
<transition>
<duration>3.0</duration>
<from>/home/atxy2k/Mi_xml/01.jpg</from>
<to>/home/atxy2k/Mi_xml/02.jpg</to>
</transition>
<static>
<duration>300.0</duration>
<file>/home/atxy2k/Mi_xml/02.jpg</file>
</static>
<transition>
<duration>3.0</duration>
<from>/home/atxy2k/Mi_xml/02.jpg</from>
<to>/home/atxy2k/Mi_xml/03.jpg</to>
</transition>
<static>
<duration>300.0</duration>
<file>/home/atxy2k/Mi_xml/03.jpg</file>
</static>
<transition>
<duration>3.0</duration>
<from>/home/atxy2k/Mi_xml/03.jpg</from>
<to>/home/atxy2k/Mi_xml/04.jpg</to>
</transition>
<static>
<duration>300.0</duration>
<file>/home/atxy2k/Mi_xml/04.jpg</file>
</static>
<transition>
<duration>3.0</duration>
<from>/home/atxy2k/Mi_xml/04.jpg</from>
<to>/home/atxy2k/Mi_xml/05.jpg</to>
</transition>
<static>
<duration>300.0</duration>
<file>/home/atxy2k/Mi_xml/05.jpg</file>
</static>
<transition>
<duration>3.0</duration>
<from>/home/atxy2k/Mi_xml/05.jpg</from>
<to>/home/atxy2k/Mi_xml/01.jpg</to>
</transition>
</background>

Y listo!!!.. ya con esto tendríamos nuestro archivo XML terminado, ahora, para finalizar, lo único que deberemos de hacer, es irnos a archivo/ guardar como, le ponemos el nombre que queramos, y le agregamos la extensión XML en minúscula, la ruta del archivo es indistinta, pero pues les recomiendo guardarla junto a sus imágenes de transición.

Y eso es todo!!!… ahora tenemos nuestro archivo en XML que nos proporcionara una transición de nuestras imágenes favoritas, ahora lo único que falta, es agregarlo a las configuraciones de apariencia, para esto, lo que haremos será dar clic derecho en el escritorio, y seleccionar cambiar fondo de pantalla, cuando se abra, lo unico que haremos sera buscar el archivo XML en una ventana nueva, y arrastrarlo hacia el espacio destinado para los fondos de pantalla:

Y listo!!.. como pueden ver, ya tengo listo mi archivo XML que me presenta mis 5 imágenes consecutivamente, sin consumo de recursos de sistema y con un lindo efecto de transición. La verdad espero que a ustedes también les haya salido, recuerden que todas las instrucciones se escriben con minúscula, y que pueden agregar la cantidad de imágenes que gusten.
========== CONSEJOS ==========
Bueno!, pues como un extra nada mas, puede ser un poco tedioso tener que hacer este tipo de archivos y que luego al cambiar de lugar una imagen ya no funcione bien, por que recuerden que lo dirigimos hacia un directorio especifico, o quiza queramos hacer un paquete de imagenes para regalarselo a otra personas, pero al usar en el editor de textos, la ruta de nuestro usuario, en la de el ya no funcionara, para esto, podemos tomar en cuenta una cosa, el paquete de imagenes que trae Ubuntu por defecto para usar de transición es “Cosmos”, la ruta de este archivo se encuentra en: “/usr/share/backgrounds”, esta ruta, es universal en todas las versiones de Ubuntu, por lo tanto, podemos generar un paquete de transición de imagenes, y direccionarlo a esta ruta, para que al copiarlo dentro de ella (para esto necesitaremos ser super usuario), funcione indistintamente de la maquina y del usuario que la use, por ejemplo, en esta ocasión, les dejo el que yo termine de Mac, espero les guste.
Lo primero que se preguntaran es, ¿Como lo instalo?, bueno, esto es muy sencillo, en realidad no necesita instalación, basta con descargarlo, extraerlo, y luego, ir a la terminal y poner “sudo nautilus”, cuando hagamos esto, se abrirá una ventana del explorador pero en modo super usuario, desde aqui, nos dirigiremos a /home/usuario/Carpeta_De_descargas, es decir, la carpeta donde hayan descargado y copiaremos el archivo desde la misma ventana a /usr/share/backgrounds. Hecho esto podremos salir, darle clic derecho al escritorio, y dirigirnos a la misma carpeta en una ventana aparte para agregarlo al menu de fondos.
Bueno, por lo pronto es todo, un tutorial muy tedioso, de verdad espero les sea de su agrado y que lo disfruten, Les mando un abrazo y gracias por visitar el blog, se cuidan.. xD
BY
ATXY2K
 
#2
Viejoo genial!!! lo curioso es que mire primero el otro post donde pasaste el programa que lo hace solo... pero el programita no me funciono.. y lo hice asi por codigo y si funciono :D....
Me preguntaba si no habria manera de crear una funcion para no tener que repetir tanto el codigo... de esa manera solo cambiaria el nombre de la imagen.. y como yo a todas le puse numeros consecutivos seria lo mejor..
 
Arriba