Cambio automático de Fondo de Escritorio con un toque personal.

15
4224

Saludos, tanto tiempo que no colaboro con nada en el blog (más que un comentario perdido por ahí) me pone contento de poder hacerlo en tan bello cambio que recibió el blog.

Hoy traigo algo muy usado y muy hablado en todas partes, pero con un pequeño giro.
En si es un pequeño script en bash enteramente escrito por mí (lo cual agradezco mucho los diferentes post de DesdeLinux que me ayudó a hacerlo) que sirve simplemente para cambiar el fondo de escritorio de forma automática cada cierto tiempo.


Entonces ¿Que hay de nuevo viejo?

Varias cosillas. Primero usa nitrogen, lo que lo hace liviano. El script hace que se cambie el fondo en un tiempo aleatorio. Además revisa la carpeta y sus sub-carpetas de forma automática. Lo mejor es que cada vez que cambia el fondo te lo informa con una notificación en el escritorio 😉 . Y se puede modificar a gusto y placer ya que es muy sencillo.

Por razones de tiempo no voy a ir por las ramas explicando detalles que ya se han explicado de DesdeLinux, como que es Bash o como iniciar un script al comienzo de la sesión.
Por ende considero que usted ya tiene ciertos conocimientos sobre el tema o si no es así, los va a buscar en el blog o los va a consultar.
Gracias por su comprensión.

Primero se debe tener instalado Nitrogen (vamos, ya tienen que saber como hacerlo), además de forma opcional libnotify para las notificaciones.

Nitrogen
NITROGEN

 

Sin mas preámbulo, el script:

#Aquí va la carpeta con las imágenes (no importa si están en subcarpetas)
cd "~/Imágenes/Fondo Pantalla/"
#Comienzo del bucle. Como verán es infinito :)
while [ 0 -eq 0 ]; do
#Esto hace que el script:
#1 Busque todos los archivos con "find"
#2 Filtre solo los jpg con "grep jpg"
#3 Cuente cuantos archivos hay con "wc -l"
NITROGEN_CANTIDAD_DE_LINEAS=`find | grep jpg | wc -l`
#Me imagino que sabrán para que sirve esta linea ¬¬
echo "lineas $NITROGEN_CANTIDAD_DE_LINEAS"
#Esta linea elige un numero al azar con min. 1 y máx. el numero de archivos ya obtenido
NITROGEN_ELEGIR=$((1+RANDOM%$NITROGEN_CANTIDAD_DE_LINEAS))
echo "linea elegida: $NITROGEN_ELEGIR"
#Esto hace que el script:
#1 Busque todos los archivos con "find"
#2 Filtre solo los jpg con "grep jp"
#3 Seleccione la linea con "sed" usando la linea elegida anteriormente.
NITROGEN_WALLPAPER=`find | grep jpg | sed -n $((NITROGEN_ELEGIR))p`
echo $NITROGEN_WALLPAPER
#Por fin establecemos el fondo con el archivo elegido.
nitrogen --set-centered $NITROGEN_WALLPAPER
#Con esta linea elegimos un tiempo al azar con min. 4 y máx 120.
NITROGEN_TIEMPO=$((4+RANDOM%120))
#Esto envía una notificación al escritorio.
#Con la opción -i pueden elegir un icono.
#Y obvio que pueden cambiar el texto o eliminar si molesta con solo borrar/comentar la linea.
notify-send -t 10000 "CAMBIO DE FONDO DE ESCRITORIO" "\nEl fondo de pantalla a sido cambiado.\nEl próximo cambio se efectuara en $NITROGEN_TIEMPO segundos.\n\nEl misterioso cambiador de imágenes"
#Con esto esperamos el tiempo en segundos ya elegido antes.
sleep $((NITROGEN_TIEMPO))
#Aquí termina todo para volver a comenzar
done

Obviamente que en la linea que usa “cd” deben colocar la ruta en donde tienen sus imágenes.

No se olviden de hacer el archivo ejecutable!!!

Ya sólo queda hacerlo iniciar automáticamente (aunque aconsejo probarlo en una terminal) en tu entorno favorito.

Cómo verán tengo muy pocas ganas de escribir, ja.

Pero se los dejo para que lo prueben, en especial les va a venir bien a aquellos que usan un entorno minimalista.

Ademas es bastante educativo, pues usa bucles, variables, etc.
Espero que les guste!!!!
SALUDOS!!!!!

15 COMENTARIOS

  1. Hola, gracias por el scrib, estaba buscando algo para cambiar los wallpapers con nitro, solo una pequeña duda con el tiempo, como lo manejas el tiempo en segundos o en minutos, por que me manda las notificaciones muy rapido pero no cambia de la primera imagen que toma, de antemano y reiteradamente gracias por la atención prestada.

    • Hola!! Perdón por la tardanza.
      El tiempo es en segundos pues uso sleep para ello.
      En la linea NITROGEN_TIEMPO=$((4+RANDOM%120))
      La variable NITROGEN_TIEMPO toma un numero al azar entre 4 y 120 y se lo pasa a sleep
      Obviamente podes borrar todo el comando $((4+RANDOM%120)) y colocar la cantidad de segundos fijos que desees.
      Recordá que si no queres la notificación la podes borrar.

  2. Un pequeño bug.
    En la primera linea que tiene el comando cd no funciona con ~/ sinó que tiene que tener escrito /home/TU_USUARIO/CARPETA_ELEGIDA
    ¿Se entendió?

    • Mi “feedback”

      Sería bueno que el blog contara con la opción de previsualizar, así evitaría poner dos veces el mismo comentario por problemas de conexión 🙂

  3. Buen script,solo una cosa:

    Al usar : find | grep jpg | wc -l

    grep hace el filtrado en “seco” y puede usar archivos como archivojpg.lua,lo mejor es usar un filtrado de extensión:

    find | grep ‘[.]jpg$’ | wc -l

    Saludos 😀

Dejar una respuesta