General: Fix all syntax errors

This commit is contained in:
Dylan Araps 2017-06-17 11:14:32 +10:00
parent f08b93a77d
commit 429e3c9f10

123
wal.py
View File

@ -1,85 +1,124 @@
#!/usr/bin/env python """
# wal - Generate and change colorschemes on the fly.
# wal - Generate and change colorschemes on the fly. Created by Dylan Araps
# """
# Created by Dylan Araps
import argparse import argparse
import os
import pathlib
import subprocess
import re import re
from pathlib import Path import subprocess
import random
import os
from os.path import expanduser from os.path import expanduser
import pathlib
from pathlib import Path
# Internal variables. # Internal variables.
cache_dir = expanduser("~") + "/.cache/wal" CACHE_DIR = expanduser("~") + "/.cache/wal"
color_count = 16 COLOR_COUNT = 16
os = os.uname OS = os.uname
def get_args(): def get_args():
parser = argparse.ArgumentParser(description='wal - Generate colorschemes on the fly') """Get the script arguments."""
description = "wal - Generate colorschemes on the fly"
arg = argparse.ArgumentParser(description=description)
parser.add_argument('-a', help='Set terminal background transparency. *Only works in URxvt*', metavar='0-100', type=int) # Add the args.
parser.add_argument('-c', help='Delete all cached colorschemes.', action='store_true') arg.add_argument('-a', metavar='0-100', type=int,
parser.add_argument('-f', help='Load colors directly from a colorscheme file.', metavar='"/path/to/colors"') help='Set terminal background transparency. \
parser.add_argument('-i', help='Which image or directory to use.', metavar='"/path/to/img.jpg"') *Only works in URxvt*')
parser.add_argument('-n', help='Skip setting the wallpaper.', action='store_true')
parser.add_argument('-o', help='External script to run after "wal".', metavar='script_name')
parser.add_argument('-q', help='Quiet mode, don\'t print anything.', action='store_true')
parser.add_argument('-r', help='Reload current colorscheme.', action='store_true')
parser.add_argument('-t', help='Fix artifacts in VTE Terminals. (Termite, xfce4-terminal)', action='store_true')
parser.add_argument('-x', help='Use extended 16-color palette.', action='store_true')
return parser.parse_args() arg.add_argument('-c', action='store_true',
help='Delete all cached colorschemes.')
arg.add_argument('-f', metavar='"/path/to/colors"',
help='Load colors directly from a colorscheme file.')
arg.add_argument('-i', metavar='"/path/to/img.jpg"', required=True,
help='Which image or directory to use.')
arg.add_argument('-n', action='store_true',
help='Skip setting the wallpaper.')
arg.add_argument('-o', metavar='script_name',
help='External script to run after "wal".')
arg.add_argument('-q', action='store_true',
help='Quiet mode, don\'t print anything.')
arg.add_argument('-r', action='store_true',
help='Reload current colorscheme.')
arg.add_argument('-t', action='store_true',
help='Fix artifacts in VTE Terminals. \
(Termite, xfce4-terminal)')
arg.add_argument('-x', action='store_true',
help='Use extended 16-color palette.')
return arg.parse_args()
def get_colors(img): def get_image(img):
"""Validate image input."""
image = Path(img) image = Path(img)
if image.is_file(): if image.is_file():
return image
elif image.is_dir():
rand = random.choice(os.listdir(image))
rand_img = Path(str(image) + "/" + rand)
if rand_img.is_file():
return rand_img
def get_colors(img):
"""Generate a colorscheme using imagemagick."""
colors = [] colors = []
# Create colorscheme dir. # Create colorscheme dir.
pathlib.Path(cache_dir + "/schemes").mkdir(parents=True, exist_ok=True) pathlib.Path(CACHE_DIR + "/schemes").mkdir(parents=True, exist_ok=True)
cache_file = cache_dir + "/schemes/" + img.replace('/', '_')
# Cache file.
cache_file = CACHE_DIR + "/schemes/" + img.replace('/', '_')
# Cache the wallpaper name. # Cache the wallpaper name.
wal = open(cache_dir + "/wal", 'w') wal = open(CACHE_DIR + "/wal", 'w')
wal.write(img) wal.write(img + "\n")
wal.close() wal.close()
# Long-ass imagemagick command. # Long-ass imagemagick command.
magic = subprocess.Popen(["convert", img, "+dither", "-colors", magic = subprocess.Popen(["convert", img, "+dither", "-colors",
str(color_count), "-unique-colors", "txt:-"], str(COLOR_COUNT), "-unique-colors", "txt:-"],
stdout=subprocess.PIPE,stderr=subprocess.PIPE) stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
# Create a list of hex colors. # Create a list of hex colors.
for color in magic.stdout: for color in magic.stdout:
print(color) hex_color = re.search('#.{6}', str(color))
hex = re.search('#.{6}', str(color))
if hex: if hex_color:
colors.append(hex.group(0)) colors.append(hex_color.group(0))
# Remove the first element, which isn't a color.
# Remove the first element which isn't a color.
del colors[0] del colors[0]
# Cache the colorscheme. # Cache the colorscheme.
scheme = open(cache_file, 'w') scheme = open(cache_file, 'w')
for color in colors: for color in colors:
scheme.write(color + "\n") scheme.write(color + "\n")
scheme.close() scheme.close()
def main(): def main():
"""Main script function."""
args = get_args() args = get_args()
get_colors(args.i) image = str(get_image(args.i))
get_colors(image)
return 0 return 0