summaryrefslogtreecommitdiff
path: root/scripts/.local/bin/ilock
blob: 884ab3442954d0a830f3b19ced657fe2c2ccf02f (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
#!/bin/sh

# assumption: the user is not an ADHD-riddled zoomer and does not use >1 mpv instance

# flush secrets
gnome-keyring-daemon -r -d
ssh-agent -k
gpgconf --kill gpg-agent


# stop sounds
playerctl_get_playing() {
    for player in $(playerctl -l)
    do
        if [ "$(playerctl -p "$player" status)" = "Playing" ]; then
            echo "$player"
        fi
    done
}
playerctl_playing="$(playerctl_get_playing)"
for player in $playerctl_playing; do
    playerctl -p "$player" pause >/dev/null && echo "playerctl: pause" "$player"
done

# playerctl for mpd requires mpd-mpris running = BLOAT
mpc_on="$(mpc | grep '\[playing\]')"
mpc pause >/dev/null && echo "mpc: pause"

ismuted="$(pamixer --get-mute)"
pamixer --mute && echo "Sound server: mute"


echo "Locking..."
slock


# continue if something was playing
for player in $playerctl_playing; do
    playerctl -p "$player" play >/dev/null && echo "playerctl: play" "$player"
done
if [ -n "$mpc_on" ]; then
    mpc play >/dev/null && echo "mpc: play"
fi
if [ "$ismuted" = "false" ]; then
    pamixer --unmute && echo "Sound server: unmute"
fi