From 63a65055f9b7d8009ce84994cc81b072d617fb69 Mon Sep 17 00:00:00 2001 From: Mike Wallio Date: Wed, 11 Aug 2021 21:49:07 -0700 Subject: [PATCH 1/3] Normalize wallpaper path to forward slash - Windows path isn't escaped when passed through JSON.dump --- pywal/colors.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pywal/colors.py b/pywal/colors.py index 99d346d..fd8033f 100644 --- a/pywal/colors.py +++ b/pywal/colors.py @@ -18,11 +18,19 @@ def list_backends(): os.scandir(os.path.join(MODULE_DIR, "backends")) if "__" not in b.name] +def normalize_img_path(img: str): + """Normalizes the image path for output.""" + if os.name == 'nt': + # On Windows, the JSON.dump ends up outputting un-escaped backslash breaking + # the ability to read colors.json. Windows supports forward slash, so we can + # use that for now + return img.replace('\\', '/') + return img def colors_to_dict(colors, img): """Convert list of colors to pywal format.""" return { - "wallpaper": img, + "wallpaper": normalize_img_path(img), "alpha": util.Color.alpha_num, "special": { From 0d12a2ca2887010e6db60a8eaa156310f302e473 Mon Sep 17 00:00:00 2001 From: jokersus Date: Tue, 31 Aug 2021 13:31:14 +0400 Subject: [PATCH 2/3] Updated templates to be compatible with rofi 1.7.0^ --- pywal/templates/colors-rofi-dark.rasi | 5 +++++ pywal/templates/colors-rofi-light.rasi | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/pywal/templates/colors-rofi-dark.rasi b/pywal/templates/colors-rofi-dark.rasi index 302d44f..fde6881 100644 --- a/pywal/templates/colors-rofi-dark.rasi +++ b/pywal/templates/colors-rofi-dark.rasi @@ -73,6 +73,11 @@ padding: 1px; }} +#element-text, element-icon {{ + background-color: inherit; + text-color: inherit; +}} + #element.normal.normal {{ background-color: @normal-background; text-color: @normal-foreground; diff --git a/pywal/templates/colors-rofi-light.rasi b/pywal/templates/colors-rofi-light.rasi index d4f89af..ff592d7 100644 --- a/pywal/templates/colors-rofi-light.rasi +++ b/pywal/templates/colors-rofi-light.rasi @@ -73,6 +73,11 @@ padding: 1px; }} +#element-text, element-icon {{ + background-color: inherit; + text-color: inherit; +}} + #element.normal.normal {{ background-color: @normal-background; text-color: @normal-foreground; From db7ea3c039e5bc158bce448a11cf65a591ab8c32 Mon Sep 17 00:00:00 2001 From: atagen Date: Thu, 9 Sep 2021 10:59:50 +1000 Subject: [PATCH 3/3] add fast_colorthief backend --- pywal/backends/fast_colorthief.py | 50 +++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 pywal/backends/fast_colorthief.py diff --git a/pywal/backends/fast_colorthief.py b/pywal/backends/fast_colorthief.py new file mode 100644 index 0000000..b68ff02 --- /dev/null +++ b/pywal/backends/fast_colorthief.py @@ -0,0 +1,50 @@ +""" +Generate a colorscheme using fast_colorthief. +""" +import logging +import sys + +try: + import fast_colorthief + +except ImportError: + logging.error("fast_colorthief wasn't found on your system.") + logging.error("Try another backend. (wal --backend)") + sys.exit(1) + +from .. import util + + +def gen_colors(img): + """ Ask backend to generate 16 colors. """ + raw_colors = fast_colorthief.get_palette(img, 16) + + return [util.rgb_to_hex(color) for color in raw_colors] + + +def adjust(cols, light): + """Create palette.""" + cols.sort(key=util.rgb_to_yiq) + raw_colors = [*cols, *cols] + + if light: + raw_colors[0] = util.lighten_color(cols[0], 0.90) + raw_colors[7] = util.darken_color(cols[0], 0.75) + + else: + for color in raw_colors: + color = util.lighten_color(color, 0.40) + + raw_colors[0] = util.darken_color(cols[0], 0.80) + raw_colors[7] = util.lighten_color(cols[0], 0.60) + + raw_colors[8] = util.lighten_color(cols[0], 0.20) + raw_colors[15] = raw_colors[7] + + return raw_colors + + +def get(img, light=False): + """Get colorscheme.""" + cols = gen_colors(img) + return adjust(cols, light)