#!/usr/bin/python3

# Gradually decrease brightness level. Thanks ChatGPT
import subprocess
import time

def set_brightness(brightness):
    subprocess.call(['light', '-S', str(brightness)])

def smooth_dimming(initial_brightness, final_brightness, duration, steps):
    brightness_step = (initial_brightness - final_brightness) / steps
    sleep_time = duration / steps

    for i in range(steps + 1):
        current_brightness = round(initial_brightness - i * brightness_step,2)
        set_brightness(current_brightness)
        print(current_brightness)
        time.sleep(sleep_time)

    set_brightness(final_brightness)

# Save brighness value for later
subprocess.call(['light', '-O'])

initial_brightness = float(subprocess.getoutput('light'))
if initial_brightness < 20:
    final_brightness = max(0, initial_brightness - 10)
elif initial_brightness < 40:
    final_brightness = max(10, initial_brightness - 20)
elif initial_brightness < 60:
    final_brightness = max(30, initial_brightness - 30)
elif initial_brightness < 80:
    final_brightness = max(40, initial_brightness - 40)
elif initial_brightness < 100:
    final_brightness = max(50, initial_brightness - 50)


dimming_duration = 0.3 if initial_brightness < 20 else .5
num_steps = 20 if initial_brightness < 20 else 50

smooth_dimming(initial_brightness, final_brightness, dimming_duration, num_steps)