#!/usr/bin/env bash # bing-wallpaper: Tages-Wallpaper von Bing laden und direkt setzen. # Quelle: HPImageArchive-API (inoffiziell, aber seit Jahren stabil), # Markt de-DE, UHD-Aufloesung. Lizenz: nur zur privaten Nutzung als # Hintergrund (keine Redistribution - es wird nur heruntergeladen). # Ablage: ~/Bilder/Bing/bing-YYYY-MM-DD.jpg, Retention 7 Tage. # Setzen via Noctalia-IPC (persistiert + triggert Theme-Resolve neu). # Laeuft die Shell gerade nicht, bleibt die Datei fuer spaeter liegen. set -euo pipefail API="https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE" OUTDIR="${HOME}/Bilder/Bing" [[ -d "${HOME}/Bilder" ]] || OUTDIR="${HOME}/Pictures/Bing" mkdir -p "${OUTDIR}" TODAY="$(date +%F)" TARGET="${OUTDIR}/bing-${TODAY}.jpg" if [[ ! -s "${TARGET}" ]]; then JSON="$(curl -fsSL --retry 3 --retry-delay 5 "${API}")" URLBASE="$(printf '%s' "${JSON}" | jq -r '.images[0].urlbase // empty')" [[ -n "${URLBASE}" ]] || { echo "Bing-Antwort ohne urlbase"; exit 1; } curl -fsSL --retry 3 --retry-delay 5 -o "${TARGET}" "https://www.bing.com${URLBASE}_UHD.jpg" echo "Geladen: ${TARGET}" else echo "Bereits vorhanden: ${TARGET}" fi # Alte behalten wir 7 Tage (Rotation via Noctalia-Automation moeglich) ls -t "${OUTDIR}"/bing-*.jpg 2>/dev/null | tail -n +8 | xargs -r rm -f -- echo "Bereinigt, behalten: $(ls "${OUTDIR}"/bing-*.jpg 2>/dev/null | wc -l)" # Direkt setzen (schlaegt fehl ohne laufende Shell -> Datei bleibt liegen) noctalia msg wallpaper-set "${TARGET}" && echo "Gesetzt: ${TARGET}" || echo "Noctalia laeuft nicht - Datei liegt bereit"