mirror of
https://github.com/dylanaraps/pywal.git
synced 2025-05-31 06:56:13 +02:00
45 lines
1022 B
Python
45 lines
1022 B
Python
"""
|
|
Generate a colorscheme using Colorz.
|
|
"""
|
|
import logging
|
|
import sys
|
|
|
|
try:
|
|
import colorz
|
|
|
|
except ImportError:
|
|
logging.error("colorz wasn't found on your system.")
|
|
logging.error("Try another backend. (wal --backend)")
|
|
sys.exit(1)
|
|
|
|
from .. import colors
|
|
from .. import util
|
|
|
|
|
|
def gen_colors(img):
|
|
"""Generate a colorscheme using Colorz."""
|
|
raw_colors = colorz.colorz(img, n=6, bold_add=0)
|
|
return [util.rgb_to_hex([*color[0]]) for color in raw_colors]
|
|
|
|
|
|
def adjust(cols, light):
|
|
"""Create palette."""
|
|
bg = util.blend_color("#555555", cols[1])
|
|
|
|
raw_colors = [bg, *cols, "#FFFFFF",
|
|
"#333333", *cols, "#FFFFFF"]
|
|
|
|
return colors.generic_adjust(raw_colors, light)
|
|
|
|
|
|
def get(img, light=False):
|
|
"""Get colorscheme."""
|
|
cols = gen_colors(img)
|
|
|
|
if len(cols) < 6:
|
|
logging.error("colorz failed to generate enough colors.")
|
|
logging.error("Try another backend or another image. (wal --backend)")
|
|
sys.exit(1)
|
|
|
|
return adjust(cols, light)
|