from pathlib import Path import json import math class Keymap: def __init__(self): self.keys = dict() pass def load_from_file(self, path = ''): if path == '': path = Path.home() / '.config/openrazer_scripter/keymap.json' with open(path,'r') as keymap_file: self.keys = json.load(keymap_file) def set_keys(self, keys): self.keys = keys def get_row_column(self, index): row = math.floor(index / 22) column = index % 22 return (row, column) def get_location(self, key): if key in self.keys.keys(): value = self.keys[key] return self.get_row_column(value) def write_keymap_file(self): keymap_json = json.dumps(self.keys) path = Path.home() / '.config/openrazer_scripter/keymap.json' Path(path.parent).mkdir(parents=True, exist_ok=True) with open(path,'w') as keymap_file: keymap_file.write(keymap_json)