39 lines
1 KiB
Bash
39 lines
1 KiB
Bash
|
#!/bin/sh
|
||
|
# Set the postmarketOS wallpaper in Plasma based UIs. Replace this hack when we
|
||
|
# have a cleaner method: https://bugs.kde.org/show_bug.cgi?id=487816
|
||
|
|
||
|
MARKER=~/.local/state/postmarketos/plasma-wallpaper-has-been-set
|
||
|
WALLPAPER_PATH="/usr/share/wallpapers/postmarketos"
|
||
|
|
||
|
# Only run this script in Plasma sessions. This variable is set in in both
|
||
|
# Plasma Desktop and Plasma Mobile (unlike e.g. XDG_DESKTOP_SESSION).
|
||
|
if [ -z "$KDE_FULL_SESSION" ]; then
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Only run this script once. If the user selects a different wallpaper
|
||
|
# afterwards, it should not be changed.
|
||
|
if [ -e "$MARKER" ]; then
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
echo "set-plasma-wallpaper: changing to: $WALLPAPER_PATH"
|
||
|
|
||
|
# Unfortunately this fails if the D-Bus API isn't available yet. So we have to
|
||
|
# try multiple times.
|
||
|
for i in $(seq 1 30); do
|
||
|
sleep 1
|
||
|
|
||
|
if ! plasma-apply-wallpaperimage "$WALLPAPER_PATH"; then
|
||
|
continue
|
||
|
fi
|
||
|
|
||
|
mkdir -p "$(dirname "$MARKER")"
|
||
|
touch "$MARKER"
|
||
|
echo "set-plasma-wallpaper: success"
|
||
|
exit 0
|
||
|
done
|
||
|
|
||
|
echo "set-plasma-wallpaper: failed"
|
||
|
exit 1
|