summaryrefslogtreecommitdiff
path: root/pywal
diff options
context:
space:
mode:
authorDylan Araps <dylan.araps@gmail.com>2018-03-31 12:33:52 +1100
committerDylan Araps <dylan.araps@gmail.com>2018-03-31 12:33:52 +1100
commit26677bb64b426daf0ad4cad433706b28cdf15bc8 (patch)
treea0dc636b4ed01025e4c5c2fdca0ff3a90046b3fa /pywal
parent520b065a30152fb9639418ce0557d45c6a07d9a5 (diff)
backend: cleanup
Diffstat (limited to 'pywal')
-rw-r--r--pywal/backends/colorthief.py26
-rw-r--r--pywal/backends/colorz.py22
-rw-r--r--pywal/util.py5
3 files changed, 35 insertions, 18 deletions
diff --git a/pywal/backends/colorthief.py b/pywal/backends/colorthief.py
index 837fc66..d223431 100644
--- a/pywal/backends/colorthief.py
+++ b/pywal/backends/colorthief.py
@@ -12,10 +12,10 @@ def gen_colors(img):
"""Loop until 16 colors are generated."""
color_cmd = ColorThief(img).get_palette
- for i in range(0, 20, 1):
- raw_colors = color_cmd(color_count=16 + i)
+ for i in range(0, 10, 1):
+ raw_colors = color_cmd(color_count=8 + i)
- if len(raw_colors) > 16:
+ if len(raw_colors) >= 8:
break
elif i == 19:
@@ -25,24 +25,28 @@ def gen_colors(img):
else:
print("colors: ColorThief couldn't create a suitable palette, "
- "trying a larger palette size", 16 + i)
+ "trying a larger palette size", 8 + i)
return [util.rgb_to_hex(color) for color in raw_colors]
def adjust(colors, light):
"""Create palette."""
+ colors.sort(key=util.rgb_to_yiq)
+ raw_colors = [*colors, *colors]
+
if light:
- print("colors: Colortheif backend doesn't support light themes.")
+ raw_colors[0] = util.lighten_color(colors[0], 0.90)
+ raw_colors[7] = util.darken_color(colors[0], 0.75)
- raw_colors = colors[:1] + colors[8:16] + colors[8:-1]
+ else:
+ for color in raw_colors:
+ color = util.lighten_color(color, 0.40)
- for color in raw_colors:
- color = util.lighten_color(color, 0.25)
+ raw_colors[0] = util.darken_color(colors[0], 0.80)
+ raw_colors[7] = util.lighten_color(colors[0], 0.60)
- raw_colors[0] = util.darken_color(colors[0], 0.80)
- raw_colors[7] = util.lighten_color(colors[15], 0.60)
- raw_colors[8] = util.blend_color(colors[0], colors[15])
+ raw_colors[8] = util.lighten_color(colors[0], 0.20)
raw_colors[15] = raw_colors[7]
return raw_colors
diff --git a/pywal/backends/colorz.py b/pywal/backends/colorz.py
index 44a07d0..e67a8c8 100644
--- a/pywal/backends/colorz.py
+++ b/pywal/backends/colorz.py
@@ -14,18 +14,26 @@ def gen_colors(img):
def adjust(colors, light):
"""Create palette."""
- if light:
- print("colors: Colorz backend doesn't support light themes.")
-
# Create list with placeholder values.
raw_colors = ["#000000", *colors, "#FFFFFF",
"#333333", *colors, "#FFFFFF"]
# Update placeholder values.
- raw_colors[0] = util.darken_color(colors[0], 0.75)
- raw_colors[8] = util.darken_color(colors[0], 0.25)
- raw_colors[7] = util.lighten_color(colors[0], 0.75)
- raw_colors[15] = raw_colors[7]
+ if light:
+ for color in raw_colors:
+ color = util.saturate_color(color, 0.50)
+ color = util.darken_color(color, 0.4)
+
+ raw_colors[0] = util.lighten_color(colors[0], 0.9)
+ raw_colors[7] = util.darken_color(colors[0], 0.75)
+ raw_colors[8] = util.darken_color(colors[0], 0.25)
+ raw_colors[15] = raw_colors[7]
+
+ else:
+ raw_colors[0] = util.darken_color(colors[0], 0.75)
+ raw_colors[7] = util.lighten_color(colors[0], 0.75)
+ raw_colors[8] = util.darken_color(colors[0], 0.25)
+ raw_colors[15] = raw_colors[7]
return raw_colors
diff --git a/pywal/util.py b/pywal/util.py
index 43ee3fb..65d4557 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -144,6 +144,11 @@ def saturate_color(color, amount):
return rgb_to_hex((int(r), int(g), int(b)))
+def rgb_to_yiq(color):
+ """Sort a list of colors."""
+ return colorsys.rgb_to_yiq(*hex_to_rgb(color))
+
+
def disown(cmd):
"""Call a system command in the background,
disown it and hide it's output."""