tt/scripts/themegen.py
Aetnaeus 955d28a8bd v0.3.0
- Added support for custom word lists (`-words).
 - `-theme` now accepts a path.
 - Added `~/.tt/themes` and `~/.tt/words`.
 - Scrapped ~/.ttrc in favour of aliases/flags.
 - Included more default word lists. (`-list words`)
2021-01-04 02:08:31 -05:00

40 lines
1.1 KiB
Python

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')