2022-01-27 00:59:07 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
2022-01-31 01:46:35 +01:00
|
|
|
pidfile=/tmp/autorotate.pid
|
|
|
|
if ps -p $(cat "$pidfile" 2>/dev/null) >/dev/null; then
|
|
|
|
echo "An autorotate process is already running - if not please remove $pidfile" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo $$ > "$pidfile"
|
2022-01-27 00:59:07 +01:00
|
|
|
script_dir="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
|
|
source "$script_dir/cutiepi-screen-common"
|
|
|
|
|
|
|
|
# Turn off the HDMI interface. This actually shouldn't be required, but taking
|
|
|
|
# the second display into account would make the xinput coordinate transformation
|
|
|
|
# matrices more complex (TODO it can be tackled later if there's enough demand for
|
|
|
|
# screen rotation features while the tablet is attached to another screen)
|
|
|
|
xrandr --output HDMI-2 --off
|
|
|
|
|
|
|
|
# Default rotation: standard horizontal
|
|
|
|
screen_set_horizontal
|
|
|
|
|
|
|
|
monitor-sensor | while read line; do
|
|
|
|
echo "$line" | egrep '^\s*Accelerometer orientation changed: ' >/dev/null || continue
|
|
|
|
orientation=$(echo "$line" | awk '{print $4}')
|
|
|
|
case "$orientation" in
|
|
|
|
left-up) screen_set_horizontal;;
|
|
|
|
normal) screen_set_vertical;;
|
|
|
|
right-up) screen_set_horizontal_inverted;;
|
|
|
|
bottom-up) screen_set_vertical_inverted;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|