Tägliches Bing-Wallpaper (Niri)

Aus Z-Brain
Version vom 26. Juni 2026, 10:32 Uhr von Flavius (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „__NOTOC__ Auf dem Desktop '''enterprise''' (openSUSE Tumbleweed, Niri-Compositor) wird täglich automatisch das '''Bing-Bild des Tages''' als Wallpaper gesetzt. Ein systemd-User-Timer ruft einmal pro Tag ein Skript auf, das das aktuelle Bing-Bild herunterlädt und per <code>swww</code> mit einem weichen Übergang setzt. {| style="width:100%; border-spacing:10px; background:transparent; margin-top:-10px;" | style="width:50%; vertical-align:top;" | {| sty…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Auf dem Desktop enterprise (openSUSE Tumbleweed, Niri-Compositor) wird täglich automatisch das Bing-Bild des Tages als Wallpaper gesetzt. Ein systemd-User-Timer ruft einmal pro Tag ein Skript auf, das das aktuelle Bing-Bild herunterlädt und per swww mit einem weichen Übergang setzt.

⚙️ Funktionsweise
  • Intervall: Der Timer löst täglich um 06:00 Uhr aus. Dank Persistent=true wird ein verpasster Lauf (z.B. wenn der PC aus war) beim nächsten Hochfahren sofort nachgeholt.
  • API-Abfrage: Das Skript fragt die Bing-API (HPImageArchive.aspx, Markt de-DE) ab und extrahiert per jq die UHD-Bild-URL sowie das Startdatum.
  • Download-Schutz: Das Bild wird in UHD-Auflösung nach ~/Pictures/bing-wallpaper/ geladen — aber nur, wenn es für das jeweilige Datum nicht schon existiert (verhindert unnötige Downloads).
  • Weicher Übergang: Das Wallpaper wird mit einem 1,5 Sekunden langen Wipe-Übergang geladen.
📂 Ablageorte
Datei / Zweck Pfad
Wallpaper-Skript ~/.local/bin/bing-wallpaper.sh
systemd Service (User) ~/.config/systemd/user/bing-wallpaper.service
systemd Timer (User) ~/.config/systemd/user/bing-wallpaper.timer
Bild-Ablage ~/Pictures/bing-wallpaper/
💻 Bedienung & Befehle
Manuell sofort ein neues Wallpaper holen/setzen
~/.local/bin/bing-wallpaper.sh
Timer-Status prüfen (wann läuft der nächste automatische Wechsel)
systemctl --user list-timers bing-wallpaper.timer --no-pager
Letzte automatische Läufe im Journal ansehen
journalctl --user -u bing-wallpaper.service --no-pager -n 30

🔍 Offene Punkte / Zu prüfen[Bearbeiten]

  • Der awww-Befehl: Im Skript wird aktuell der Befehl awww img ... aufgerufen. Es muss noch geklärt werden, ob das ein eigener Alias/Wrapper für swww img oder ein eigenständiges Tool ist. Falls es auf swww basiert, muss der swww-daemon im Hintergrund laufen (z.B. via Niri-Autostart), da der Befehl sonst ins Leere läuft.
  • Fehlendes Auto-Cleanup: Alte Bing-Bilder in ~/Pictures/bing-wallpaper/ werden derzeit nicht automatisch gelöscht. Der Ordner wächst also täglich um ein UHD-Bild an. Bei Bedarf sollte eine Aufräum-Routine ergänzt werden (z.B. ein find-Befehl, der alle Dateien älter als 30 Tage löscht).

---

💾 Quellcode & Konfiguration[Bearbeiten]

Hier sind die Skripte und systemd-Konfigurationen zum Ausklappen und Kopieren hinterlegt:

1. Skript (User-Bin)[Bearbeiten]

📄 ~/.local/bin/bing-wallpaper.sh (Ausklappen)
#!/usr/bin/env bash
set -euo pipefail

WALLPAPER_DIR="$HOME/Pictures/bing-wallpaper"
mkdir -p "$WALLPAPER_DIR"

JSON=$(curl -s "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE")
URLBASE=$(echo "$JSON" | jq -r '.images[0].urlbase')
DATE=$(echo "$JSON" | jq -r '.images[0].startdate')
IMG_PATH="$WALLPAPER_DIR/bing-$DATE.jpg"

if [ ! -f "$IMG_PATH" ]; then
    curl -s -o "$IMG_PATH" "https://www.bing.com${URLBASE}_UHD.jpg"
fi

awww img "$IMG_PATH" --transition-type wipe --transition-duration 1.5

2. systemd Konfiguration (`~/.config/systemd/user/`)[Bearbeiten]

⚙️ bing-wallpaper.service (Ausklappen)
[Unit]
Description=Bing Bild des Tages als Wallpaper setzen

[Service]
Type=oneshot
ExecStart=%h/.local/bin/bing-wallpaper.sh
⏳ bing-wallpaper.timer (Ausklappen)
[Unit]
Description=Tägliches Bing-Wallpaper-Update

[Timer]
OnCalendar=*-*-* 06:00:00
Persistent=true

[Install]
WantedBy=timers.target

3. Aktivierung nach Wiederherstellung[Bearbeiten]

Um die User-Timer auf dem Desktop zu aktivieren, müssen folgende Befehle als normaler Benutzer (nicht als root!) ausgeführt werden:

chmod +x ~/.local/bin/bing-wallpaper.sh

systemctl --user daemon-reload
systemctl --user enable --now bing-wallpaper.timer
Stand der Dokumentation: Juni 2026