summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Araps <dylan.araps@gmail.com>2017-08-03 06:10:36 +1000
committerDylan Araps <dylan.araps@gmail.com>2017-08-03 06:10:36 +1000
commit8a0b380eb548766e30c6e6d1818bbcbbef84c19a (patch)
treea856f16cbe00b67960ccfc82d2d56260341fadd1
parent1a5b4192a6bdcc1a7f0866640821c340642f2a7e (diff)
parent161cfd8ec1a361b4b766cb95a733027d4989d612 (diff)
Merge branch 'master' of github.com:dylanaraps/wal.py
-rw-r--r--pywal/colors.py8
-rw-r--r--pywal/util.py28
-rwxr-xr-xtests/test_util.py11
3 files changed, 19 insertions, 28 deletions
diff --git a/pywal/colors.py b/pywal/colors.py
index 64707be..2483acd 100644
--- a/pywal/colors.py
+++ b/pywal/colors.py
@@ -61,18 +61,20 @@ def sort_colors(img, colors):
if raw_colors[0][1] not in ["0", "1", "2"]:
raw_colors[0] = util.darken_color(raw_colors[0], 0.25)
- colors = {"wallpaper": img}
+ # Create a comment color from the background.
+ raw_colors[8] = util.lighten_color(raw_colors[0], 0.40)
+ colors = {"wallpaper": img}
colors_special = {}
+ colors_hex = {}
+
colors_special.update({"background": raw_colors[0]})
colors_special.update({"foreground": raw_colors[15]})
colors_special.update({"cursor": raw_colors[15]})
- colors_hex = {}
for index, color in enumerate(raw_colors):
colors_hex.update({f"color{index}": color})
- colors_hex["color8"] = util.set_grey(raw_colors)
colors["special"] = colors_special
colors["colors"] = colors_hex
diff --git a/pywal/util.py b/pywal/util.py
index 2f5debc..9931958 100644
--- a/pywal/util.py
+++ b/pywal/util.py
@@ -34,23 +34,6 @@ class Color:
return f"[{self.alpha_num}]{self.hex_color}"
-def set_grey(colors):
- """Set a grey color based on the brightness
- of another color."""
- return {
- "0": "#666666",
- "1": "#666666",
- "2": "#757575",
- "3": "#999999",
- "4": "#999999",
- "5": "#8a8a8a",
- "6": "#a1a1a1",
- "7": "#a1a1a1",
- "8": "#a1a1a1",
- "9": "#a1a1a1",
- }.get(colors[0][1], colors[7])
-
-
def read_file(input_file):
"""Read data from a file and trim newlines."""
with open(input_file, "r") as file:
@@ -114,9 +97,16 @@ def rgb_to_hex(color):
return f"#{color[0]:02x}{color[1]:02x}{color[2]:02x}"
-def darken_color(color, darkness):
+def darken_color(color, amount):
"""Darken a hex color."""
- return rgb_to_hex([int(col * (1 - darkness)) for col in hex_to_rgb(color)])
+ color = [int(col * (1 - amount)) for col in hex_to_rgb(color)]
+ return rgb_to_hex(color)
+
+
+def lighten_color(color, amount):
+ """Lighten a hex color."""
+ color = [int(col + (255 - col) * amount) for col in hex_to_rgb(color)]
+ return rgb_to_hex(color)
def disown(cmd):
diff --git a/tests/test_util.py b/tests/test_util.py
index 5f8e26d..bc551ef 100755
--- a/tests/test_util.py
+++ b/tests/test_util.py
@@ -13,12 +13,6 @@ COLORS = util.read_file_json("tests/test_files/test_file.json")
class TestUtil(unittest.TestCase):
"""Test the util functions."""
- def test_set_grey(self):
- """> Get grey color based on brightness of color0"""
- colors = [list(COLORS["colors"].values())]
- result = util.set_grey(colors[0])
- self.assertEqual(result, "#666666")
-
def test_read_file(self):
"""> Read colors from a file."""
result = util.read_file("tests/test_files/test_file")
@@ -91,6 +85,11 @@ class TestUtil(unittest.TestCase):
result = util.darken_color("#ffffff", 0.25)
self.assertEqual(result, "#bfbfbf")
+ def test_lighten_color(self):
+ """> Lighten #000000 by 0.25."""
+ result = util.lighten_color("#000000", 0.25)
+ self.assertEqual(result, "#3f3f3f")
+
if __name__ == "__main__":
unittest.main()