Skip to content

Instantly share code, notes, and snippets.

@Shade30
Last active March 21, 2017 11:03
Show Gist options
  • Save Shade30/7004cdc7b691fcae8bde04047cea9a96 to your computer and use it in GitHub Desktop.
Save Shade30/7004cdc7b691fcae8bde04047cea9a96 to your computer and use it in GitHub Desktop.
Variety - custom set_wallpaper script for KDE
#!/bin/bash
# KDE - User will have to manually choose ~/Pictures/variety-wallpaper/ as a slideshow folder with a short iterval.
# Afterwards, with the command below, Variety will just overwrite the single file there when changing the wallpaper
# and KDE will refresh it
if [ "`env | grep KDE_FULL_SESSION | tail -c +18`" == "true" ]; then
mkdir -p "$(xdg-user-dir PICTURES)/variety-wallpaper"
NEWWP="$(xdg-user-dir PICTURES)/variety-wallpaper/wallpaper-kde-$RANDOM.jpg"
cp "$WP" "$NEWWP"
touch "$NEWWP"
PWDIR=`pwd`
cd "$(xdg-user-dir PICTURES)/variety-wallpaper/"
ls -tr "$(xdg-user-dir PICTURES)/variety-wallpaper/" | head -n -1 | xargs --no-run-if-empty rm
echo "[Desktop Entry]" > metadata.desktop
# Recover PNG extension
TYPE=$(file -b $NEWWP)
[[ $TYPE == PNG\ image\ data* ]] && mv "$NEWWP" "$(dirname "$NEWWP")/$(basename "$NEWWP" .jpg).png"
cd "$PWDIR"
# Repeat for second desktop
mkdir -p "$(xdg-user-dir PICTURES)/variety-wallpaper-2"
NEWWP="$(xdg-user-dir PICTURES)/variety-wallpaper-2/wallpaper-kde-$RANDOM.jpg"
cp "$WP" "$NEWWP"
touch "$NEWWP"
PWDIR=`pwd`
cd "$(xdg-user-dir PICTURES)/variety-wallpaper-2/"
ls -tr "$(xdg-user-dir PICTURES)/variety-wallpaper-2/" | head -n -1 | xargs --no-run-if-empty rm
echo "[Desktop Entry]" > metadata.desktop
# Recover PNG extension
TYPE=$(file -b $NEWWP)
[[ $TYPE == PNG\ image\ data* ]] && mv "$NEWWP" "$(dirname "$NEWWP")/$(basename "$NEWWP" .jpg).png"
cd "$PWDIR"
exit 0
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment