#!/bin/bash

LevelSteps=60
AnimationDelay=0.016
MaxScreenBrightness=96000
SensorDelay=1

MinimumBrightness=001

SensorToDisplayScale=24

while true; do
Light=$(cat /sys/bus/iio/devices/iio\:device0/in_illuminance_raw)

CurrentBrightness=$(cat /sys/class/backlight/intel_backlight/brightness)


Light=$(( $Light + $MinimumBrightness ))


TempLight=$(($Light * $SensorToDisplayScale))

if [[ $TempLight -gt $MaxScreenBrightness ]]
then
	NewLight=$MaxScreenBrightness
else
	NewLight=$TempLight
fi

DiffCount=$(( ($NewLight - $CurrentBrightness)/$LevelSteps ))

for i in $(eval echo {1..$LevelSteps} )
do

	NewLight=$(( $DiffCount ))

	if [[ $NewLight -lt 0 ]]
	then
	NewLight=$( echo "$NewLight" | awk -F "-" {'print$2'})
	NewLight=$(echo $NewLight-)
	else
	NewLight=$(echo +$NewLight)
	fi

	brightnessctl -q s $NewLight
	sleep $AnimationDelay

done

sleep $SensorDelay

done