added bing wallpaper

This commit is contained in:
humocs-man
2026-09-30 21:45:22 +02:00
parent dd26a367ac
commit 2df559d0ae
8 changed files with 102 additions and 21 deletions
+13
View File
@@ -131,6 +131,15 @@ COPY configs/kargs-plymouth.toml /usr/lib/bootc/kargs.d/plymouth.toml
COPY --chmod=755 scripts/notify-bootc-user.sh /usr/bin/ COPY --chmod=755 scripts/notify-bootc-user.sh /usr/bin/
COPY --chmod=755 scripts/kanshi-autoconfig /usr/bin/kanshi-autoconfig COPY --chmod=755 scripts/kanshi-autoconfig /usr/bin/kanshi-autoconfig
COPY --chmod=755 scripts/seed-labwc-skel.sh /usr/bin/seed-labwc-skel COPY --chmod=755 scripts/seed-labwc-skel.sh /usr/bin/seed-labwc-skel
COPY --chmod=755 scripts/bing-wallpaper.sh /usr/bin/bing-wallpaper.sh
COPY --chmod=755 scripts/bing-wallpaper-toggle.sh /usr/bin/bing-wallpaper-toggle.sh
# Desktop-Datei fuer den Toggle (Noctalia-Launcher findet ihn als App)
COPY configs/applications/bing-wallpaper-toggle.desktop /usr/share/applications/bing-wallpaper-toggle.desktop
# User-Units (Bing-Wallpaper-Timer; Enable weiter unten via --global)
COPY configs/systemd/user/bing-wallpaper.service /usr/lib/systemd/user/bing-wallpaper.service
COPY configs/systemd/user/bing-wallpaper.timer /usr/lib/systemd/user/bing-wallpaper.timer
# labwc/kanshi-Defaults fuer neue Benutzer (Bestand bleibt via seed-labwc-skel) # labwc/kanshi-Defaults fuer neue Benutzer (Bestand bleibt via seed-labwc-skel)
COPY configs/skel/ /etc/skel/ COPY configs/skel/ /etc/skel/
@@ -186,6 +195,10 @@ RUN systemctl enable \
flatpak-preinstall.service \ flatpak-preinstall.service \
greetd.service greetd.service
# User-Units global enablen (fuer alle Benutzer; danach pro User per
# systemctl --user disable abschaltbar). Muss NACH dem COPY oben stehen.
RUN systemctl --global enable bing-wallpaper.timer
# SELinux-Labels fuer Greeter/Skel/Sessions (Fehler tolerieren, Labels # SELinux-Labels fuer Greeter/Skel/Sessions (Fehler tolerieren, Labels
# werden beim Deployment ggf. erneut gesetzt) # werden beim Deployment ggf. erneut gesetzt)
RUN restorecon -Rv /etc/greetd /etc/skel /usr/share/wayland-sessions 2>/dev/null || true RUN restorecon -Rv /etc/greetd /etc/skel /usr/share/wayland-sessions 2>/dev/null || true
-17
View File
@@ -39,21 +39,4 @@ dnf5 install -y \
f${FEDORA_VERSION}-backgrounds \ f${FEDORA_VERSION}-backgrounds \
fedora-workstation-backgrounds fedora-workstation-backgrounds
# Flacher Wallpaper-Pool fuer Noctalias Picker (der ist NICHT rekursiv und
# sieht Unterordner unter /usr/share/backgrounds nicht). Symlinks statt
# Kopien: null Mehrbytes im Image. Deterministisch benannt, vollstaendig.
mkdir -p /usr/share/noctalia-wallpapers
i=0
while IFS= read -r img; do
i=$((i + 1))
ext="${img##*.}"
ln -sf "$img" "/usr/share/noctalia-wallpapers/fluffy-pool-$(printf '%02d' "$i").${ext}"
done < <(find /usr/share/backgrounds -type f \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \) | sort)
if [ "$i" -lt 1 ]; then
echo "FEHLER: keine Wallpaper unter /usr/share/backgrounds gefunden"
exit 1
fi
echo "Wallpaper-Pool: $i Motive"
ls /usr/share/noctalia-wallpapers
dnf5 clean all dnf5 clean all
@@ -0,0 +1,10 @@
[Desktop Entry]
Name=Bing-Wallpaper an/aus
GenericName=Tages-Wallpaper umschalten
Comment=Tägliches Bing-Wallpaper ein- oder ausschalten
Exec=/usr/bin/bing-wallpaper-toggle.sh
Icon=preferences-desktop-wallpaper
Terminal=false
Type=Application
Categories=Settings;DesktopSettings;
Keywords=wallpaper;bing;hintergrund;
+5 -4
View File
@@ -1,7 +1,8 @@
# Noctalia Wallpaper-Defaults – fluffy-pancake (Noctalia-Zweig) # Noctalia Wallpaper-Defaults – fluffy-pancake (Noctalia-Zweig)
# Picker zeigt den flachen System-Pool (alle Fedora-Motive inkl. Extras als # Picker zeigt /usr/share/backgrounds (alle Fedora-Motive inkl. Extras).
# Symlinks, da der Picker keine Unterordner sieht). Eigene Bilder: in der # Unterordner: im Panel einmalig "Flatten" einschalten (bleibt gespeichert),
# GUI (Wallpaper-Panel) auf ~/Bilder umstellen oder hier eintragen. # oder in Ordner navigieren. Eigene Bilder: in der GUI (Wallpaper-Panel)
# auf ~/Bilder umstellen oder hier eintragen.
# GUI-Aenderung landet in settings.toml und gewinnt ueber dieser Datei. # GUI-Aenderung landet in settings.toml und gewinnt ueber dieser Datei.
[wallpaper] [wallpaper]
directory = "/usr/share/noctalia-wallpapers" directory = "/usr/share/backgrounds"
@@ -0,0 +1,8 @@
[Unit]
Description=Tages-Wallpaper von Bing laden und setzen
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/bing-wallpaper.sh
+12
View File
@@ -0,0 +1,12 @@
# Taeglich frisches Bing-Wallpaper (06:00, bei ausgeschaltetem Rechner
# nachgeholt). Abschalten pro User mit:
# systemctl --user disable --now bing-wallpaper.timer
[Unit]
Description=Taeglich Bing-Wallpaper laden
[Timer]
OnCalendar=*-*-* 06:00:00
Persistent=true
[Install]
WantedBy=timers.target
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# bing-wallpaper-toggle: Bing-Tages-Wallpaper an/aus schalten (User-Timer).
# Fuer den Noctalia-Launcher (.desktop-Datei) - kein Terminal noetig.
set -euo pipefail
NOTIFY="/usr/bin/notify-send"
if systemctl --user is-enabled --quiet bing-wallpaper.timer; then
systemctl --user disable --now bing-wallpaper.timer
msg="Bing-Wallpaper ausgeschaltet"
else
systemctl --user enable --now bing-wallpaper.timer
msg="Bing-Wallpaper eingeschaltet (taeglich 06:00 Uhr)"
fi
if command -v "$NOTIFY" >/dev/null; then
"$NOTIFY" "Bing-Wallpaper" "$msg" --app-name="Bing-Wallpaper" --icon=preferences-desktop-wallpaper || true
else
echo "$msg"
fi
+34
View File
@@ -0,0 +1,34 @@
#!/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"