Pre-requisitos:
Este script requiere que curl
y jq
estén instalados en tu sistema. Si no están instalados, puedes instalarlos con
sudo apt install curl jq
#!/bin/bash
# Directorio donde se guardará la imagen
DIR="$HOME/Imágenes/Bing"
# Pantalla donde se va a poner la imagen de fondo
MONITOR=$(xfconf-query -c xfce4-desktop -l | grep 'workspace0/last-image')
# Crear el directorio si no existe
mkdir -p $DIR
# URL de la imagen del día de Bing y nombre original en una sola línea
read URL ORIGINAL_NAME < <(curl -s https://www.bing.com/HPImageArchive.aspx\?format\=js\&idx\=0\&n\=1\&mkt\=es-ES | jq -r '.images[0] | "\(.url) \(.title | gsub(" "; "_"))"')
# Formatear la fecha actual en Y-m-d
CURRENT_DATE=$(date +%Y-%m-%d)
# Crear el nuevo nombre de archivo
FILENAME="${ORIGINAL_NAME}_${CURRENT_DATE}.jpg"
# Descargar la imagen solo una vez
curl -s -o "$DIR/wallpaper.jpg" "https://www.bing.com$URL"
# Crear una copia de wallpaper.jpg con el nombre original
cp "$DIR/wallpaper.jpg" "$DIR/$FILENAME"
# Establecer la imagen como fondo de pantalla
xfconf-query -c xfce4-desktop -p $MONITOR -s "$DIR/wallpaper.jpg"
chmod +x ~/bing_wallpaper.sh
Escribe crontab -e
para editar los trabajos de cron
Añade la siguiente línea para ejecutar el script todos los días a las 12:00 PM
0 12 * * * /bin/bash $HOME/bing_wallpaper.sh
Ejecuta el script al encender la computadora
@reboot $HOME/bing_wallpaper.sh
El error que estás viendo se debe a que la ruta de la propiedad que estás intentando establecer no existe en tu configuración de XFCE.
xfconf-query -c xfce4-desktop -l
Deberías ver varias propiedades que siguen el patrón /backdrop/screen0/monitor0/workspaceN/last-image
, donde N
es el número del espacio de trabajo.
Una vez que hayas encontrado la propiedad correcta para tu sistema, puedes reemplazar la ruta de la propiedad en el script con la que has encontrado. Por ejemplo, si la propiedad correcta es /backdrop/screen0/monitor0/workspace1/last-image
entonces la última línea de tu script se vería así:
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace1/last-image -s $DIR/wallpaper.jpg