#!/bin/sh # may be moved to theme setter cd "$(dirname "$0")" || exit listwalls=0 unload=0 secondary="" primary="" all="" while getopts "hlup: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" ;; *) break ;; 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 & 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