diff options
author | Devaev Maxim <[email protected]> | 2019-09-26 10:26:21 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2019-09-26 10:26:21 +0300 |
commit | 31c17bb583717bf99fa5990d6a4507bebe8086ce (patch) | |
tree | e774256754a658f471673943ecee59c5e3c31915 /kvmd | |
parent | cbebefc6c97c45b8e7c63c07df8c355077fed657 (diff) |
otg keymap
Diffstat (limited to 'kvmd')
-rw-r--r-- | kvmd/keymap.py | 437 | ||||
-rw-r--r-- | kvmd/keymap.py.mako | 14 |
2 files changed, 363 insertions, 88 deletions
diff --git a/kvmd/keymap.py b/kvmd/keymap.py index be32bae2..3b4a713e 100644 --- a/kvmd/keymap.py +++ b/kvmd/keymap.py @@ -32,96 +32,361 @@ class SerialKey: @dataclasses.dataclass(frozen=True) +class OtgKey: + code: int + is_modifier: bool + + [email protected](frozen=True) class Key: serial: SerialKey + otg: OtgKey # ===== KEYMAP: Dict[str, Key] = { - "AltLeft": Key(serial=SerialKey(code=79)), - "AltRight": Key(serial=SerialKey(code=83)), - "ArrowDown": Key(serial=SerialKey(code=75)), - "ArrowLeft": Key(serial=SerialKey(code=74)), - "ArrowRight": Key(serial=SerialKey(code=73)), - "ArrowUp": Key(serial=SerialKey(code=76)), - "Backquote": Key(serial=SerialKey(code=49)), - "Backslash": Key(serial=SerialKey(code=46)), - "Backspace": Key(serial=SerialKey(code=39)), - "BracketLeft": Key(serial=SerialKey(code=44)), - "BracketRight": Key(serial=SerialKey(code=45)), - "CapsLock": Key(serial=SerialKey(code=53)), - "Comma": Key(serial=SerialKey(code=50)), - "ControlLeft": Key(serial=SerialKey(code=77)), - "ControlRight": Key(serial=SerialKey(code=81)), - "Delete": Key(serial=SerialKey(code=70)), - "Digit0": Key(serial=SerialKey(code=36)), - "Digit1": Key(serial=SerialKey(code=27)), - "Digit2": Key(serial=SerialKey(code=28)), - "Digit3": Key(serial=SerialKey(code=29)), - "Digit4": Key(serial=SerialKey(code=30)), - "Digit5": Key(serial=SerialKey(code=31)), - "Digit6": Key(serial=SerialKey(code=32)), - "Digit7": Key(serial=SerialKey(code=33)), - "Digit8": Key(serial=SerialKey(code=34)), - "Digit9": Key(serial=SerialKey(code=35)), - "End": Key(serial=SerialKey(code=71)), - "Enter": Key(serial=SerialKey(code=37)), - "Equal": Key(serial=SerialKey(code=43)), - "Escape": Key(serial=SerialKey(code=38)), - "F1": Key(serial=SerialKey(code=54)), - "F10": Key(serial=SerialKey(code=63)), - "F11": Key(serial=SerialKey(code=64)), - "F12": Key(serial=SerialKey(code=65)), - "F2": Key(serial=SerialKey(code=55)), - "F3": Key(serial=SerialKey(code=56)), - "F4": Key(serial=SerialKey(code=57)), - "F5": Key(serial=SerialKey(code=58)), - "F6": Key(serial=SerialKey(code=59)), - "F7": Key(serial=SerialKey(code=60)), - "F8": Key(serial=SerialKey(code=61)), - "F9": Key(serial=SerialKey(code=62)), - "Home": Key(serial=SerialKey(code=68)), - "Insert": Key(serial=SerialKey(code=67)), - "KeyA": Key(serial=SerialKey(code=1)), - "KeyB": Key(serial=SerialKey(code=2)), - "KeyC": Key(serial=SerialKey(code=3)), - "KeyD": Key(serial=SerialKey(code=4)), - "KeyE": Key(serial=SerialKey(code=5)), - "KeyF": Key(serial=SerialKey(code=6)), - "KeyG": Key(serial=SerialKey(code=7)), - "KeyH": Key(serial=SerialKey(code=8)), - "KeyI": Key(serial=SerialKey(code=9)), - "KeyJ": Key(serial=SerialKey(code=10)), - "KeyK": Key(serial=SerialKey(code=11)), - "KeyL": Key(serial=SerialKey(code=12)), - "KeyM": Key(serial=SerialKey(code=13)), - "KeyN": Key(serial=SerialKey(code=14)), - "KeyO": Key(serial=SerialKey(code=15)), - "KeyP": Key(serial=SerialKey(code=16)), - "KeyQ": Key(serial=SerialKey(code=17)), - "KeyR": Key(serial=SerialKey(code=18)), - "KeyS": Key(serial=SerialKey(code=19)), - "KeyT": Key(serial=SerialKey(code=20)), - "KeyU": Key(serial=SerialKey(code=21)), - "KeyV": Key(serial=SerialKey(code=22)), - "KeyW": Key(serial=SerialKey(code=23)), - "KeyX": Key(serial=SerialKey(code=24)), - "KeyY": Key(serial=SerialKey(code=25)), - "KeyZ": Key(serial=SerialKey(code=26)), - "MetaLeft": Key(serial=SerialKey(code=80)), - "MetaRight": Key(serial=SerialKey(code=84)), - "Minus": Key(serial=SerialKey(code=42)), - "PageDown": Key(serial=SerialKey(code=72)), - "PageUp": Key(serial=SerialKey(code=69)), - "Pause": Key(serial=SerialKey(code=85)), - "Period": Key(serial=SerialKey(code=51)), - "PrintScreen": Key(serial=SerialKey(code=66)), - "Quote": Key(serial=SerialKey(code=48)), - "ScrollLock": Key(serial=SerialKey(code=86)), - "Semicolon": Key(serial=SerialKey(code=47)), - "ShiftLeft": Key(serial=SerialKey(code=78)), - "ShiftRight": Key(serial=SerialKey(code=82)), - "Slash": Key(serial=SerialKey(code=52)), - "Space": Key(serial=SerialKey(code=41)), - "Tab": Key(serial=SerialKey(code=40)), + "KeyA": Key( + serial=SerialKey(code=1), + otg=OtgKey(code=4, is_modifier=False), + ), + "KeyB": Key( + serial=SerialKey(code=2), + otg=OtgKey(code=5, is_modifier=False), + ), + "KeyC": Key( + serial=SerialKey(code=3), + otg=OtgKey(code=6, is_modifier=False), + ), + "KeyD": Key( + serial=SerialKey(code=4), + otg=OtgKey(code=7, is_modifier=False), + ), + "KeyE": Key( + serial=SerialKey(code=5), + otg=OtgKey(code=8, is_modifier=False), + ), + "KeyF": Key( + serial=SerialKey(code=6), + otg=OtgKey(code=9, is_modifier=False), + ), + "KeyG": Key( + serial=SerialKey(code=7), + otg=OtgKey(code=10, is_modifier=False), + ), + "KeyH": Key( + serial=SerialKey(code=8), + otg=OtgKey(code=11, is_modifier=False), + ), + "KeyI": Key( + serial=SerialKey(code=9), + otg=OtgKey(code=12, is_modifier=False), + ), + "KeyJ": Key( + serial=SerialKey(code=10), + otg=OtgKey(code=13, is_modifier=False), + ), + "KeyK": Key( + serial=SerialKey(code=11), + otg=OtgKey(code=14, is_modifier=False), + ), + "KeyL": Key( + serial=SerialKey(code=12), + otg=OtgKey(code=15, is_modifier=False), + ), + "KeyM": Key( + serial=SerialKey(code=13), + otg=OtgKey(code=16, is_modifier=False), + ), + "KeyN": Key( + serial=SerialKey(code=14), + otg=OtgKey(code=17, is_modifier=False), + ), + "KeyO": Key( + serial=SerialKey(code=15), + otg=OtgKey(code=18, is_modifier=False), + ), + "KeyP": Key( + serial=SerialKey(code=16), + otg=OtgKey(code=19, is_modifier=False), + ), + "KeyQ": Key( + serial=SerialKey(code=17), + otg=OtgKey(code=20, is_modifier=False), + ), + "KeyR": Key( + serial=SerialKey(code=18), + otg=OtgKey(code=21, is_modifier=False), + ), + "KeyS": Key( + serial=SerialKey(code=19), + otg=OtgKey(code=22, is_modifier=False), + ), + "KeyT": Key( + serial=SerialKey(code=20), + otg=OtgKey(code=23, is_modifier=False), + ), + "KeyU": Key( + serial=SerialKey(code=21), + otg=OtgKey(code=24, is_modifier=False), + ), + "KeyV": Key( + serial=SerialKey(code=22), + otg=OtgKey(code=25, is_modifier=False), + ), + "KeyW": Key( + serial=SerialKey(code=23), + otg=OtgKey(code=26, is_modifier=False), + ), + "KeyX": Key( + serial=SerialKey(code=24), + otg=OtgKey(code=27, is_modifier=False), + ), + "KeyY": Key( + serial=SerialKey(code=25), + otg=OtgKey(code=28, is_modifier=False), + ), + "KeyZ": Key( + serial=SerialKey(code=26), + otg=OtgKey(code=29, is_modifier=False), + ), + "Digit1": Key( + serial=SerialKey(code=27), + otg=OtgKey(code=30, is_modifier=False), + ), + "Digit2": Key( + serial=SerialKey(code=28), + otg=OtgKey(code=31, is_modifier=False), + ), + "Digit3": Key( + serial=SerialKey(code=29), + otg=OtgKey(code=32, is_modifier=False), + ), + "Digit4": Key( + serial=SerialKey(code=30), + otg=OtgKey(code=33, is_modifier=False), + ), + "Digit5": Key( + serial=SerialKey(code=31), + otg=OtgKey(code=34, is_modifier=False), + ), + "Digit6": Key( + serial=SerialKey(code=32), + otg=OtgKey(code=35, is_modifier=False), + ), + "Digit7": Key( + serial=SerialKey(code=33), + otg=OtgKey(code=36, is_modifier=False), + ), + "Digit8": Key( + serial=SerialKey(code=34), + otg=OtgKey(code=37, is_modifier=False), + ), + "Digit9": Key( + serial=SerialKey(code=35), + otg=OtgKey(code=38, is_modifier=False), + ), + "Digit0": Key( + serial=SerialKey(code=36), + otg=OtgKey(code=39, is_modifier=False), + ), + "Enter": Key( + serial=SerialKey(code=37), + otg=OtgKey(code=40, is_modifier=False), + ), + "Escape": Key( + serial=SerialKey(code=38), + otg=OtgKey(code=41, is_modifier=False), + ), + "Backspace": Key( + serial=SerialKey(code=39), + otg=OtgKey(code=42, is_modifier=False), + ), + "Tab": Key( + serial=SerialKey(code=40), + otg=OtgKey(code=43, is_modifier=False), + ), + "Space": Key( + serial=SerialKey(code=41), + otg=OtgKey(code=44, is_modifier=False), + ), + "Minus": Key( + serial=SerialKey(code=42), + otg=OtgKey(code=45, is_modifier=False), + ), + "Equal": Key( + serial=SerialKey(code=43), + otg=OtgKey(code=46, is_modifier=False), + ), + "BracketLeft": Key( + serial=SerialKey(code=44), + otg=OtgKey(code=47, is_modifier=False), + ), + "BracketRight": Key( + serial=SerialKey(code=45), + otg=OtgKey(code=48, is_modifier=False), + ), + "Backslash": Key( + serial=SerialKey(code=46), + otg=OtgKey(code=49, is_modifier=False), + ), + "Semicolon": Key( + serial=SerialKey(code=47), + otg=OtgKey(code=51, is_modifier=False), + ), + "Quote": Key( + serial=SerialKey(code=48), + otg=OtgKey(code=52, is_modifier=False), + ), + "Backquote": Key( + serial=SerialKey(code=49), + otg=OtgKey(code=53, is_modifier=False), + ), + "Comma": Key( + serial=SerialKey(code=50), + otg=OtgKey(code=54, is_modifier=False), + ), + "Period": Key( + serial=SerialKey(code=51), + otg=OtgKey(code=55, is_modifier=False), + ), + "Slash": Key( + serial=SerialKey(code=52), + otg=OtgKey(code=56, is_modifier=False), + ), + "CapsLock": Key( + serial=SerialKey(code=53), + otg=OtgKey(code=57, is_modifier=False), + ), + "F1": Key( + serial=SerialKey(code=54), + otg=OtgKey(code=58, is_modifier=False), + ), + "F2": Key( + serial=SerialKey(code=55), + otg=OtgKey(code=59, is_modifier=False), + ), + "F3": Key( + serial=SerialKey(code=56), + otg=OtgKey(code=60, is_modifier=False), + ), + "F4": Key( + serial=SerialKey(code=57), + otg=OtgKey(code=61, is_modifier=False), + ), + "F5": Key( + serial=SerialKey(code=58), + otg=OtgKey(code=62, is_modifier=False), + ), + "F6": Key( + serial=SerialKey(code=59), + otg=OtgKey(code=63, is_modifier=False), + ), + "F7": Key( + serial=SerialKey(code=60), + otg=OtgKey(code=64, is_modifier=False), + ), + "F8": Key( + serial=SerialKey(code=61), + otg=OtgKey(code=65, is_modifier=False), + ), + "F9": Key( + serial=SerialKey(code=62), + otg=OtgKey(code=66, is_modifier=False), + ), + "F10": Key( + serial=SerialKey(code=63), + otg=OtgKey(code=67, is_modifier=False), + ), + "F11": Key( + serial=SerialKey(code=64), + otg=OtgKey(code=68, is_modifier=False), + ), + "F12": Key( + serial=SerialKey(code=65), + otg=OtgKey(code=69, is_modifier=False), + ), + "PrintScreen": Key( + serial=SerialKey(code=66), + otg=OtgKey(code=70, is_modifier=False), + ), + "Insert": Key( + serial=SerialKey(code=67), + otg=OtgKey(code=73, is_modifier=False), + ), + "Home": Key( + serial=SerialKey(code=68), + otg=OtgKey(code=74, is_modifier=False), + ), + "PageUp": Key( + serial=SerialKey(code=69), + otg=OtgKey(code=75, is_modifier=False), + ), + "Delete": Key( + serial=SerialKey(code=70), + otg=OtgKey(code=76, is_modifier=False), + ), + "End": Key( + serial=SerialKey(code=71), + otg=OtgKey(code=77, is_modifier=False), + ), + "PageDown": Key( + serial=SerialKey(code=72), + otg=OtgKey(code=78, is_modifier=False), + ), + "ArrowRight": Key( + serial=SerialKey(code=73), + otg=OtgKey(code=79, is_modifier=False), + ), + "ArrowLeft": Key( + serial=SerialKey(code=74), + otg=OtgKey(code=80, is_modifier=False), + ), + "ArrowDown": Key( + serial=SerialKey(code=75), + otg=OtgKey(code=81, is_modifier=False), + ), + "ArrowUp": Key( + serial=SerialKey(code=76), + otg=OtgKey(code=82, is_modifier=False), + ), + "ControlLeft": Key( + serial=SerialKey(code=77), + otg=OtgKey(code=1, is_modifier=True), + ), + "ShiftLeft": Key( + serial=SerialKey(code=78), + otg=OtgKey(code=2, is_modifier=True), + ), + "AltLeft": Key( + serial=SerialKey(code=79), + otg=OtgKey(code=4, is_modifier=True), + ), + "MetaLeft": Key( + serial=SerialKey(code=80), + otg=OtgKey(code=8, is_modifier=True), + ), + "ControlRight": Key( + serial=SerialKey(code=81), + otg=OtgKey(code=16, is_modifier=True), + ), + "ShiftRight": Key( + serial=SerialKey(code=82), + otg=OtgKey(code=32, is_modifier=True), + ), + "AltRight": Key( + serial=SerialKey(code=83), + otg=OtgKey(code=64, is_modifier=True), + ), + "MetaRight": Key( + serial=SerialKey(code=84), + otg=OtgKey(code=128, is_modifier=True), + ), + "Pause": Key( + serial=SerialKey(code=85), + otg=OtgKey(code=72, is_modifier=False), + ), + "ScrollLock": Key( + serial=SerialKey(code=86), + otg=OtgKey(code=71, is_modifier=False), + ), } diff --git a/kvmd/keymap.py.mako b/kvmd/keymap.py.mako index 06b0c7d9..219cb186 100644 --- a/kvmd/keymap.py.mako +++ b/kvmd/keymap.py.mako @@ -32,13 +32,23 @@ class SerialKey: @dataclasses.dataclass(frozen=True) +class OtgKey: + code: int + is_modifier: bool + + [email protected](frozen=True) class Key: serial: SerialKey + otg: OtgKey <%! import operator %> # ===== KEYMAP: Dict[str, Key] = { -% for km in sorted(keymap, key=operator.attrgetter("web_key")): - "${km.web_key}": Key(serial=SerialKey(code=${km.serial_hid_code})), +% for km in sorted(keymap, key=operator.attrgetter("serial_code")): + "${km.web_key}": Key( + serial=SerialKey(code=${km.serial_code}), + otg=OtgKey(code=${km.otg_code}, is_modifier=${km.otg_is_modifier}), + ), % endfor } |