sxmo-utils/scripts/core/sxmo_proximitylock.sh
2021-06-06 09:41:36 +02:00

36 lines
632 B
Bash

#!/usr/bin/env sh
isLocked() {
curState="$(sxmo_screenlock.sh getCurState)"
[ "$curState" = "lock" ] || [ "$curState" = "off" ]
}
finish() {
sxmo_screenlock.sh "$INITIALSTATE"
exit 0
}
trap 'finish' TERM INT
proximity_raw_bus="$(find /sys/ -name 'in_proximity_raw')"
distance() {
cat "$proximity_raw_bus"
}
TARGET=30
mainloop() {
while true; do
distance="$(distance)"
if isLocked && [ "$distance" -lt "$TARGET" ]; then
sxmo_screenlock.sh unlock
elif ! isLocked && [ "$distance" -gt "$TARGET" ]; then
sxmo_screenlock.sh off
fi
sleep 0.5
done
}
INITIALSTATE="$(sxmo_screenlock.sh getCurState)"
mainloop