aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/lock29
-rwxr-xr-xbin/lockscr114
2 files changed, 27 insertions, 16 deletions
diff --git a/bin/lock b/bin/lock
index 36f6ebe..2b8fc3a 100755
--- a/bin/lock
+++ b/bin/lock
@@ -1,7 +1,7 @@
#! /bin/bash
refocus_fullscreen_nodes() {
- while [ -e "$(pgrep -x permafocus)" ]; do sleep 1; done
+ while [ -z "$(pgrep -x permafocus)" ]; do sleep 1; done
for NODE in ${FULLSCREEN_NODES}; do
bspc node ${NODE} -t fullscreen
@@ -13,6 +13,19 @@ if [ $(pgrep -x lock | wc -l) -gt 2 ]; then
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)
@@ -21,7 +34,8 @@ bspc monitor -f 1
-c ~/.config/kitty/lock_screen.conf \
-- ~/bin/lockscr1 &
-sleep 2
+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
@@ -30,7 +44,8 @@ if [ -n "$(xrandr --listmonitors | grep 'DP-2')" ]; then
-c ~/.config/kitty/lock_screen.conf \
-- ~/bin/lockscr2 &
- sleep 2
+ 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
@@ -38,6 +53,13 @@ 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
bspc node ${SECONDARY_WINDOW} -k
@@ -45,3 +67,4 @@ bspc node ${SECONDARY_WINDOW} -k
kill -9 $(ps -s $(ps -C lockscr2 -o pid=) -o pid=)
bspc monitor -f ${FOCUSED_MONITOR}
+bspc wm -r
diff --git a/bin/lockscr1 b/bin/lockscr1
index 990515a..cf2b37d 100755
--- a/bin/lockscr1
+++ b/bin/lockscr1
@@ -1,26 +1,14 @@
#! /bin/bash
-unlock() {
- setxkbmap -rules /usr/share/X11/xkb/rules/evdev
- dunstctl set-paused false
-
- bspc wm -r
-}
-
main() {
clear
tty-clock -r -D -B -s -S
- su $USER sh -c '' && unlock || main
+ su $USER sh -c '' || main
}
trap "" 1 2 3 15 20 SIGTSTP
-xkbcomp ~/.local/bspwm-setup/lockscreen.xkb $DISPLAY 2>/dev/null
-
-killall -qw sxhkd polybar
-dunstctl set-paused true
-
sleep 1
main