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/sequences.py b/pywal/sequences.py index c254de0..b94bd93 100644 --- a/pywal/sequences.py +++ b/pywal/sequences.py @@ -29,7 +29,7 @@ def set_color(index, color): def set_iterm_tab_color(color): - """Set iTerm2 window color""" + """Set iTerm2 tab/window color""" red, green, blue = util.hex_to_rgb(color) return [ f"\033]6;1;bg;red;brightness;{red}\a", diff --git a/pywal/settings.py b/pywal/settings.py index 61af72b..a8145db 100644 --- a/pywal/settings.py +++ b/pywal/settings.py @@ -13,7 +13,7 @@ import pathlib import platform -__version__ = "0.5.9" +__version__ = "0.5.11" HOME = pathlib.Path.home() 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()