1
0
mirror of https://github.com/tiyn/dotfiles.git synced 2025-03-18 18:07:45 +01:00
dotfiles/.local/bin/tools/wallpaper

40 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
# Adapted from a script by lukesmithxyz, checkout github.com/lukesmithxyz/voidrice
wall_desk=${WALLPAPER_DESKTOP:-$XDG_DATA_HOME/bg}
wall_lock=${WALLPAPER_LOCK:-$XDG_DATA_HOME/lock}
case "$1" in
desktop) trueloc="$(readlink -f "$2")" &&
case "$(file --mime-type -b "$trueloc")" in
image/* ) ln -f "$(readlink -f "$2")" "$wall_desk" && notify-send -i "$wall_desk" "Desktop wallpaper has been changed." ;;
inode/directory ) ln -f "$(find "$trueloc" -iregex '.*.\(jpg\|jpeg\|png\|gif\)' -type f | shuf -n 1)" "$wall_desk" && notify-send -i "$wall_desk" "Random desktop wallpaper chosen." ;;
*) notify-send "🖼️ Error" "Not a valid image or directory." ; exit 1;;
esac
xwallpaper --stretch "$wall_desk" ;;
lock) trueloc="$(readlink -f "$2")" &&
case "$(file --mime-type -b "$trueloc")" in
image/* ) ln -f "$(readlink -f "$2")" "$wall_lock" && notify-send -i "$wall_lock" "Lock screen wallpaper has been changed." ;;
inode/directory ) ln -f "$(find "$trueloc" -iregex '.*.\(jpg\|jpeg\|png\|gif\)' -type f | shuf -n 1)" "$wall_lock" && notify-send -i "$wall_lock" "Random lock screen wallpaper chosen." ;;
*) notify-send "🖼️ Error" "Not a valid image or directory." ; exit 1;;
esac ;;
both) wallpaper desktop "$2" &&
wallpaper lock "$2";;
*) cat << EOF
wallpaper: cli script to set and reset the wallpaper of the desktop and lock
screen.
Allowed options:
desktop [PATH] Set the wallpaper of the desktop to the specified path.
If no path is given reset it.
lock [PATH] Set the wallpaper of the lock screen to the specified path.
If no path is given reset it.
both [PATH] Set wallpaper for both lock screen and dektop to a
specified path.
If no path is given reset it.
all else Print this message
EOF
esac