aboutsummaryrefslogtreecommitdiff
path: root/setwll
blob: 5dae9959eb716c040ef25fbf754b201456ef57d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/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