theme-setter/setwll

89 lines
2.1 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\n"
printf "u unload current wall after switching\n"
printf "p set primary mon wallpaper\n"
printf "s set secondary mon wallpaper\n"
printf "a set all mon wallpaper\n"
printf "unloading only applies to hyprpaper\n"
printf "\n"
printf "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)"
else
if [ -f "./wallpaper_scripts/$primary" ]; then
primary="$(./wallpaper_scripts/$primary)"
fi
fi
if [ -z "$secondary" ]; then
secondary="$(./wallpaper_scripts/default-secondary)"
else
if [ -f "./wallpaper_scripts/$secondary" ]; then
secondary="$(./wallpaper_scripts/$secondary)"
fi
fi
if [ "$WAYLAND_DISPLAY" ]; then
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
else
if [ -z "$1" ]; then
nitrogen --head=0 --set-zoom-fill $primary
nitrogen --head=1 --set-zoom-fill $secondary
fi
fi