Skip to content

Instantly share code, notes, and snippets.

@blacknoob20
Last active October 29, 2024 16:29
Show Gist options
  • Save blacknoob20/31f9a60fe69a7407e3382e21735f9210 to your computer and use it in GitHub Desktop.
Save blacknoob20/31f9a60fe69a7407e3382e21735f9210 to your computer and use it in GitHub Desktop.
(Debian) Bing WallPaper XFCE Desktop

Bing WallPaper

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

Crear script BASH

#!/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"

Hacer ejecutable el archivo

chmod +x ~/bing_wallpaper.sh

Crear CRONTAB

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

Problemas (No existe la propiedad)

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment