Add script to rotate screen based on sensor
This commit is contained in:
parent
10db59ca20
commit
0136343f0f
1 changed files with 44 additions and 0 deletions
44
rotate-by-sensor.sh
Executable file
44
rotate-by-sensor.sh
Executable file
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# 2022-02-22, Nico Schottelius
|
||||||
|
# Inspired by https://gist.github.com/Links2004/5976ce97a14dabf773c3ff98d03c0f61
|
||||||
|
|
||||||
|
output=$(xrandr | awk '/connected primary/ { print $1 }')
|
||||||
|
input=$(xinput --list | grep -e "Pen Pen" | sed 's/.*id=\([0-9]*\).*/\1/')
|
||||||
|
|
||||||
|
monitor-sensor | (
|
||||||
|
while true; do
|
||||||
|
read line
|
||||||
|
ORIENTATION=$(echo $line | awk -F: '/Accelerometer orientation changed:/ { print $2 } ' | sed 's/ *//')
|
||||||
|
|
||||||
|
# Check if we are matching on a correct line, if not, skip
|
||||||
|
if [ -z "$ORIENTATION" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo $ORIENTATION
|
||||||
|
|
||||||
|
case "$ORIENTATION" in
|
||||||
|
normal)
|
||||||
|
rotate="normal"
|
||||||
|
matrix="1 0 0 0 1 0 0 0 1"
|
||||||
|
;;
|
||||||
|
bottom-up)
|
||||||
|
rotate="inverted"
|
||||||
|
matrix="-1 0 1 0 -1 1 0 0 1"
|
||||||
|
;;
|
||||||
|
right-up)
|
||||||
|
rotate="right"
|
||||||
|
matrix="0 1 0 -1 0 1 0 0 1"
|
||||||
|
;;
|
||||||
|
left-up)
|
||||||
|
rotate="left"
|
||||||
|
matrix="0 -1 1 1 0 0 0 0 1"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# set -x
|
||||||
|
xrandr --output ${output} --rotate ${rotate}
|
||||||
|
xinput set-prop ${input} 'Coordinate Transformation Matrix' ${matrix}
|
||||||
|
# set +x
|
||||||
|
done
|
||||||
|
)
|
Loading…
Reference in a new issue