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

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

 

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!!!!!



Leo

Un simple usuario de GNU/Linux que le gusta la belleza que encierra el arte de crear una distro a su medida. Ahora navegando con Openbox en los mares... Ver perfil ›

15 comentarios

  1.   velkus dijo

    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.

    1.    Leo dijo

      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.   cooper15 dijo

    Buena Leo, me viene perfecto yo uso nitrogen en mi LXDE 😉

    1.    Leo dijo

      Me alegro que te sirviera 😀

  3.   Fungus dijo

    No entiendo porque hay personas que les gusta convertir sus escritorios en tales carnavales. En fin.

  4.   eliotime3000 dijo

    Buen tip, aunque ya me hiciste recordar cuando usaba webshots en Windows.

  5.   rhoconlinux dijo

    Muy bueno Leo! Gracias 🙂
    Lo voy a probar en elementary 😛

  6.   elav dijo

    Genial el script.. 😉

    1.    Leo dijo

      Gracias a todos por los comentarios 😀

  7.   Leo dijo

    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ó?

    1.    GNU/Mate dijo

      cd ~/Imágenes/Fondo\ Pantalla
      cd “$HOME/Imágenes/Fondo Pantalla”

  8.   GNU/Mate dijo

    cd ~/Imágenes/Fondo\ Pantalla
    cd “$HOME/Imágenes/Fondo Pantalla”

    1.    GNU/Mate dijo

      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 🙂

  9.   Atheyus dijo

    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 😀

    1.    Leo dijo

      No lo había pensado, buena sugerencia.

Deja un comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.