summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wal.py46
1 files changed, 28 insertions, 18 deletions
diff --git a/wal.py b/wal.py
index 8dc744f..724168f 100644
--- a/wal.py
+++ b/wal.py
@@ -76,21 +76,10 @@ def get_image(img):
return rand_img
-def get_colors(img):
- """Generate a colorscheme using imagemagick."""
+def gen_colors(img):
+ """Generate a color palette using imagemagick."""
colors = []
- # Create colorscheme dir.
- pathlib.Path(CACHE_DIR + "/schemes").mkdir(parents=True, exist_ok=True)
-
- # Cache file.
- cache_file = CACHE_DIR + "/schemes/" + img.replace('/', '_')
-
- # Cache the wallpaper name.
- wal = open(CACHE_DIR + "/wal", 'w')
- wal.write(img + "\n")
- wal.close()
-
# Long-ass imagemagick command.
magic = subprocess.Popen(["convert", img, "+dither", "-colors",
str(COLOR_COUNT), "-unique-colors", "txt:-"],
@@ -107,17 +96,38 @@ def get_colors(img):
# Remove the first element, which isn't a color.
del colors[0]
- # Cache the colorscheme.
- scheme = open(cache_file, 'w')
- for color in colors:
- scheme.write(color + "\n")
- scheme.close()
+ return colors
+
+
+def get_colors(img):
+ """Generate a colorscheme using imagemagick."""
+ # Cache file.
+ cache_file = Path(CACHE_DIR + "/schemes/" + img.replace('/', '_'))
+
+ if not cache_file.is_file():
+ # Cache the wallpaper name.
+ wal = open(CACHE_DIR + "/wal", 'w')
+ wal.write(img + "\n")
+ wal.close()
+
+ # Generate the colors.
+ colors = gen_colors(img)
+
+ # Cache the colorscheme.
+ scheme = open(cache_file, 'w')
+ for color in colors:
+ scheme.write(color + "\n")
+ scheme.close()
def main():
"""Main script function."""
args = get_args()
image = str(get_image(args.i))
+
+ # Create colorscheme dir.
+ pathlib.Path(CACHE_DIR + "/schemes").mkdir(parents=True, exist_ok=True)
+
get_colors(image)
return 0