dell_xps_13_9300_brightness/brightness.sh

90 lines
2.1 KiB
Bash
Raw Normal View History

#!/bin/bash
max=$(cat /sys/class/backlight/intel_backlight/max_brightness)
sensitivity=$((max/90))
treshold=$((max/4))
panOut=$((sensitivity/4))
min=$((max/10))
delay=2
minSensor=404334
while [ 1 ]
do
updated=1
while [ $updated -gt 0 ]
do
updated=0
backlight=$(cat /sys/class/backlight/intel_backlight/brightness)
sensor=$(cat /sys/bus/iio/devices/iio:device0/in_illuminance_raw)
# Scale the sensor a bit
sensor=$((sensor/10))
sensor=$((5*sensor))
target=$backlight
echo Current backlight: $backlight
echo Max backlight: $max
echo Sensitivity is: $sensitivity
echo Threshold is: $treshold
echo panOut is: $panOut
echo min is: $min
echo Current sensor reading: $sensor
echo Target is: $backlight
if [ $sensor -lt $treshold ]
then
echo Sensor was less than backlight
sensor=$(((sensor+panOut)+min))
echo New sensor: $sensor
fi
if [ $sensor -gt $((backlight+sensitivity)) ]
then
echo Sensor was greater than backlight+sensitivity
updated=1
target=$((target+(sensitivity/2)))
echo New target: $target
fi
if [ $sensor -lt $((backlight-sensitivity)) ]
then
echo Sensor was less than backlight-sensitivity
updated=1
target=$((target-(sensitivity/2)))
echo New target: $target
fi
if [ $target -gt $max ]
then
echo Target was greater than max brightness
target=$max
echo New target: $target
fi
if [ $target -lt 1 ]
then
echo Target was less than 1
target=$min
echo New target: $target
fi
if [ $updated -gt 0 ]
then
echo $target > /sys/class/backlight/intel_backlight/brightness
fi
done
echo Sleeping
sleep $delay
done