42 lines
1.2 KiB
Bash
Executable file
42 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
WALL_PATH="$HOME/.local/share/backgrounds/"
|
|
WALL_TEMP_CONF="$HOME/.config/hypr/hyprp.conf"
|
|
MONITOR=$(hyprctl monitors | awk '/^Monitor/ {print $2}')
|
|
|
|
function wallpaper(){
|
|
if ! command -v fzf &> /dev/null; then
|
|
echo "fzf not found, please install it to proceed"
|
|
exit 1
|
|
fi
|
|
if ! command -v hyprpaper &> /dev/null; then
|
|
echo "hyprpaper not found, please install it to proceed"
|
|
exit 1
|
|
fi
|
|
if ! command -v mpvpaper &> /dev/null; then
|
|
echo "mpvpaper not found, please install it to proceed"
|
|
exit 1
|
|
fi
|
|
SELECTED=$(find "$WALL_PATH" -maxdepth 1 -type f -printf '%f\n' | fzf)
|
|
if [[ ! -n "$SELECTED" ]]; then
|
|
echo "No wallpaper selected"
|
|
exit 1
|
|
fi
|
|
echo -e > $WALL_TEMP_CONF "preload=$WALL_PATH$SELECTED\nwallpaper=$MONITOR,$WALL_PATH$SELECTED\nsplash=false\nipc=off"
|
|
if pgrep -f hyprpaper > /dev/null; then
|
|
killall hyprpaper
|
|
fi
|
|
if pgrep -f mpvpaper > /dev/null; then
|
|
killall mpvpaper
|
|
fi
|
|
if [[ $SELECTED == *mp4 ]]; then
|
|
mpvpaper -o "--loop" $MONITOR "$WALL_PATH$SELECTED" &> /dev/null &
|
|
else
|
|
hyprpaper --config "$WALL_TEMP_CONF" &> /dev/null &
|
|
fi
|
|
disown
|
|
}
|
|
|
|
wallpaper
|
|
|
|
# vim: ft=bash:ts=4:sts=4:sw=4
|