hyprland nxcolor-functions better
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
from colorsys import hls_to_rgb, rgb_to_hls
|
||||
import json
|
||||
import sys
|
||||
import subprocess
|
||||
from typing import Literal, cast
|
||||
from numpy.typing import NDArray
|
||||
from sklearn.cluster import KMeans
|
||||
@@ -25,7 +26,7 @@ def fc(c: int) -> str:
|
||||
return s
|
||||
|
||||
class Color(object):
|
||||
def __init__(self, rgb: tuple[int, ...], frequency: float):
|
||||
def __init__(self, rgb: tuple[int, ...], frequency: float = 1):
|
||||
assert len(rgb) == 3, "RGB values must be a tuple of length 3"
|
||||
self.rgb = cast(tuple[int, int, int], rgb)
|
||||
self.freq: float = frequency
|
||||
@@ -115,14 +116,23 @@ def extract_colors(
|
||||
colors.sort(reverse=True)
|
||||
|
||||
return Palette(colors)
|
||||
|
||||
def hyprpicker() -> Color:
|
||||
ret = str(subprocess.run(["${pkgs.hyprpicker}/bin/hyprpicker", "-f", "rgb"], capture_output=True).stdout)[2:-3]
|
||||
return Color([int(c) for c in ret.split(" ")])
|
||||
|
||||
if __name__ == "__main__":
|
||||
img = sys.argv[1]
|
||||
if sys.argv[1] == "img":
|
||||
img = sys.argv[2]
|
||||
palette = extract_colors(image=img, palette_size=3)
|
||||
accent = ensure_color(c=palette[0], alter_sat=False)
|
||||
secondary = ensure_color(c=palette[1], alter_sat=True)
|
||||
tertiary = ensure_color(c=palette[2], alter_sat=False)
|
||||
elif sys.argv[1] == "manual":
|
||||
accent = ensure_color(c=hyprpicker(), alter_sat=False)
|
||||
secondary = ensure_color(c=hyprpicker(), alter_sat=True)
|
||||
tertiary = ensure_color(c=hyprpicker(), alter_sat=False)
|
||||
|
||||
palette = extract_colors(image=img, palette_size=3)
|
||||
|
||||
accent = ensure_color(c=palette[0], alter_sat=False)
|
||||
secondary = ensure_color(c=palette[1], alter_sat=True)
|
||||
tertiary = ensure_color(c=palette[2], alter_sat=False)
|
||||
weird = alter_hue(ilist=accent, hue=80)
|
||||
special = alter_hue(ilist=accent, hue=180)
|
||||
foreground = alter_l(accent, 0.9)
|
||||
|
||||
Reference in New Issue
Block a user