Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

Fond d'écran aléatoire venant d'unsplash.com

Besoin d'un peu de nouveauté et de surprise, j'ai recommencé à mettre un fond d'écran sur mon bureau. Cependant, au lieu de passer des heures sur le web à chercher ceux qui me plaisent, vérifier la résolution pour que ça ne soit pas déformé, je voulais avoir la surprise d'un bon fond d'écran à chaque démarrage.

Ça me donne ça au final :

J'ai donc opté pour unsplash.com qui ne m'a jamais déçu jusqu'à présent. Ils proposent des photos en libre accès de grande qualité.

Avec mes petits doigts, j'ai donc écrit unsplash_wall.sh que je recopie ci-dessous :

#!/bin/sh
# Auteur :      thuban <thuban@yeuxdelibad.net>
# licence :     MIT

# Depends  Imagemagick, curl

WALLDIR=~/Images/Wallpapers
mkdir -p "${WALLDIR}"
RESOL=$(xrandr | sed -n '3p' | grep -Eo "[0-9]+x[0-9]+")
URL="https://source.unsplash.com/featured/?wallpaper/$RESOL"
cd $WALLDIR

# Get the image url after redirection
IMGURL=$(curl "$URL" | sed -n 's/.*href="\([^"]*\).*/\1/p' | cut -d'?' -f1)
IMG="${WALLDIR}/$(basename ${IMGURL})"

# Don't download if image already on disk
if [ ! -e "${IMG}" ]; then
    curl -O "$IMGURL" 
fi

display -resize $RESOL\! -window root $IMG

Ce script va aller chercher une image sur unsplash correspondant à votre résolution d'écran et l'enregistre dans le dossier ~/Images/Wallpapers.

La recherche d'image se fait en deux temps. Vous me direz qu'on peut suivre la redirection, mais je voulais d'abord vérifier que le fond d'écran n'a pas été déjà téléchargé avant de lancer la 2e requête. J'ai voulu éviter d'avoir à installer un autre outil, c'est donc Imagemagick qui se charge de mettre en fond d'écran.

Libre à vous de changer la variable URL en vous inspirant des exemples sur source.unsplash.com ou carrément mettre un autre site.