
- 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`)
40 lines
1.1 KiB
Python
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')
|