¿Cuantos de ustedes usan algún «Tiling window manager» y seguramente después de cierto tiempo nos aburre nuestro fondo de pantalla? Es muy molesto tener que re-compilar para poder cambiar un simple fondo de pantalla, o incluso también el volver a correr “nitrogen” y pasarle otro parámetro.
Pues hoy les traigo un script en bash, este obtiene una imagen aleatoria de nuestra colección y la pone como fondo de pantalla Cambiar Fondo pantalla nitrogen, si descargan el script de aquí no olviden quitarle la extensión .txt al archivo y darle permisos de ejecución
directorio=~/Imágenes
function mi_resolucion(){
res=`xrandr | grep '*' | grep -o -E '[0-9]+x[0-9]+'`
mi_alto=`echo "$res" | cut -d "x" -f 2`
mi_ancho=`echo "$res" | cut -d "x" -f 1`
}
function rand_imagen(){
imagen=`ls -1 -b -R "$directorio" | grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort --random-sort | head -1`
dir_imagen=`find "$directorio" -iname "$imagen"`
}
function resolucion_imagen(){
rand_imagen
imagen_alto=`identify -format "%h" "$dir_imagen"`
imagen_ancho=`identify -format "%w" "$dir_imagen"`
}
function proporcion(){
mi_resolucion
resolucion_imagen
proporcion_alto=`echo $imagen_alto/$mi_alto|bc -l`
proporcion_ancho=`echo $imagen_ancho/$mi_ancho|bc -l`
}
function escalar(){
proporcion
if [ `echo "$proporcion_alto > 1"|bc` -eq 1 -o `echo "$proporcion_ancho > 1"|bc` -eq 1 ]; then
nitrogen --set-zoom "$dir_imagen"
else
nitrogen --set-centered "$dir_imagen"
fi
}
escalar
exit
Ahora viene la explicación del script.
directorio=~/Imágenes //Cambiar por el directorio en el que se encuentren sus wallpapers
resolucion_imagen() //Esta función detecta la resolución de nuestro monitor, y la guarda en las variables:
mi_alto //Alto
mi_ancho //Ancho
rand_imagen() //Esta función obtiene una imagen dentro de «directorio»
imagen=`ls -1 -b -R «$directorio» | grep -i -e «.png» -e «.jpg» -e «.jpeg» | sort –random-sort | head -1`
Ejemplo:
imagen=`ls -1 -b -R "$directorio" | grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".nueva_extensión" | sort --random-sort | head -1`
resolucion_imagen() //Esta función obtiene la resolución de la imagen que obtuvo la función rand_imagen()
proporcion() //Esta función obtiene la proporción resolución_imagen/resolución_pantalla
escalar() //Esta función escala la imagen si es mas grande que la resolución de nuestro monitor y establece el fondo de pantalla
Ahora que tenemos el script para asignarle fondo de pantalla aleatorio a nitrogen (y ademas la imagen se adapta a tu monitor) solo nos resta hacer que se ejecute el script cada cierto tiempo, esto se logra haciendo que se ejecute el siguiente comando al inicio
watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script
En este caso este comando se ejecuta cada 4 segundos, notar que ruta_donde_se_encuentra_el_script es la ruta completa donde se localiza el script y nombre_script es el nombre que le pusieron al script.
Espero que les sea útil.