#!/usr/bin/python

import subprocess
import time
from colour import Color

gradient = [
    "#c6a0f6",
    "#b7bdf8",
    "#8aadf4",
]

def color_range(*args):
    l = []
    for i,color in enumerate(args):
        if i == len(args)-1:
            break
        l.extend(color.range_to(args[i+1], 25))
    return l

def rgb_to_hex(r,g,b):
    return '%02x%02x%02x' % (r,g,b)

def set_color(r,g,b):
    print(rgb_to_hex(r,g,b))
    subprocess.run(f"hyprctl keyword general:col.active_border 0xff{rgb_to_hex(r,g,b)}".split())
    #subprocess.run(f"hyprctl keyword general:col.inactive_border 0x66{rgb_to_hex(r,g,b)}".split())

colors = color_range(*[Color(i) for i in gradient])

while 1:
    for col in colors:
        set_color(int(col.red*255), int(col.green*255), int(col.blue*255))
        time.sleep(0.05)
    for col in colors[::-1]:
        set_color(int(col.red*255), int(col.green*255), int(col.blue*255))
        time.sleep(0.05)