From 5a1158f898f6ffb1881b96e38133ba12fdbf1aea Mon Sep 17 00:00:00 2001 From: Fierelier Date: Thu, 22 Aug 2019 22:40:12 +0200 Subject: [PATCH] Added script for recoloring Chicago95 (early) --- Extras/recolor.py | 86 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100755 Extras/recolor.py diff --git a/Extras/recolor.py b/Extras/recolor.py new file mode 100755 index 0000000..30c7dcb --- /dev/null +++ b/Extras/recolor.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python3 +#requires python-pil + +import shutil +import os +from PIL import Image +p = os.path.join + +#config +inPath = os.path.expanduser("~/.themes/Chicago95") +outPath = os.path.expanduser("~/.themes/Chicago95.custom") + +#set the colors you want to change here (this example mimics w2000): +remapColors = { + "#000080": "#0a246a", #main blue + "#dfdfdf": "#dfdfdf", #highlight + "#c0c0c0": "#d4cfc7", #main window color + "#ffffff": "#ffffff", #main window color inner + "#808080": "#808080", #shadow 1 + "#000000": "#000000" #shadow 2 +} +#config end + +def hexToRGB(h): + h = h.replace("#","") + return tuple(int(h[i:i+2], 16) for i in (0, 2, 4)) + +def rgbaToRGB(tup): + return (tup[0],tup[1],tup[2]) + +if (os.path.isdir(outPath)): + shutil.rmtree(outPath) + +os.makedirs(outPath) + +for root,dirs,files in os.walk(inPath): + for dir in dirs: + fpath = p(root,dir) + nfpath = fpath.replace(inPath,outPath) + if not (os.path.isdir(nfpath)): + os.makedirs(nfpath) + + for file in files: + fpath = p(root,file) + nfpath = fpath.replace(inPath,outPath) + lpath = fpath.replace(inPath + "/","") + ext = os.path.splitext(fpath)[1].lower() + + if (ext == ".css") or (ext == ".scss") or (ext == ".xpm") or (ext == ".svg") or (ext == ".rc")\ + or (lpath == "gtk-2.0/gtkrc") or (lpath == "xfwm4/hidpi/themerc") or (lpath == "xfwm4/themerc"): + print("editing text: " +fpath) + fileh = open(fpath,"r") + nfileh = open(nfpath,"w") + for line in fileh: + for color in remapColors: + colorV = remapColors[color] + line = line.replace(color.upper(),colorV.upper()) + line = line.replace(color.lower(),colorV.lower()) + + nfileh.write(line) + + fileh.close() + nfileh.close() + + if (ext == ".png"): + print("editing image: " +fpath) + img = Image.open(fpath) + img = img.convert("RGBA") + pixels = img.load() + width, height = img.size + for y in range(height): + for x in range(width): + pixel = pixels[x,y] + for color in remapColors: + colorV = remapColors[color] + rgbColor = hexToRGB(color) + rgbColorV = hexToRGB(colorV) + if (rgbaToRGB(pixel) == rgbColor): + pixels[x,y] = (rgbColorV[0],rgbColorV[1],rgbColorV[2],pixel[3]) + break + + img.save(nfpath) + img.close() + + if not (os.path.isfile(nfpath)): + shutil.copy(fpath,nfpath)