import os import json # Generates themes from terminal_themes.json (itself generated from some long forgotten github repo [possibly guake]). f = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'terminal_themes.json') themes = json.loads(open(f).read()) def blend(src, dest, opacity): src = src[1:] dest = dest[1:] dr, dg, db = [int(dest[i:i + 2], 16) for i in (0, 2, 4)] sr, sg, sb = [int(src[i:i + 2], 16) for i in (0, 2, 4)] sr = sr * opacity + dr * (1 - opacity) sg = sg * opacity + dg * (1 - opacity) sb = sb * opacity + db * (1 - opacity) return "#%.2x%.2x%.2x" % (int(sr), int(sg), int(sb)) for name, t in themes.items(): # Meat (alter these to taste) mapping = { "bgcol": t['background'], "fgcol": t['foreground'], "hicol": t['color7'], "hicol2": blend(t['background'], t['color9'], .3), "hicol3": t['color9'], "errcol": t['color1'], } out = open(f'themes/{name}', 'w') for k, v in mapping.items(): out.write(f'{k}: {v}\n')