-
-
Save ScottJWalter/b83082304807412a5a7a9db36e885604 to your computer and use it in GitHub Desktop.
A hacky Termux bash script that uses the accelerometer to make an alarm that fires when the phone changes orientation.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/data/data/com.termux/files/usr/bin/bash | |
echo "getting wake lock state" | |
termux-notification-list | jq -r '.[] | select(.id == 1337).content' | grep -qF 'wake lock held' && locked="true" || locked="false" | |
if [ "$locked" = "false" ]; then | |
echo "wake lock not set, setting for duration of script" | |
termux-wake-lock | |
else | |
echo "wake lock set, Will not alter wake lock state." | |
fi | |
limit=4 | |
echo "put phone to rest within 5 sec" | |
sleep 5 | |
echo "getting initial values." | |
old_x=$(termux-sensor -n1 -s "BMI160 Accelerometer" | jq -r '.[].values[0]') | |
old_y=$(termux-sensor -n1 -s "BMI160 Accelerometer" | jq -r '.[].values[1]') | |
old_z=$(termux-sensor -n1 -s "BMI160 Accelerometer" | jq -r '.[].values[2]') | |
echo "values set. Watching for deviation." | |
while :; do | |
x=$(termux-sensor -n1 -s "BMI160 Accelerometer" | jq -r '.[].values[0]') | |
y=$(termux-sensor -n1 -s "BMI160 Accelerometer" | jq -r '.[].values[1]') | |
z=$(termux-sensor -n1 -s "BMI160 Accelerometer" | jq -r '.[].values[2]') | |
(( $(bc -l <<< "x=(${old_x} - ${x}); if ( x < 0) x = -x; x > ${limit}") )) && break | |
(( $(bc -l <<< "y=(${old_y} - ${y}); if ( y < 0) y = -y; y > ${limit}") )) && break | |
(( $(bc -l <<< "z=(${old_z} - ${z}); if ( z < 0) z = -z; z > ${limit}") )) && break | |
sleep 0.5 | |
done | |
echo "Limit surpassed. Beginning vibration. Press any key to quit." | |
while :; do | |
termux-vibrate -fd 1000 | |
read -s -t 1.1 -n 1 && break | |
done | |
[ "$locked" = "false" ] && termux-wake-unlock && echo "wake lock disabled" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment