95 lines
2.2 KiB
Bash
Executable File
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
|