#!/bin/bash # One-shot: set desktop wallpaper for labwc (swaybg) and persist via labwc autostart, then remove self. # Runs as user pi at first login. Logs to /var/log/first-boot.log. FIRST_BOOT_LOG="/var/log/first-boot.log" log() { echo "[$(date -Iseconds)] [set-wallpaper-once] $*" >> "$FIRST_BOOT_LOG" 2>/dev/null || true; } WALLPAPER="/usr/share/rpd-wallpaper/splash.png" LABWC_AUTOSTART="$HOME/.config/labwc/autostart" log "started (labwc/swaybg)" log "waiting 8s for compositor ..." sleep 8 if [[ ! -f "$WALLPAPER" ]]; then log "WARNING: wallpaper not found $WALLPAPER" else mkdir -p "$(dirname "$LABWC_AUTOSTART")" if [[ ! -f "$LABWC_AUTOSTART" ]]; then echo '#!/bin/sh' > "$LABWC_AUTOSTART" chmod +x "$LABWC_AUTOSTART" fi if ! grep -q 'swaybg.*splash.png' "$LABWC_AUTOSTART" 2>/dev/null; then echo "swaybg -i $WALLPAPER -m fill &" >> "$LABWC_AUTOSTART" log "added swaybg to labwc autostart" fi if command -v swaybg &>/dev/null; then log "applying wallpaper now: $WALLPAPER" swaybg -i "$WALLPAPER" -m fill & else log "WARNING: swaybg not installed" fi fi log "removing one-shot desktop and script" rm -f /home/pi/.config/autostart/set-wallpaper-once.desktop /home/pi/set-wallpaper-once.sh log "finished"