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 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.
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!!!!!
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.
Buena Leo, me viene perfecto yo uso nitrogen en mi LXDE 😉
Me alegro que te sirviera 😀
No entiendo porque hay personas que les gusta convertir sus escritorios en tales carnavales. En fin.
Buen tip, aunque ya me hiciste recordar cuando usaba webshots en Windows.
Muy bueno Leo! Gracias 🙂
Lo voy a probar en elementary 😛
Genial el script.. 😉
Gracias a todos por los comentarios 😀
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ó?
cd ~/Imágenes/Fondo\ Pantalla
cd «$HOME/Imágenes/Fondo Pantalla»
cd ~/Imágenes/Fondo\ Pantalla
cd «$HOME/Imágenes/Fondo Pantalla»
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 🙂
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 😀
No lo había pensado, buena sugerencia.