Now with the notes from the debug versoin

This commit is contained in:
steel99xl 2024-02-10 11:47:06 -05:00
parent 7635064471
commit e8daf94cda

View file

@ -24,6 +24,9 @@ MinimumBrightness=001
# 2 : Default | 1 : Add Offset | 0 : Subtract Offset, Recomended not to change
op=2
# Only look for flags -i or -d with an aditional value
# AutomaticBrightness.sh -i 100
while getopts i:d: flag
do
case "${flag}" in
@ -34,6 +37,7 @@ do
esac
done
# Verigy offset file exsits and if so read it
if [[ -f /dev/shm/AB.offset ]]
then
OffSet=$(cat /dev/shm/AB.offset)
@ -43,10 +47,10 @@ else
$(chmod 666 /dev/shm/AB.offset)
fi
#if no offset or its less than 0 make 0
OffSet=$((OffSet < 0 ? 0 : OffSet))
# relativly change number in Offset file and write it
if [[ $op -lt 2 ]]
then
if [[ $op -eq 1 ]]
@ -56,6 +60,7 @@ then
OffSet=$((OffSet - num))
fi
# verify offset is not less than 0
OffSet=$((OffSet < 0 ? 0 : OffSet))
$(echo $OffSet > /dev/shm/AB.offset)
@ -72,14 +77,17 @@ renice "$priority" "$$"
sleep 5
# Get screen max brightness value
MaxScreenBrightness=$(find -L /sys/class/backlight -maxdepth 2 -name "max_brightness" 2>/dev/null | grep "max_brightness" | xargs cat)
# Set path to current screen brightness value
BLightPath=$(find -L /sys/class/backlight -maxdepth 2 -name "brightness" 2>/dev/null | grep "brightness")
# Set path to current luminance sensor
LSensorPath=$(find -L /sys/bus/iio/devices -maxdepth 2 -name "in_illuminance_raw" 2>/dev/null | grep "in_illuminance_raw")
#Set the current light value so we have something to compare to
OldLight=$(cat $LSensorPath)
while true
@ -94,16 +102,14 @@ do
fi
Light=$(cat $LSensorPath)
## apply offset to current light value
Light=$((Light + OffSet))
if [[ $Light -lt $LightChange ]]
then
MaxOld=$((OldLight + LightChange))
MinOld=$((OldLight - LightChange))
else
# Set allowed range for light
MaxOld=$((OldLight + OldLight/LightChange))
MinOld=$((OldLight - OldLight/LightChange))
fi
if [[ $Light -gt $MaxOld ]] || [[ $Light -lt $MinOld ]]
then
@ -111,13 +117,17 @@ do
CurrentBrightness=$(cat $BLightPath)
# Add MinimumBrighness here to not effect comparison but the outcome
Light=$(( $Light + $MinimumBrightness ))
# Gernate a TempLight value for the screen to be set to
# Float math thanks Matthias_Wachter
TempLight=$(echo "scale=2; $Light * $SensorToDisplayScale" | bc)
# REmoves float for latter checks
TempLight=$(LANG=C printf "%.0f" $TempLight)
# Check we dont ask the screen to go brighter than it can
if [[ $TempLight -gt $MaxScreenBrightness ]]
then
NewLight=$MaxScreenBrightness
@ -125,13 +135,18 @@ do
NewLight=$TempLight
fi
# How diffrent should each stop be
DiffCount=$(( ( $NewLight - $CurrentBrightness ) / $LevelSteps ))
# Step once per Screen Hz to make animation
for i in $(eval echo {1..$LevelSteps} )
do
# Set new relative light value
NewLight=$(( $DiffCount ))
# Format values apropriatly for brightnessctl
if [[ $NewLight -lt 0 ]]
then
NewLight=$( echo "$NewLight" | awk -F "-" {'print$2'})
@ -140,11 +155,14 @@ do
NewLight=$(echo +$NewLight)
fi
# Adjust brightness relativly
brightnessctl -q s $NewLight
# Sleep for the screen Hz time so he effect is visible
sleep $AnimationDelay
done
# Store new light as old light for next comparison
OldLight=$Light
fi