diff options
| author | Dylan Araps <dylan.araps@gmail.com> | 2017-07-10 10:48:01 +1000 |
|---|---|---|
| committer | Dylan Araps <dylan.araps@gmail.com> | 2017-07-10 10:48:01 +1000 |
| commit | 209196ba8fd30f4e5f48bcb21e67f55a607b5242 (patch) | |
| tree | aafb43fd515291c9e94e111afe25e469bf4314c0 | |
| parent | bfae735b885e231cb18fe74a4d088e369c4b1b5c (diff) | |
| parent | a6f99791ce79f0eed40396e8f3462413ce66554c (diff) | |
Merge branch 'master' of github.com:dylanaraps/wal.py
| -rw-r--r-- | pywal/__main__.py | 9 | ||||
| -rw-r--r-- | pywal/export.py | 4 | ||||
| -rw-r--r-- | pywal/magic.py | 12 | ||||
| -rw-r--r-- | pywal/templates/colors.css | 5 | ||||
| -rw-r--r-- | pywal/templates/colors.json | 2 | ||||
| -rw-r--r-- | pywal/templates/colors.scss | 5 | ||||
| -rw-r--r-- | pywal/templates/colors.sh | 5 | ||||
| -rw-r--r-- | pywal/util.py | 5 | ||||
| -rw-r--r-- | pywal/wallpaper.py | 3 | ||||
| -rwxr-xr-x | tests/test_export.py | 6 | ||||
| -rw-r--r-- | tests/test_files/test_file.json | 41 | ||||
| -rwxr-xr-x | tests/test_sequences.py | 4 | ||||
| -rwxr-xr-x | tests/test_util.py | 11 |
13 files changed, 73 insertions, 39 deletions
diff --git a/pywal/__main__.py b/pywal/__main__.py index ff86b00..cdd5001 100644 --- a/pywal/__main__.py +++ b/pywal/__main__.py @@ -89,13 +89,8 @@ def process_args(args): # -i if args.i: image_file = image.get_image(args.i) - - # Create a list of hex colors. colors_plain = magic.get_colors(image_file, args.q) - if not args.n: - wallpaper.set_wallpaper(image_file) - # -f elif args.f: colors_plain = util.read_file_json(args.f) @@ -103,6 +98,10 @@ def process_args(args): # -i or -f if args.i or args.f: sequences.send_sequences(colors_plain, args.t) + + if not args.n: + wallpaper.set_wallpaper(colors_plain["wallpaper"]) + export.export_all_templates(colors_plain) reload.reload_env() diff --git a/pywal/export.py b/pywal/export.py index 5e7f2e6..9eea198 100644 --- a/pywal/export.py +++ b/pywal/export.py @@ -35,7 +35,9 @@ def export_all_templates(colors, template_dir=None, output_dir=CACHE_DIR): # Merge all colors (specials and normals) into one dict so we can access # their values simpler. - all_colors = {**colors["special"], **colors["colors"]} + all_colors = {"wallpaper": colors["wallpaper"], + **colors["special"], + **colors["colors"]} # Turn all those colors into util.Color instances for accessing the # .hex and .rgb formats diff --git a/pywal/magic.py b/pywal/magic.py index 3af10ce..0cc868a 100644 --- a/pywal/magic.py +++ b/pywal/magic.py @@ -75,7 +75,7 @@ def get_colors(img, quiet): # Generate the colors. colors = gen_colors(img) - colors = sort_colors(colors) + colors = sort_colors(img, colors) # Cache the colorscheme. util.save_file_json(colors, cache_file) @@ -87,27 +87,29 @@ def get_colors(img, quiet): return colors -def sort_colors(colors): +def sort_colors(img, colors): """Sort the generated colors and store them in a dict that we will later save in json format.""" raw_colors = colors[:1] + colors[9:] + colors[8:] + # Wallpaper. + colors = {"wallpaper": img} + # Special colors. colors_special = {} colors_special.update({"background": raw_colors[0]}) colors_special.update({"foreground": raw_colors[15]}) colors_special.update({"cursor": raw_colors[15]}) - # Colors 0-15 + # Colors 0-15. colors_hex = {} [colors_hex.update({f"color{index}": color}) # pylint: disable=W0106 for index, color in enumerate(raw_colors)] - # Color 8 + # Color 8. colors_hex["color8"] = util.set_grey(raw_colors) # Add the colors to a dict. - colors = {} colors["special"] = colors_special colors["colors"] = colors_hex diff --git a/pywal/templates/colors.css b/pywal/templates/colors.css index 04c2aa9..11e00d3 100644 --- a/pywal/templates/colors.css +++ b/pywal/templates/colors.css @@ -1,9 +1,14 @@ /* CSS variables Generated by 'wal' */ :root {{ + --wallpaper: "{wallpaper}"; + + /* Special */ --background: {background}; --foreground: {foreground}; --cursor: {cursor}; + + /* Colors */ --color0: {color0}; --color1: {color1}; --color2: {color2}; diff --git a/pywal/templates/colors.json b/pywal/templates/colors.json index fdd9828..5c94bc4 100644 --- a/pywal/templates/colors.json +++ b/pywal/templates/colors.json @@ -1,4 +1,6 @@ {{ + "wallpaper": "{wallpaper}", + "special": {{ "background": "{background}", "foreground": "{foreground}", diff --git a/pywal/templates/colors.scss b/pywal/templates/colors.scss index 1a2e183..001be1f 100644 --- a/pywal/templates/colors.scss +++ b/pywal/templates/colors.scss @@ -1,8 +1,13 @@ // SCSS Variables // Generated by 'wal' +$wallpaper: "{wallpaper}"; + +// Special $background: {background}; $foreground: {foreground}; $cursor: {cursor}; + +// Colors $color0: {color0}; $color1: {color1}; $color2: {color2}; diff --git a/pywal/templates/colors.sh b/pywal/templates/colors.sh index 607d19e..19b31c7 100644 --- a/pywal/templates/colors.sh +++ b/pywal/templates/colors.sh @@ -1,8 +1,13 @@ # Shell variables # Generated by 'wal' +wallpaper='{wallpaper}' + +# Special background='{background}' foreground='{foreground}' cursor='{cursor}' + +# Colors color0='{color0}' color1='{color1}' color2='{color2}' diff --git a/pywal/util.py b/pywal/util.py index 2796d8e..6c5b420 100644 --- a/pywal/util.py +++ b/pywal/util.py @@ -54,6 +54,11 @@ def read_file_json(input_file): """Read data from a json file.""" with open(input_file) as json_file: data = json.load(json_file) + + # If wallpaper is unset, set it to "None" + if "wallpaper" not in data: + data["wallpaper"] = "None" + return data diff --git a/pywal/wallpaper.py b/pywal/wallpaper.py index 59f1aeb..5e524a3 100644 --- a/pywal/wallpaper.py +++ b/pywal/wallpaper.py @@ -82,6 +82,9 @@ def set_desktop_wallpaper(desktop, img): def set_wallpaper(img): """Set the wallpaper.""" + if not os.path.isfile(img): + return + desktop = get_desktop_env() if desktop: diff --git a/tests/test_export.py b/tests/test_export.py index 7204f48..167d3ed 100755 --- a/tests/test_export.py +++ b/tests/test_export.py @@ -27,9 +27,9 @@ class TestExportColors(unittest.TestCase): self.assertTrue(result) content = pathlib.Path("/tmp/test_template").read_text() - self.assertEqual(content, '\n'.join(["test1 #3A5130", - "test2 #3A5130", - "test3 58,81,48", ""])) + self.assertEqual(content, '\n'.join(["test1 #1F211E", + "test2 #1F211E", + "test3 31,33,30", ""])) if __name__ == "__main__": diff --git a/tests/test_files/test_file.json b/tests/test_files/test_file.json index b92c84e..c555eda 100644 --- a/tests/test_files/test_file.json +++ b/tests/test_files/test_file.json @@ -1,26 +1,27 @@ { + "wallpaper": "5.png", + "special": { - "background":"#3A5130", - "foreground":"#FAF9F5", - "cursor":"#FAF9F5" + "background": "#1F211E", + "foreground": "#F5F1F4", + "cursor": "#F5F1F4" }, - "colors": { - "color0":"#3A5130", - "color1":"#E3A19D", - "color2":"#E1CEAE", - "color3":"#D6DDCC", - "color4":"#F1D2CB", - "color5":"#F5E9D6", - "color6":"#F9F0E5", - "color7":"#FAF9F5", - "color8":"#999999", - "color9":"#E3A19D", - "color10":"#E1CEAE", - "color11":"#D6DDCC", - "color12":"#F1D2CB", - "color13":"#F5E9D6", - "color14":"#F9F0E5", - "color15":"#FAF9F5" + "color0": "#1F211E", + "color1": "#4B7A85", + "color2": "#CC6A93", + "color3": "#5C9894", + "color4": "#A0A89B", + "color5": "#D1B9A9", + "color6": "#E3D6D8", + "color7": "#F5F1F4", + "color8": "#666666", + "color9": "#4B7A85", + "color10": "#CC6A93", + "color11": "#5C9894", + "color12": "#A0A89B", + "color13": "#D1B9A9", + "color14": "#E3D6D8", + "color15": "#F5F1F4" } } diff --git a/tests/test_sequences.py b/tests/test_sequences.py index f4cbb36..a1ea10c 100755 --- a/tests/test_sequences.py +++ b/tests/test_sequences.py @@ -15,12 +15,12 @@ class Testsequences(unittest.TestCase): def test_set_special(self): """> Create special escape sequence.""" result = sequences.set_special(11, COLORS["special"]["background"]) - self.assertEqual(result, "\x1b]11;#3A5130\x07") + self.assertEqual(result, "\033]11;#1F211E\007") def test_set_color(self): """> Create color escape sequence.""" result = sequences.set_color(11, COLORS["colors"]["color0"]) - self.assertEqual(result, "\033]4;11;#3A5130\007") + self.assertEqual(result, "\033]4;11;#1F211E\007") if __name__ == "__main__": diff --git a/tests/test_util.py b/tests/test_util.py index 9cb908a..841c242 100755 --- a/tests/test_util.py +++ b/tests/test_util.py @@ -16,7 +16,7 @@ class TestUtil(unittest.TestCase): """> Get grey color based on brightness of color0""" colors = [list(COLORS["colors"].values())] result = util.set_grey(colors[0]) - self.assertEqual(result, "#999999") + self.assertEqual(result, "#666666") def test_read_file(self): """> Read colors from a file.""" @@ -26,12 +26,17 @@ class TestUtil(unittest.TestCase): def test_read_file_start(self): """> Read colors from a file.""" result = util.read_file_json("tests/test_files/test_file.json") - self.assertEqual(result["colors"]["color0"], "#3A5130") + self.assertEqual(result["colors"]["color0"], "#1F211E") def test_read_file_end(self): """> Read colors from a file.""" result = util.read_file_json("tests/test_files/test_file.json") - self.assertEqual(result["colors"]["color15"], "#FAF9F5") + self.assertEqual(result["colors"]["color15"], "#F5F1F4") + + def test_read_wallpaper(self): + """> Read wallpaper from json file.""" + result = util.read_file_json("tests/test_files/test_file.json") + self.assertEqual(result["wallpaper"], "5.png") def test_save_file(self): """> Save colors to a file.""" |
