macro_optimizer: get rid of PRINTABLE dict, move into keycodes

main
Ilya Zhuravlev 2020-12-25 12:55:14 -05:00
parent 95a8f8d107
commit 464228cb4b
2 changed files with 53 additions and 93 deletions

View File

@ -6,7 +6,7 @@ class Keycode:
masked_keycodes = set()
def __init__(self, code, qmk_id, label, tooltip=None, masked=False):
def __init__(self, code, qmk_id, label, tooltip=None, masked=False, printable=None):
self.code = code
self.qmk_id = qmk_id
self.label = label
@ -14,6 +14,9 @@ class Keycode:
# whether this keycode requires another sub-keycode
self.masked = masked
# if this is printable keycode, what character does it normally output (i.e. non-shifted state)
self.printable = printable
if masked:
self.masked_keycodes.add(code)
@ -26,58 +29,58 @@ KEYCODES_SPECIAL = [
]
KEYCODES_BASIC = [
K(0x04, "KC_A", "A"),
K(0x05, "KC_B", "B"),
K(0x06, "KC_C", "C"),
K(0x07, "KC_D", "D"),
K(0x08, "KC_E", "E"),
K(0x09, "KC_F", "F"),
K(0x0A, "KC_G", "G"),
K(0x0B, "KC_H", "H"),
K(0x0C, "KC_I", "I"),
K(0x0D, "KC_J", "J"),
K(0x0E, "KC_K", "K"),
K(0x0F, "KC_L", "L"),
K(0x10, "KC_M", "M"),
K(0x11, "KC_N", "N"),
K(0x12, "KC_O", "O"),
K(0x13, "KC_P", "P"),
K(0x14, "KC_Q", "Q"),
K(0x15, "KC_R", "R"),
K(0x16, "KC_S", "S"),
K(0x17, "KC_T", "T"),
K(0x18, "KC_U", "U"),
K(0x19, "KC_V", "V"),
K(0x1A, "KC_W", "W"),
K(0x1B, "KC_X", "X"),
K(0x1C, "KC_Y", "Y"),
K(0x1D, "KC_Z", "Z"),
K(0x1E, "KC_1", "!\n1"),
K(0x1F, "KC_2", "@\n2"),
K(0x20, "KC_3", "#\n3"),
K(0x21, "KC_4", "$\n4"),
K(0x22, "KC_5", "%\n5"),
K(0x23, "KC_6", "^\n6"),
K(0x24, "KC_7", "&\n7"),
K(0x25, "KC_8", "*\n8"),
K(0x26, "KC_9", "(\n9"),
K(0x27, "KC_0", ")\n0"),
K(0x04, "KC_A", "A", printable="a"),
K(0x05, "KC_B", "B", printable="b"),
K(0x06, "KC_C", "C", printable="c"),
K(0x07, "KC_D", "D", printable="d"),
K(0x08, "KC_E", "E", printable="e"),
K(0x09, "KC_F", "F", printable="f"),
K(0x0A, "KC_G", "G", printable="g"),
K(0x0B, "KC_H", "H", printable="h"),
K(0x0C, "KC_I", "I", printable="i"),
K(0x0D, "KC_J", "J", printable="j"),
K(0x0E, "KC_K", "K", printable="k"),
K(0x0F, "KC_L", "L", printable="l"),
K(0x10, "KC_M", "M", printable="m"),
K(0x11, "KC_N", "N", printable="n"),
K(0x12, "KC_O", "O", printable="o"),
K(0x13, "KC_P", "P", printable="p"),
K(0x14, "KC_Q", "Q", printable="q"),
K(0x15, "KC_R", "R", printable="r"),
K(0x16, "KC_S", "S", printable="s"),
K(0x17, "KC_T", "T", printable="t"),
K(0x18, "KC_U", "U", printable="u"),
K(0x19, "KC_V", "V", printable="v"),
K(0x1A, "KC_W", "W", printable="w"),
K(0x1B, "KC_X", "X", printable="x"),
K(0x1C, "KC_Y", "Y", printable="y"),
K(0x1D, "KC_Z", "Z", printable="z"),
K(0x1E, "KC_1", "!\n1", printable="1"),
K(0x1F, "KC_2", "@\n2", printable="2"),
K(0x20, "KC_3", "#\n3", printable="3"),
K(0x21, "KC_4", "$\n4", printable="4"),
K(0x22, "KC_5", "%\n5", printable="5"),
K(0x23, "KC_6", "^\n6", printable="6"),
K(0x24, "KC_7", "&\n7", printable="7"),
K(0x25, "KC_8", "*\n8", printable="8"),
K(0x26, "KC_9", "(\n9", printable="9"),
K(0x27, "KC_0", ")\n0", printable="0"),
K(0x28, "KC_ENTER", "Enter"),
K(0x29, "KC_ESCAPE", "Esc"),
K(0x2A, "KC_BSPACE", "Bksp"),
K(0x2B, "KC_TAB", "Tab"),
K(0x2C, "KC_SPACE", "Space"),
K(0x2D, "KC_MINUS", "_\n-"),
K(0x2E, "KC_EQUAL", "+\n="),
K(0x2F, "KC_LBRACKET", "{\n["),
K(0x30, "KC_RBRACKET", "}\n]"),
K(0x31, "KC_BSLASH", "|\n\\"),
K(0x33, "KC_SCOLON", ":\n;"),
K(0x34, "KC_QUOTE", "\"\n'"),
K(0x35, "KC_GRAVE", "~\n`"),
K(0x36, "KC_COMMA", "<\n,"),
K(0x37, "KC_DOT", ">\n."),
K(0x38, "KC_SLASH", "?\n/"),
K(0x2D, "KC_MINUS", "_\n-", printable="-"),
K(0x2E, "KC_EQUAL", "+\n=", printable="="),
K(0x2F, "KC_LBRACKET", "{\n[", printable="["),
K(0x30, "KC_RBRACKET", "}\n]", printable="]"),
K(0x31, "KC_BSLASH", "|\n\\", printable="\\"),
K(0x33, "KC_SCOLON", ":\n;", printable=";"),
K(0x34, "KC_QUOTE", "\"\n'", printable="'"),
K(0x35, "KC_GRAVE", "~\n`", printable="`"),
K(0x36, "KC_COMMA", "<\n,", printable=","),
K(0x37, "KC_DOT", ">\n.", printable="."),
K(0x38, "KC_SLASH", "?\n/", printable="/"),
K(0x39, "KC_CAPSLOCK", "Caps\nLock"),
K(0x3A, "KC_F1", "F1"),
K(0x3B, "KC_F2", "F2"),

View File

@ -29,55 +29,12 @@ def replace_with_tap(sequence):
return out
PRINTABLE = {
"KC_1": "1", "KC_2": "2", "KC_3": "3", "KC_4": "4", "KC_5": "5", "KC_6": "6", "KC_7": "7",
"KC_8": "8", "KC_9": "9", "KC_0": "0",
"KC_MINUS": "-",
"KC_EQUAL": "=",
"KC_Q": "q",
"KC_W": "w",
"KC_E": "e",
"KC_R": "r",
"KC_T": "t",
"KC_Y": "y",
"KC_U": "u",
"KC_I": "i",
"KC_O": "o",
"KC_P": "p",
"KC_LBRACKET": "[",
"KC_RBRACKET": "]",
"KC_A": "a",
"KC_S": "s",
"KC_D": "d",
"KC_F": "f",
"KC_G": "g",
"KC_H": "h",
"KC_J": "j",
"KC_K": "k",
"KC_L": "l",
"KC_SCOLON": ";",
"KC_QUOTE": "'",
"KC_GRAVE": "`",
"KC_BSLASH": "\\",
"KC_Z": "z",
"KC_X": "x",
"KC_C": "c",
"KC_V": "v",
"KC_B": "b",
"KC_N": "n",
"KC_M": "m",
"KC_COMMA": ",",
"KC_DOT": ".",
"KC_SLASH": "/",
}
def is_printable_tap(k):
return isinstance(k, KeyTap) and k.keycode.qmk_id in PRINTABLE
return isinstance(k, KeyTap) and k.keycode.printable
def get_printable_char(k):
return PRINTABLE[k.keycode.qmk_id]
return k.keycode.printable
def replace_with_string(sequence):