viernes, 27 de agosto de 2010

Fondo de escritorio cambiantes para ubuntu

El otro día convencí a un amigo para que se pasara a linux y entre las muchas preguntas que me empezaron a llegar por parte de él (todo sea por la causa), una era sobre como hacer un fondo de pantalla como esos que trae por defecto Ubuntu que cambian cada cierto tiempo, me dio mucha pena el no poder responder en el momento ya que no tenia ni idea de como funcionaba, así que me puse a la tarea y la verdad no era nada del otro mundo, solo un pequeño archivo xml que describe las transiciones de las imágenes; para ver como se estructura el archivo podemos ojear el que se encuentra en /usr/share/backgrounds/cosmos/background-1.xml.

Ahora que ya sabia como crear mis propios sliders, solo faltaba automatizar el proceso (flojo que soy), y como decidí hacer de python mi lenguaje por defecto XD, pues me puse a trabajar y esto fue lo que me salio, no es el súper programa pero intente hacerlo lo mas pythonista que pude, por favor si alguien lee esto y tiene mas conocimientos de python, se le agradecerán todos las criticas que me ayuden a mejorar u_u

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# Por: Jhonatan sneyder Salguero Villa (sney2002@gmail.com)
# Crear fondos de escritorio cambiantes
import sys, os

FORMAT = """ 
  %(static_time).1f
  %(current)s
 
 
  %(transition_time).1f
  %(current)s
  %(next)s
 """
 
 
class BackgroundSlider():
 EXTENSIONS = [".jpg", ".jpeg", ".png"]
 
 def __init__(self, static_time = 1200):
  self.xml_parts       = [""]
  self.static_time     = static_time
  self.path = os.getcwd()

 def get_images(self, ext=EXTENSIONS):
  """ Guardar archivos con extencion (jpg, jpeg, png) en self.images """
  # Se puede especificar los archivos como argumentos
  files = sys.argv[1:] or os.listdir(".")
  # Filtrar imágenes
  self.images = [os.path.join(os.getcwd(), img) for img in files if os.path.splitext(img)[1].lower() in ext]


 def add_image(self, current, next, static_time, transition_time = 5):
  """ Adicionar imagen al slider """
  self.xml_parts.append( FORMAT % locals() )


 def make_slider(self):
  """ Crear archivo xml que define el slider """
  images = self.images

  # Todo termina donde empiesa U_U
  images.append( images[0] )

  for i in range( len(images)-1 ):
   self.add_image(images[i], images[i+1], self.static_time)
  
  self.xml_parts.append("")


 def save(self, filename = "background" ):
  """ Guardar el slider """

  xml = file(filename + ".xml", 'w')

  try:
   xml.write( "\n".join(self.xml_parts) )

  except IOError:
   print "Error al Guardar el archivo. Intente de Nuevo"
  
  finally:
   xml.close()


if __name__ == "__main__":
 slider = BackgroundSlider()

 slider.get_images()

 slider.make_slider()

 slider.save()
Luego puse este archivo con los demás script de nautilus (~/.gnome2/nautilus-scripts) y ahora mi amigo cuando quiera un fondo de escritorio, solo selecciona las imágenes, click derecho crear wallpaper y listo. Si les interesa pueden bajar el script de este enlace:

No hay respuestas a “Fondo de escritorio cambiantes para ubuntu”

Deja una respuesta

 
© 2009 NovatoZ. All Rights Reserved | Powered by Blogger
Design by psdvibe | Bloggerized By LawnyDesignz