Saltar al contenido

Gnu/Linux Vagos usa cookies. Lea nuestra Política de privacidad para más información.    Acepto el uso de cookies

Foto
Personalización

Script bash para cambiar fondo automáticamente

Personalización

  • Por favor, loguéate para poder responder
2 respuestas a este tema

#1 DESCONECTADO   Pacman

Pacman

    Linuxero avanzado

  • Registrado: 30/01/2014
  • Mensajes: 374
  • Galletas: 1523

Género:







Lugar:/home/Pacman

Escrito 05 April 2016 - 12:08

Ayer como escribí en el otro tema, hice un miniscript para cambiar el fondo, era muy simple ya que sólo iba recorriendo una carpeta alternando entre un fondo y otro, de uno en uno, y pensé como hacerlo para que fuese aleatorio y no fuera de uno en uno, así que me puse manos a ello y después de unos cuantos dolores de cabeza (por una chorrada, no me acordaba que había que usar "let" en bash) hice el pequeño script que funciona a la perfección, lo comparto con ustedes:

#!/bin/bash

if [ -z "$1" ] || [ -z "$2" ] || [ "$1" == "--help" ]; then
echo "cw 0.1"
echo "changes your wallpaper every x seconds"
echo ""          
echo "Use: cw /path/of/wallpapers/directory seconds"
echo "Example: cw /home/charlie/wallpapers 120"
exit
fi

if ! [ -e "$1" ]; then
echo "El directorio $1 no existe"
exit
fi

cd $1

function comprobar() {
num=1
for x in *;
do
       let num=$num+1

done
}

while [ 1 ]; do
        comprobar
	var_ran=$(($RANDOM%$num))
        var_aum=1
	for y in *; do
		if [ "$var_ran" -eq "$var_aum" ]; then
			feh --bg-scale $y
			sleep $2
			break
		fi		
		
		let var_aum=$var_aum+1
	done
done

Funciona exactamente igual que el anterior:

cw /carpeta/de/mis/wallpapers segundos

Pero este es realmente aleatorio, lo que hace es lo siguiente:

 

1.- Entra en un bucle infinito "while [ 1 ]"

2.- Comprueba la cantidad de archivos que hay dentro de la carpeta cada vez que se va a cambiar el fondo con la función comprobar, por lo que se pueden añadir fondos sin tener que reiniciar el script

3.- Genera un número aleatorio cada vez que se va a cambiar el fondo entre 1 y la cantidad de fondos que existen

4.- Con un for va recorriendo los archivos de uno en uno y cuando el número de archivo que lleva coincide con el generado aleatoriamente, lo cambia

5.- Vuelve al paso 2

 

Es muy sencillo el script pero me parecía que podía ser realmente útil a la hora de personalizar un wm, yo tengo el script con nombre "cw" en /usr/bin y como tiro i3wm con startx, en el .xinitrc tengo un:

cw /home/francisco/wallpapers 300 &

Así que cada vez que arranco va sólo.

 

Saludos.


  • portaro, Rohlling, lupi y 1 otro le gusta esto

5573989658.png


#2 DESCONECTADO   Mgbu

Mgbu

    Gurú

  • Registrado: 22/11/2013
  • Mensajes: 786
  • Galletas: 2869

Género:






Lugar:C:\Usuarios\Mgbu

Intereses:Programación, Astronomía, Ciencia, Telecomunicaciones

Escrito 05 April 2016 - 14:38

Había hecho algo del estilo, generaba un wallpaper (pegando posiciones de satélites en un mapa) y después cambiaba el fondo con un comando. Lo hice para XFCE con Python, PyEphem y Imagemagick.

 

Para cambiar el fondo usé este comando para XFCE:

xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set [image location]

Qué comando usas para cambiar el fondo? feh? No lo conocía


  • Rohlling, Pacman y dmrx921 les gusta esto
:notoy:

#3 DESCONECTADO   Pacman

Pacman

    Linuxero avanzado

  • Registrado: 30/01/2014
  • Mensajes: 374
  • Galletas: 1523

Género:







Lugar:/home/Pacman

Escrito 05 April 2016 - 15:18

Había hecho algo del estilo, generaba un wallpaper (pegando posiciones de satélites en un mapa) y después cambiaba el fondo con un comando. Lo hice para XFCE con Python, PyEphem y Imagemagick.

 

Para cambiar el fondo usé este comando para XFCE:

xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set [image location]

Qué comando usas para cambiar el fondo? feh? No lo conocía

 

Joder, que currazo, lo mio es más sencillo. Y sí, uso feh, es de lo más simple que hay y es muy conocido dentro de los windows managers para cambiar el fondo.


  • Rohlling, Mgbu y dmrx921 les gusta esto

5573989658.png






También etiquetado con una o más de estas palabras: Personalización