blob: d4404c1579df716af780979e0e67724c2835ae7c (
plain) (
blame)
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
|
#! /bin/bash
refocus_fullscreen_nodes() {
while [ -z "$(pgrep -x permafocus)" ]; do sleep 1; done
for NODE in ${FULLSCREEN_NODES}; do
bspc node ${NODE} -t fullscreen
done
}
if [ $(pgrep -x lock | wc -l) -gt 2 ]; then
# Starting multiple screen lock instances may cause unintended side effects
exit 0
fi
#
# Security
#
xkbcomp ~/.local/bspwm-setup/lockscreen.xkb $DISPLAY 2>/dev/null
killall -qw sxhkd polybar
dunstctl set-paused true
#
# UI
#
FOCUSED_MONITOR=$(bspc query -M -m)
FULLSCREEN_NODES=$(bspc query -N -n any.fullscreen)
bspc monitor -f 1
WINIT_X11_SCALE_FACTOR=1.0 ~/.cargo/bin/alacritty -e ~/bin/lockscr1 &
while [ -z "$(ps -C lockscr1 -o pid=)" ]; do sleep 1; done
while [ -z "$(ps -s $(ps -C lockscr1 -o pid=) -o pid=)" ]; do sleep 1; done
PRIMARY_WINDOW=$(bspc query -N -n)
if [ -n "$(xrandr --listmonitors | grep 'DP-2')" ]; then
bspc monitor -f 2
WINIT_X11_SCALE_FACTOR=1.0 ~/.cargo/bin/alacritty -e ~/bin/lockscr2 &
while [ -z "$(ps -C lockscr2 -o pid=)" ]; do sleep 1; done
while [ -z "$(ps -s $(ps -C lockscr2 -o pid=) -o pid=)" ]; do sleep 1; done
SECONDARY_WINDOW=$(bspc query -N -n)
fi
refocus_fullscreen_nodes &
~/bin/permafocus ${PRIMARY_WINDOW} ${SECONDARY_WINDOW}
#
# Unlock
#
setxkbmap -rules /usr/share/X11/xkb/rules/evdev
dunstctl set-paused false
bspc node ${PRIMARY_WINDOW} -k
if [ -n "${SECONDARY_WINDOW}" ]; then
bspc node ${SECONDARY_WINDOW} -k
fi
# Kill second tty-clock
kill -9 $(ps -s $(ps -C lockscr2 -o pid=) -o pid=)
bspc monitor -f ${FOCUSED_MONITOR}
bspc wm -r
|