theme-setter/setwll

95 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# may be moved to theme setter
cd "$(dirname "$0")"
listwalls=0
unload=0
secondary=""
primary=""
all=""
while getopts "h?lup:s:a:" opt; do
case "$opt" in
h)
printf -- "-l list wallpapers
-u unload current wall after switching
-p set primary mon wallpaper
-s set secondary mon wallpaper
-a set all mon wallpaper
unloading only applies to hyprpaper
add scripts to wallpaper_scripts for easier switching\n"
exit 0
;;
l) listwalls=1
;;
u) unload=1
;;
p) primary="$OPTARG"
;;
s) secondary="$OPTARG"
;;
a) all="$OPTARG"
;;
esac
done
shift $((OPTIND-1))
[ "${1:-}" = "--" ] && shift
if [ $listwalls == 1 ]; then
ls ./wallpaper_scripts
exit 0
fi
if [ "$all" ]; then
primary="$all"
secondary="$all"
fi
if [ -z "$primary" ]; then
primary="$(./wallpaper_scripts/default-primary.sh)"
else
if [ -f "./wallpaper_scripts/$primary.sh" ]; then
primary="$(./wallpaper_scripts/$primary.sh)"
fi
fi
if [ -z "$secondary" ]; then
secondary="$(./wallpaper_scripts/default-secondary.sh)"
else
if [ -f "./wallpaper_scripts/$secondary.sh" ]; then
secondary="$(./wallpaper_scripts/$secondary.sh)"
fi
fi
if [ "$WAYLAND_DISPLAY" ]; then
if [ "$XDG_CURRENT_DESKTOP" == "sway:wlroots" ]; then
PID=$(pidof swaybg)
swaybg -o HDMI-A-1 -i "$primary" -m fill -o DP-1 -i "$secondary" -m fill & disown
sleep 0.4s
kill $PID
else
current_wal="$(hyprctl hyprpaper listactive | grep HDMI-A-1 | sed 's/HDMI-A-1 = //')"
hyprctl hyprpaper preload $primary
hyprctl hyprpaper wallpaper "HDMI-A-1,$primary"
if [ $unload == 1 ]; then
hyprctl hyprpaper unload "$current_wal"
fi
current_wal="$(hyprctl hyprpaper listactive | grep DP-1 | sed 's/DP-1 = //')"
hyprctl hyprpaper preload $secondary
hyprctl hyprpaper wallpaper "DP-1,$secondary"
if [ $unload == 1 ]; then
hyprctl hyprpaper unload "$current_wal"
fi
fi
else
if [ -z "$1" ]; then
nitrogen --head=0 --set-zoom-fill $primary
nitrogen --head=1 --set-zoom-fill $secondary
fi
fi