mirror of
https://github.com/dylanaraps/pywal.git
synced 2024-11-29 11:24:03 +01:00
Merge pull request #42 from dylanaraps/wallpaper
export: Add wallpaper to export files.
This commit is contained in:
commit
a6f99791ce
@ -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()
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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};
|
||||
|
@ -1,4 +1,6 @@
|
||||
{{
|
||||
"wallpaper": "{wallpaper}",
|
||||
|
||||
"special": {{
|
||||
"background": "{background}",
|
||||
"foreground": "{foreground}",
|
||||
|
@ -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};
|
||||
|
@ -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}'
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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__":
|
||||
|
@ -1,26 +1,27 @@
|
||||
{
|
||||
"special": {
|
||||
"background":"#3A5130",
|
||||
"foreground":"#FAF9F5",
|
||||
"cursor":"#FAF9F5"
|
||||
},
|
||||
"wallpaper": "5.png",
|
||||
|
||||
"special": {
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
@ -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__":
|
||||
|
@ -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."""
|
||||
|
Loading…
Reference in New Issue
Block a user