diff options
Diffstat (limited to 'scripts/apply-tilix-colorscheme.py')
-rwxr-xr-x | scripts/apply-tilix-colorscheme.py | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/scripts/apply-tilix-colorscheme.py b/scripts/apply-tilix-colorscheme.py deleted file mode 100755 index 1474ab3a..00000000 --- a/scripts/apply-tilix-colorscheme.py +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/env python3 - -import collections -import logging -import shutil -import json -import sys -import os - -import yaml - -log = logging.getLogger(__name__) - -XDG_CONFIG_HOME = os.environ.get('XDG_CONFIG_HOME', os.path.expanduser('~/.config')) -ALACONF_FN = os.path.join(XDG_CONFIG_HOME, 'alacritty', 'alacritty.yml') - -Palette = collections.namedtuple('Pallete', ['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white']) - - -class AttrDict(dict): - """ - >>> m = AttrDict(omg=True, whoa='yes') - """ - - def __init__(self, *args, **kwargs): - super(AttrDict, self).__init__(*args, **kwargs) - self.__dict__ = self - - -def slurp_yaml(fn): - with open(fn, 'r') as fh: - # JSON is a subset of YAML. - contents = yaml.load(fh) - return contents - - -def fixup_hex_color(*args): - for arg in args: - val = '0x%s' % arg.strip('#') - yield val - - -def convert(tilix_scheme): - j = AttrDict(tilix_scheme) - palette = list(fixup_hex_color(*j.palette)) - - pal_normal = Palette(*palette[:8]) - pal_bold = Palette(*palette[8:]) - - colors = { - 'primary': dict(zip( - ['background', 'foreground'], - fixup_hex_color(j['background-color'], j['foreground-color']), - )), - 'cursor': dict(zip( - ['text', 'cursor'], - fixup_hex_color(j['cursor-background-color'], j['cursor-foreground-color']), - )), - 'normal': dict(pal_normal._asdict()), - 'bright': dict(pal_bold._asdict()), - } - - return colors - - -def patch_alaconf_colors(colors, alaconf_fn=ALACONF_FN): - with open(alaconf_fn, 'r') as fh: - ac_raw = fh.read() - - # Write config file taking care to not remove delicious comments. - # Sure, it's janky, but less so than losing comments. - skipping = False - lines = [] - for line in ac_raw.splitlines(): - if skipping: - if line and line[0].isalpha(): - skipping = False - - elif line.startswith('colors:'): - skipping = True - - if not skipping: - if not line and lines and not lines[-1]: - continue - lines.append(line) - - temp_fn = '%s.tmp' % alaconf_fn - backup_fn = '%s.bak' % alaconf_fn - - with open(temp_fn, 'w') as fh: - fh.write('\n'.join(lines)) - fh.write('\n') - yaml.safe_dump(dict(colors=colors), fh) - - shutil.copyfile(alaconf_fn, backup_fn) - os.rename(temp_fn, alaconf_fn) - - -def main(argv=sys.argv): - if len(argv) != 2: - print("Usage: %s TILIX_SCHEME_JSON_FILE" % sys.executable, file=sys.stderr) - sys.exit(1) - - fn = argv[1] - - tilix_scheme = slurp_yaml(fn) - colors = convert(tilix_scheme) - patch_alaconf_colors(colors) - - -if __name__ == '__main__': - main() |