First commit

This commit is contained in:
thematdev 2022-05-03 16:44:47 +03:00
parent aa4e404868
commit 3538134a50
2 changed files with 59 additions and 1 deletions

View File

@ -1,3 +1,7 @@
# konsole-scheme-migration
Migrate Konsole colorscheme to Kitty format
Migrate Konsole colorscheme to Kitty format
# Usage
Run script and enter your filescheme file(must end in `.colorscheme`)
Imported theme will be placed in `scheme.conf`

54
scheme_migration.py Normal file
View File

@ -0,0 +1,54 @@
import os
import itertools
def get_valid_filename(question, extension = ''):
filename = input(question)
filename = os.path.expanduser(filename)
if not (filename.endswith(extension) and os.path.exists(filename)):
print('Please, enter valid filename')
return get_valid_filename(question, extension)
return filename
def parse_color_from_integers(a, b, c):
return f'#{str(hex(a))[2:]}{str(hex(b))[2:]}{str(hex(c))[2:]}'
def parse_color_from_section(cell):
# Parsing string format Color=R,G,B
ints = cell.split(',')
ints[0] = ints[0][6:]
return parse_color_from_integers(*map(int, ints))
def main():
f = open(get_valid_filename('Enter path to Konsole filescheme: ', '.colorscheme'), 'r')
data = [line.strip() for line in f.readlines()]
sections = [list(y) for x, y in itertools.groupby(data, lambda z: z == '') if not x]
out = open('scheme.conf', 'w')
for section in sections:
desc = section[0][1:-1]
out.write(f'# importing {desc}\n')
if desc == 'Background':
out.write(f'background {parse_color_from_section(section[1])}\n')
elif desc == 'Foreground':
out.write(f'foreground {parse_color_from_section(section[1])}\n')
elif desc.startswith('Color'):
mod = 0
if desc.endswith('Intense'):
mod = 1
if desc.endswith('Faint'):
mod = 2
color = int(desc[5])
out.write(f'color{color + 8 * mod} {parse_color_from_section(section[1])}\n')
out.close()
f.close()
if __name__ == '__main__':
main()