mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-29 00:51:53 +08:00
using evdev instead of string constants
This commit is contained in:
@@ -22,6 +22,8 @@
|
||||
|
||||
import dataclasses
|
||||
|
||||
from evdev import ecodes
|
||||
|
||||
|
||||
# =====
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
@@ -31,7 +33,7 @@ class McuKey:
|
||||
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class UsbKey:
|
||||
code: int
|
||||
code: int
|
||||
is_modifier: bool
|
||||
|
||||
|
||||
@@ -41,137 +43,252 @@ class Key:
|
||||
usb: UsbKey
|
||||
|
||||
|
||||
KEYMAP: dict[str, Key] = {
|
||||
"KeyA": Key(mcu=McuKey(code=1), usb=UsbKey(code=4, is_modifier=False)),
|
||||
"KeyB": Key(mcu=McuKey(code=2), usb=UsbKey(code=5, is_modifier=False)),
|
||||
"KeyC": Key(mcu=McuKey(code=3), usb=UsbKey(code=6, is_modifier=False)),
|
||||
"KeyD": Key(mcu=McuKey(code=4), usb=UsbKey(code=7, is_modifier=False)),
|
||||
"KeyE": Key(mcu=McuKey(code=5), usb=UsbKey(code=8, is_modifier=False)),
|
||||
"KeyF": Key(mcu=McuKey(code=6), usb=UsbKey(code=9, is_modifier=False)),
|
||||
"KeyG": Key(mcu=McuKey(code=7), usb=UsbKey(code=10, is_modifier=False)),
|
||||
"KeyH": Key(mcu=McuKey(code=8), usb=UsbKey(code=11, is_modifier=False)),
|
||||
"KeyI": Key(mcu=McuKey(code=9), usb=UsbKey(code=12, is_modifier=False)),
|
||||
"KeyJ": Key(mcu=McuKey(code=10), usb=UsbKey(code=13, is_modifier=False)),
|
||||
"KeyK": Key(mcu=McuKey(code=11), usb=UsbKey(code=14, is_modifier=False)),
|
||||
"KeyL": Key(mcu=McuKey(code=12), usb=UsbKey(code=15, is_modifier=False)),
|
||||
"KeyM": Key(mcu=McuKey(code=13), usb=UsbKey(code=16, is_modifier=False)),
|
||||
"KeyN": Key(mcu=McuKey(code=14), usb=UsbKey(code=17, is_modifier=False)),
|
||||
"KeyO": Key(mcu=McuKey(code=15), usb=UsbKey(code=18, is_modifier=False)),
|
||||
"KeyP": Key(mcu=McuKey(code=16), usb=UsbKey(code=19, is_modifier=False)),
|
||||
"KeyQ": Key(mcu=McuKey(code=17), usb=UsbKey(code=20, is_modifier=False)),
|
||||
"KeyR": Key(mcu=McuKey(code=18), usb=UsbKey(code=21, is_modifier=False)),
|
||||
"KeyS": Key(mcu=McuKey(code=19), usb=UsbKey(code=22, is_modifier=False)),
|
||||
"KeyT": Key(mcu=McuKey(code=20), usb=UsbKey(code=23, is_modifier=False)),
|
||||
"KeyU": Key(mcu=McuKey(code=21), usb=UsbKey(code=24, is_modifier=False)),
|
||||
"KeyV": Key(mcu=McuKey(code=22), usb=UsbKey(code=25, is_modifier=False)),
|
||||
"KeyW": Key(mcu=McuKey(code=23), usb=UsbKey(code=26, is_modifier=False)),
|
||||
"KeyX": Key(mcu=McuKey(code=24), usb=UsbKey(code=27, is_modifier=False)),
|
||||
"KeyY": Key(mcu=McuKey(code=25), usb=UsbKey(code=28, is_modifier=False)),
|
||||
"KeyZ": Key(mcu=McuKey(code=26), usb=UsbKey(code=29, is_modifier=False)),
|
||||
"Digit1": Key(mcu=McuKey(code=27), usb=UsbKey(code=30, is_modifier=False)),
|
||||
"Digit2": Key(mcu=McuKey(code=28), usb=UsbKey(code=31, is_modifier=False)),
|
||||
"Digit3": Key(mcu=McuKey(code=29), usb=UsbKey(code=32, is_modifier=False)),
|
||||
"Digit4": Key(mcu=McuKey(code=30), usb=UsbKey(code=33, is_modifier=False)),
|
||||
"Digit5": Key(mcu=McuKey(code=31), usb=UsbKey(code=34, is_modifier=False)),
|
||||
"Digit6": Key(mcu=McuKey(code=32), usb=UsbKey(code=35, is_modifier=False)),
|
||||
"Digit7": Key(mcu=McuKey(code=33), usb=UsbKey(code=36, is_modifier=False)),
|
||||
"Digit8": Key(mcu=McuKey(code=34), usb=UsbKey(code=37, is_modifier=False)),
|
||||
"Digit9": Key(mcu=McuKey(code=35), usb=UsbKey(code=38, is_modifier=False)),
|
||||
"Digit0": Key(mcu=McuKey(code=36), usb=UsbKey(code=39, is_modifier=False)),
|
||||
"Enter": Key(mcu=McuKey(code=37), usb=UsbKey(code=40, is_modifier=False)),
|
||||
"Escape": Key(mcu=McuKey(code=38), usb=UsbKey(code=41, is_modifier=False)),
|
||||
"Backspace": Key(mcu=McuKey(code=39), usb=UsbKey(code=42, is_modifier=False)),
|
||||
"Tab": Key(mcu=McuKey(code=40), usb=UsbKey(code=43, is_modifier=False)),
|
||||
"Space": Key(mcu=McuKey(code=41), usb=UsbKey(code=44, is_modifier=False)),
|
||||
"Minus": Key(mcu=McuKey(code=42), usb=UsbKey(code=45, is_modifier=False)),
|
||||
"Equal": Key(mcu=McuKey(code=43), usb=UsbKey(code=46, is_modifier=False)),
|
||||
"BracketLeft": Key(mcu=McuKey(code=44), usb=UsbKey(code=47, is_modifier=False)),
|
||||
"BracketRight": Key(mcu=McuKey(code=45), usb=UsbKey(code=48, is_modifier=False)),
|
||||
"Backslash": Key(mcu=McuKey(code=46), usb=UsbKey(code=49, is_modifier=False)),
|
||||
"Semicolon": Key(mcu=McuKey(code=47), usb=UsbKey(code=51, is_modifier=False)),
|
||||
"Quote": Key(mcu=McuKey(code=48), usb=UsbKey(code=52, is_modifier=False)),
|
||||
"Backquote": Key(mcu=McuKey(code=49), usb=UsbKey(code=53, is_modifier=False)),
|
||||
"Comma": Key(mcu=McuKey(code=50), usb=UsbKey(code=54, is_modifier=False)),
|
||||
"Period": Key(mcu=McuKey(code=51), usb=UsbKey(code=55, is_modifier=False)),
|
||||
"Slash": Key(mcu=McuKey(code=52), usb=UsbKey(code=56, is_modifier=False)),
|
||||
"CapsLock": Key(mcu=McuKey(code=53), usb=UsbKey(code=57, is_modifier=False)),
|
||||
"F1": Key(mcu=McuKey(code=54), usb=UsbKey(code=58, is_modifier=False)),
|
||||
"F2": Key(mcu=McuKey(code=55), usb=UsbKey(code=59, is_modifier=False)),
|
||||
"F3": Key(mcu=McuKey(code=56), usb=UsbKey(code=60, is_modifier=False)),
|
||||
"F4": Key(mcu=McuKey(code=57), usb=UsbKey(code=61, is_modifier=False)),
|
||||
"F5": Key(mcu=McuKey(code=58), usb=UsbKey(code=62, is_modifier=False)),
|
||||
"F6": Key(mcu=McuKey(code=59), usb=UsbKey(code=63, is_modifier=False)),
|
||||
"F7": Key(mcu=McuKey(code=60), usb=UsbKey(code=64, is_modifier=False)),
|
||||
"F8": Key(mcu=McuKey(code=61), usb=UsbKey(code=65, is_modifier=False)),
|
||||
"F9": Key(mcu=McuKey(code=62), usb=UsbKey(code=66, is_modifier=False)),
|
||||
"F10": Key(mcu=McuKey(code=63), usb=UsbKey(code=67, is_modifier=False)),
|
||||
"F11": Key(mcu=McuKey(code=64), usb=UsbKey(code=68, is_modifier=False)),
|
||||
"F12": Key(mcu=McuKey(code=65), usb=UsbKey(code=69, is_modifier=False)),
|
||||
"PrintScreen": Key(mcu=McuKey(code=66), usb=UsbKey(code=70, is_modifier=False)),
|
||||
"Insert": Key(mcu=McuKey(code=67), usb=UsbKey(code=73, is_modifier=False)),
|
||||
"Home": Key(mcu=McuKey(code=68), usb=UsbKey(code=74, is_modifier=False)),
|
||||
"PageUp": Key(mcu=McuKey(code=69), usb=UsbKey(code=75, is_modifier=False)),
|
||||
"Delete": Key(mcu=McuKey(code=70), usb=UsbKey(code=76, is_modifier=False)),
|
||||
"End": Key(mcu=McuKey(code=71), usb=UsbKey(code=77, is_modifier=False)),
|
||||
"PageDown": Key(mcu=McuKey(code=72), usb=UsbKey(code=78, is_modifier=False)),
|
||||
"ArrowRight": Key(mcu=McuKey(code=73), usb=UsbKey(code=79, is_modifier=False)),
|
||||
"ArrowLeft": Key(mcu=McuKey(code=74), usb=UsbKey(code=80, is_modifier=False)),
|
||||
"ArrowDown": Key(mcu=McuKey(code=75), usb=UsbKey(code=81, is_modifier=False)),
|
||||
"ArrowUp": Key(mcu=McuKey(code=76), usb=UsbKey(code=82, is_modifier=False)),
|
||||
"ControlLeft": Key(mcu=McuKey(code=77), usb=UsbKey(code=1, is_modifier=True)),
|
||||
"ShiftLeft": Key(mcu=McuKey(code=78), usb=UsbKey(code=2, is_modifier=True)),
|
||||
"AltLeft": Key(mcu=McuKey(code=79), usb=UsbKey(code=4, is_modifier=True)),
|
||||
"MetaLeft": Key(mcu=McuKey(code=80), usb=UsbKey(code=8, is_modifier=True)),
|
||||
"ControlRight": Key(mcu=McuKey(code=81), usb=UsbKey(code=16, is_modifier=True)),
|
||||
"ShiftRight": Key(mcu=McuKey(code=82), usb=UsbKey(code=32, is_modifier=True)),
|
||||
"AltRight": Key(mcu=McuKey(code=83), usb=UsbKey(code=64, is_modifier=True)),
|
||||
"MetaRight": Key(mcu=McuKey(code=84), usb=UsbKey(code=128, is_modifier=True)),
|
||||
"Pause": Key(mcu=McuKey(code=85), usb=UsbKey(code=72, is_modifier=False)),
|
||||
"ScrollLock": Key(mcu=McuKey(code=86), usb=UsbKey(code=71, is_modifier=False)),
|
||||
"NumLock": Key(mcu=McuKey(code=87), usb=UsbKey(code=83, is_modifier=False)),
|
||||
"ContextMenu": Key(mcu=McuKey(code=88), usb=UsbKey(code=101, is_modifier=False)),
|
||||
"NumpadDivide": Key(mcu=McuKey(code=89), usb=UsbKey(code=84, is_modifier=False)),
|
||||
"NumpadMultiply": Key(mcu=McuKey(code=90), usb=UsbKey(code=85, is_modifier=False)),
|
||||
"NumpadSubtract": Key(mcu=McuKey(code=91), usb=UsbKey(code=86, is_modifier=False)),
|
||||
"NumpadAdd": Key(mcu=McuKey(code=92), usb=UsbKey(code=87, is_modifier=False)),
|
||||
"NumpadEnter": Key(mcu=McuKey(code=93), usb=UsbKey(code=88, is_modifier=False)),
|
||||
"Numpad1": Key(mcu=McuKey(code=94), usb=UsbKey(code=89, is_modifier=False)),
|
||||
"Numpad2": Key(mcu=McuKey(code=95), usb=UsbKey(code=90, is_modifier=False)),
|
||||
"Numpad3": Key(mcu=McuKey(code=96), usb=UsbKey(code=91, is_modifier=False)),
|
||||
"Numpad4": Key(mcu=McuKey(code=97), usb=UsbKey(code=92, is_modifier=False)),
|
||||
"Numpad5": Key(mcu=McuKey(code=98), usb=UsbKey(code=93, is_modifier=False)),
|
||||
"Numpad6": Key(mcu=McuKey(code=99), usb=UsbKey(code=94, is_modifier=False)),
|
||||
"Numpad7": Key(mcu=McuKey(code=100), usb=UsbKey(code=95, is_modifier=False)),
|
||||
"Numpad8": Key(mcu=McuKey(code=101), usb=UsbKey(code=96, is_modifier=False)),
|
||||
"Numpad9": Key(mcu=McuKey(code=102), usb=UsbKey(code=97, is_modifier=False)),
|
||||
"Numpad0": Key(mcu=McuKey(code=103), usb=UsbKey(code=98, is_modifier=False)),
|
||||
"NumpadDecimal": Key(mcu=McuKey(code=104), usb=UsbKey(code=99, is_modifier=False)),
|
||||
"Power": Key(mcu=McuKey(code=105), usb=UsbKey(code=102, is_modifier=False)),
|
||||
"IntlBackslash": Key(mcu=McuKey(code=106), usb=UsbKey(code=100, is_modifier=False)),
|
||||
"IntlYen": Key(mcu=McuKey(code=107), usb=UsbKey(code=137, is_modifier=False)),
|
||||
"IntlRo": Key(mcu=McuKey(code=108), usb=UsbKey(code=135, is_modifier=False)),
|
||||
"KanaMode": Key(mcu=McuKey(code=109), usb=UsbKey(code=136, is_modifier=False)),
|
||||
"Convert": Key(mcu=McuKey(code=110), usb=UsbKey(code=138, is_modifier=False)),
|
||||
"NonConvert": Key(mcu=McuKey(code=111), usb=UsbKey(code=139, is_modifier=False)),
|
||||
KEYMAP: dict[int, Key] = {
|
||||
ecodes.KEY_A: Key(mcu=McuKey(code=1), usb=UsbKey(code=4, is_modifier=False)),
|
||||
ecodes.KEY_B: Key(mcu=McuKey(code=2), usb=UsbKey(code=5, is_modifier=False)),
|
||||
ecodes.KEY_C: Key(mcu=McuKey(code=3), usb=UsbKey(code=6, is_modifier=False)),
|
||||
ecodes.KEY_D: Key(mcu=McuKey(code=4), usb=UsbKey(code=7, is_modifier=False)),
|
||||
ecodes.KEY_E: Key(mcu=McuKey(code=5), usb=UsbKey(code=8, is_modifier=False)),
|
||||
ecodes.KEY_F: Key(mcu=McuKey(code=6), usb=UsbKey(code=9, is_modifier=False)),
|
||||
ecodes.KEY_G: Key(mcu=McuKey(code=7), usb=UsbKey(code=10, is_modifier=False)),
|
||||
ecodes.KEY_H: Key(mcu=McuKey(code=8), usb=UsbKey(code=11, is_modifier=False)),
|
||||
ecodes.KEY_I: Key(mcu=McuKey(code=9), usb=UsbKey(code=12, is_modifier=False)),
|
||||
ecodes.KEY_J: Key(mcu=McuKey(code=10), usb=UsbKey(code=13, is_modifier=False)),
|
||||
ecodes.KEY_K: Key(mcu=McuKey(code=11), usb=UsbKey(code=14, is_modifier=False)),
|
||||
ecodes.KEY_L: Key(mcu=McuKey(code=12), usb=UsbKey(code=15, is_modifier=False)),
|
||||
ecodes.KEY_M: Key(mcu=McuKey(code=13), usb=UsbKey(code=16, is_modifier=False)),
|
||||
ecodes.KEY_N: Key(mcu=McuKey(code=14), usb=UsbKey(code=17, is_modifier=False)),
|
||||
ecodes.KEY_O: Key(mcu=McuKey(code=15), usb=UsbKey(code=18, is_modifier=False)),
|
||||
ecodes.KEY_P: Key(mcu=McuKey(code=16), usb=UsbKey(code=19, is_modifier=False)),
|
||||
ecodes.KEY_Q: Key(mcu=McuKey(code=17), usb=UsbKey(code=20, is_modifier=False)),
|
||||
ecodes.KEY_R: Key(mcu=McuKey(code=18), usb=UsbKey(code=21, is_modifier=False)),
|
||||
ecodes.KEY_S: Key(mcu=McuKey(code=19), usb=UsbKey(code=22, is_modifier=False)),
|
||||
ecodes.KEY_T: Key(mcu=McuKey(code=20), usb=UsbKey(code=23, is_modifier=False)),
|
||||
ecodes.KEY_U: Key(mcu=McuKey(code=21), usb=UsbKey(code=24, is_modifier=False)),
|
||||
ecodes.KEY_V: Key(mcu=McuKey(code=22), usb=UsbKey(code=25, is_modifier=False)),
|
||||
ecodes.KEY_W: Key(mcu=McuKey(code=23), usb=UsbKey(code=26, is_modifier=False)),
|
||||
ecodes.KEY_X: Key(mcu=McuKey(code=24), usb=UsbKey(code=27, is_modifier=False)),
|
||||
ecodes.KEY_Y: Key(mcu=McuKey(code=25), usb=UsbKey(code=28, is_modifier=False)),
|
||||
ecodes.KEY_Z: Key(mcu=McuKey(code=26), usb=UsbKey(code=29, is_modifier=False)),
|
||||
ecodes.KEY_1: Key(mcu=McuKey(code=27), usb=UsbKey(code=30, is_modifier=False)),
|
||||
ecodes.KEY_2: Key(mcu=McuKey(code=28), usb=UsbKey(code=31, is_modifier=False)),
|
||||
ecodes.KEY_3: Key(mcu=McuKey(code=29), usb=UsbKey(code=32, is_modifier=False)),
|
||||
ecodes.KEY_4: Key(mcu=McuKey(code=30), usb=UsbKey(code=33, is_modifier=False)),
|
||||
ecodes.KEY_5: Key(mcu=McuKey(code=31), usb=UsbKey(code=34, is_modifier=False)),
|
||||
ecodes.KEY_6: Key(mcu=McuKey(code=32), usb=UsbKey(code=35, is_modifier=False)),
|
||||
ecodes.KEY_7: Key(mcu=McuKey(code=33), usb=UsbKey(code=36, is_modifier=False)),
|
||||
ecodes.KEY_8: Key(mcu=McuKey(code=34), usb=UsbKey(code=37, is_modifier=False)),
|
||||
ecodes.KEY_9: Key(mcu=McuKey(code=35), usb=UsbKey(code=38, is_modifier=False)),
|
||||
ecodes.KEY_0: Key(mcu=McuKey(code=36), usb=UsbKey(code=39, is_modifier=False)),
|
||||
ecodes.KEY_ENTER: Key(mcu=McuKey(code=37), usb=UsbKey(code=40, is_modifier=False)),
|
||||
ecodes.KEY_ESC: Key(mcu=McuKey(code=38), usb=UsbKey(code=41, is_modifier=False)),
|
||||
ecodes.KEY_BACKSPACE: Key(mcu=McuKey(code=39), usb=UsbKey(code=42, is_modifier=False)),
|
||||
ecodes.KEY_TAB: Key(mcu=McuKey(code=40), usb=UsbKey(code=43, is_modifier=False)),
|
||||
ecodes.KEY_SPACE: Key(mcu=McuKey(code=41), usb=UsbKey(code=44, is_modifier=False)),
|
||||
ecodes.KEY_MINUS: Key(mcu=McuKey(code=42), usb=UsbKey(code=45, is_modifier=False)),
|
||||
ecodes.KEY_EQUAL: Key(mcu=McuKey(code=43), usb=UsbKey(code=46, is_modifier=False)),
|
||||
ecodes.KEY_LEFTBRACE: Key(mcu=McuKey(code=44), usb=UsbKey(code=47, is_modifier=False)),
|
||||
ecodes.KEY_RIGHTBRACE: Key(mcu=McuKey(code=45), usb=UsbKey(code=48, is_modifier=False)),
|
||||
ecodes.KEY_BACKSLASH: Key(mcu=McuKey(code=46), usb=UsbKey(code=49, is_modifier=False)),
|
||||
ecodes.KEY_SEMICOLON: Key(mcu=McuKey(code=47), usb=UsbKey(code=51, is_modifier=False)),
|
||||
ecodes.KEY_APOSTROPHE: Key(mcu=McuKey(code=48), usb=UsbKey(code=52, is_modifier=False)),
|
||||
ecodes.KEY_GRAVE: Key(mcu=McuKey(code=49), usb=UsbKey(code=53, is_modifier=False)),
|
||||
ecodes.KEY_COMMA: Key(mcu=McuKey(code=50), usb=UsbKey(code=54, is_modifier=False)),
|
||||
ecodes.KEY_DOT: Key(mcu=McuKey(code=51), usb=UsbKey(code=55, is_modifier=False)),
|
||||
ecodes.KEY_SLASH: Key(mcu=McuKey(code=52), usb=UsbKey(code=56, is_modifier=False)),
|
||||
ecodes.KEY_CAPSLOCK: Key(mcu=McuKey(code=53), usb=UsbKey(code=57, is_modifier=False)),
|
||||
ecodes.KEY_F1: Key(mcu=McuKey(code=54), usb=UsbKey(code=58, is_modifier=False)),
|
||||
ecodes.KEY_F2: Key(mcu=McuKey(code=55), usb=UsbKey(code=59, is_modifier=False)),
|
||||
ecodes.KEY_F3: Key(mcu=McuKey(code=56), usb=UsbKey(code=60, is_modifier=False)),
|
||||
ecodes.KEY_F4: Key(mcu=McuKey(code=57), usb=UsbKey(code=61, is_modifier=False)),
|
||||
ecodes.KEY_F5: Key(mcu=McuKey(code=58), usb=UsbKey(code=62, is_modifier=False)),
|
||||
ecodes.KEY_F6: Key(mcu=McuKey(code=59), usb=UsbKey(code=63, is_modifier=False)),
|
||||
ecodes.KEY_F7: Key(mcu=McuKey(code=60), usb=UsbKey(code=64, is_modifier=False)),
|
||||
ecodes.KEY_F8: Key(mcu=McuKey(code=61), usb=UsbKey(code=65, is_modifier=False)),
|
||||
ecodes.KEY_F9: Key(mcu=McuKey(code=62), usb=UsbKey(code=66, is_modifier=False)),
|
||||
ecodes.KEY_F10: Key(mcu=McuKey(code=63), usb=UsbKey(code=67, is_modifier=False)),
|
||||
ecodes.KEY_F11: Key(mcu=McuKey(code=64), usb=UsbKey(code=68, is_modifier=False)),
|
||||
ecodes.KEY_F12: Key(mcu=McuKey(code=65), usb=UsbKey(code=69, is_modifier=False)),
|
||||
ecodes.KEY_SYSRQ: Key(mcu=McuKey(code=66), usb=UsbKey(code=70, is_modifier=False)),
|
||||
ecodes.KEY_INSERT: Key(mcu=McuKey(code=67), usb=UsbKey(code=73, is_modifier=False)),
|
||||
ecodes.KEY_HOME: Key(mcu=McuKey(code=68), usb=UsbKey(code=74, is_modifier=False)),
|
||||
ecodes.KEY_PAGEUP: Key(mcu=McuKey(code=69), usb=UsbKey(code=75, is_modifier=False)),
|
||||
ecodes.KEY_DELETE: Key(mcu=McuKey(code=70), usb=UsbKey(code=76, is_modifier=False)),
|
||||
ecodes.KEY_END: Key(mcu=McuKey(code=71), usb=UsbKey(code=77, is_modifier=False)),
|
||||
ecodes.KEY_PAGEDOWN: Key(mcu=McuKey(code=72), usb=UsbKey(code=78, is_modifier=False)),
|
||||
ecodes.KEY_RIGHT: Key(mcu=McuKey(code=73), usb=UsbKey(code=79, is_modifier=False)),
|
||||
ecodes.KEY_LEFT: Key(mcu=McuKey(code=74), usb=UsbKey(code=80, is_modifier=False)),
|
||||
ecodes.KEY_DOWN: Key(mcu=McuKey(code=75), usb=UsbKey(code=81, is_modifier=False)),
|
||||
ecodes.KEY_UP: Key(mcu=McuKey(code=76), usb=UsbKey(code=82, is_modifier=False)),
|
||||
ecodes.KEY_LEFTCTRL: Key(mcu=McuKey(code=77), usb=UsbKey(code=1, is_modifier=True)),
|
||||
ecodes.KEY_LEFTSHIFT: Key(mcu=McuKey(code=78), usb=UsbKey(code=2, is_modifier=True)),
|
||||
ecodes.KEY_LEFTALT: Key(mcu=McuKey(code=79), usb=UsbKey(code=4, is_modifier=True)),
|
||||
ecodes.KEY_LEFTMETA: Key(mcu=McuKey(code=80), usb=UsbKey(code=8, is_modifier=True)),
|
||||
ecodes.KEY_RIGHTCTRL: Key(mcu=McuKey(code=81), usb=UsbKey(code=16, is_modifier=True)),
|
||||
ecodes.KEY_RIGHTSHIFT: Key(mcu=McuKey(code=82), usb=UsbKey(code=32, is_modifier=True)),
|
||||
ecodes.KEY_RIGHTALT: Key(mcu=McuKey(code=83), usb=UsbKey(code=64, is_modifier=True)),
|
||||
ecodes.KEY_RIGHTMETA: Key(mcu=McuKey(code=84), usb=UsbKey(code=128, is_modifier=True)),
|
||||
ecodes.KEY_PAUSE: Key(mcu=McuKey(code=85), usb=UsbKey(code=72, is_modifier=False)),
|
||||
ecodes.KEY_SCROLLLOCK: Key(mcu=McuKey(code=86), usb=UsbKey(code=71, is_modifier=False)),
|
||||
ecodes.KEY_NUMLOCK: Key(mcu=McuKey(code=87), usb=UsbKey(code=83, is_modifier=False)),
|
||||
ecodes.KEY_CONTEXT_MENU: Key(mcu=McuKey(code=88), usb=UsbKey(code=101, is_modifier=False)),
|
||||
ecodes.KEY_KPSLASH: Key(mcu=McuKey(code=89), usb=UsbKey(code=84, is_modifier=False)),
|
||||
ecodes.KEY_KPASTERISK: Key(mcu=McuKey(code=90), usb=UsbKey(code=85, is_modifier=False)),
|
||||
ecodes.KEY_KPMINUS: Key(mcu=McuKey(code=91), usb=UsbKey(code=86, is_modifier=False)),
|
||||
ecodes.KEY_KPPLUS: Key(mcu=McuKey(code=92), usb=UsbKey(code=87, is_modifier=False)),
|
||||
ecodes.KEY_KPENTER: Key(mcu=McuKey(code=93), usb=UsbKey(code=88, is_modifier=False)),
|
||||
ecodes.KEY_KP1: Key(mcu=McuKey(code=94), usb=UsbKey(code=89, is_modifier=False)),
|
||||
ecodes.KEY_KP2: Key(mcu=McuKey(code=95), usb=UsbKey(code=90, is_modifier=False)),
|
||||
ecodes.KEY_KP3: Key(mcu=McuKey(code=96), usb=UsbKey(code=91, is_modifier=False)),
|
||||
ecodes.KEY_KP4: Key(mcu=McuKey(code=97), usb=UsbKey(code=92, is_modifier=False)),
|
||||
ecodes.KEY_KP5: Key(mcu=McuKey(code=98), usb=UsbKey(code=93, is_modifier=False)),
|
||||
ecodes.KEY_KP6: Key(mcu=McuKey(code=99), usb=UsbKey(code=94, is_modifier=False)),
|
||||
ecodes.KEY_KP7: Key(mcu=McuKey(code=100), usb=UsbKey(code=95, is_modifier=False)),
|
||||
ecodes.KEY_KP8: Key(mcu=McuKey(code=101), usb=UsbKey(code=96, is_modifier=False)),
|
||||
ecodes.KEY_KP9: Key(mcu=McuKey(code=102), usb=UsbKey(code=97, is_modifier=False)),
|
||||
ecodes.KEY_KP0: Key(mcu=McuKey(code=103), usb=UsbKey(code=98, is_modifier=False)),
|
||||
ecodes.KEY_KPDOT: Key(mcu=McuKey(code=104), usb=UsbKey(code=99, is_modifier=False)),
|
||||
ecodes.KEY_POWER: Key(mcu=McuKey(code=105), usb=UsbKey(code=102, is_modifier=False)),
|
||||
ecodes.KEY_102ND: Key(mcu=McuKey(code=106), usb=UsbKey(code=100, is_modifier=False)),
|
||||
ecodes.KEY_YEN: Key(mcu=McuKey(code=107), usb=UsbKey(code=137, is_modifier=False)),
|
||||
ecodes.KEY_RO: Key(mcu=McuKey(code=108), usb=UsbKey(code=135, is_modifier=False)),
|
||||
ecodes.KEY_KATAKANA: Key(mcu=McuKey(code=109), usb=UsbKey(code=136, is_modifier=False)),
|
||||
ecodes.KEY_HENKAN: Key(mcu=McuKey(code=110), usb=UsbKey(code=138, is_modifier=False)),
|
||||
ecodes.KEY_MUHENKAN: Key(mcu=McuKey(code=111), usb=UsbKey(code=139, is_modifier=False)),
|
||||
}
|
||||
|
||||
|
||||
WEB_TO_EVDEV = {
|
||||
"KeyA": ecodes.KEY_A,
|
||||
"KeyB": ecodes.KEY_B,
|
||||
"KeyC": ecodes.KEY_C,
|
||||
"KeyD": ecodes.KEY_D,
|
||||
"KeyE": ecodes.KEY_E,
|
||||
"KeyF": ecodes.KEY_F,
|
||||
"KeyG": ecodes.KEY_G,
|
||||
"KeyH": ecodes.KEY_H,
|
||||
"KeyI": ecodes.KEY_I,
|
||||
"KeyJ": ecodes.KEY_J,
|
||||
"KeyK": ecodes.KEY_K,
|
||||
"KeyL": ecodes.KEY_L,
|
||||
"KeyM": ecodes.KEY_M,
|
||||
"KeyN": ecodes.KEY_N,
|
||||
"KeyO": ecodes.KEY_O,
|
||||
"KeyP": ecodes.KEY_P,
|
||||
"KeyQ": ecodes.KEY_Q,
|
||||
"KeyR": ecodes.KEY_R,
|
||||
"KeyS": ecodes.KEY_S,
|
||||
"KeyT": ecodes.KEY_T,
|
||||
"KeyU": ecodes.KEY_U,
|
||||
"KeyV": ecodes.KEY_V,
|
||||
"KeyW": ecodes.KEY_W,
|
||||
"KeyX": ecodes.KEY_X,
|
||||
"KeyY": ecodes.KEY_Y,
|
||||
"KeyZ": ecodes.KEY_Z,
|
||||
"Digit1": ecodes.KEY_1,
|
||||
"Digit2": ecodes.KEY_2,
|
||||
"Digit3": ecodes.KEY_3,
|
||||
"Digit4": ecodes.KEY_4,
|
||||
"Digit5": ecodes.KEY_5,
|
||||
"Digit6": ecodes.KEY_6,
|
||||
"Digit7": ecodes.KEY_7,
|
||||
"Digit8": ecodes.KEY_8,
|
||||
"Digit9": ecodes.KEY_9,
|
||||
"Digit0": ecodes.KEY_0,
|
||||
"Enter": ecodes.KEY_ENTER,
|
||||
"Escape": ecodes.KEY_ESC,
|
||||
"Backspace": ecodes.KEY_BACKSPACE,
|
||||
"Tab": ecodes.KEY_TAB,
|
||||
"Space": ecodes.KEY_SPACE,
|
||||
"Minus": ecodes.KEY_MINUS,
|
||||
"Equal": ecodes.KEY_EQUAL,
|
||||
"BracketLeft": ecodes.KEY_LEFTBRACE,
|
||||
"BracketRight": ecodes.KEY_RIGHTBRACE,
|
||||
"Backslash": ecodes.KEY_BACKSLASH,
|
||||
"Semicolon": ecodes.KEY_SEMICOLON,
|
||||
"Quote": ecodes.KEY_APOSTROPHE,
|
||||
"Backquote": ecodes.KEY_GRAVE,
|
||||
"Comma": ecodes.KEY_COMMA,
|
||||
"Period": ecodes.KEY_DOT,
|
||||
"Slash": ecodes.KEY_SLASH,
|
||||
"CapsLock": ecodes.KEY_CAPSLOCK,
|
||||
"F1": ecodes.KEY_F1,
|
||||
"F2": ecodes.KEY_F2,
|
||||
"F3": ecodes.KEY_F3,
|
||||
"F4": ecodes.KEY_F4,
|
||||
"F5": ecodes.KEY_F5,
|
||||
"F6": ecodes.KEY_F6,
|
||||
"F7": ecodes.KEY_F7,
|
||||
"F8": ecodes.KEY_F8,
|
||||
"F9": ecodes.KEY_F9,
|
||||
"F10": ecodes.KEY_F10,
|
||||
"F11": ecodes.KEY_F11,
|
||||
"F12": ecodes.KEY_F12,
|
||||
"PrintScreen": ecodes.KEY_SYSRQ,
|
||||
"Insert": ecodes.KEY_INSERT,
|
||||
"Home": ecodes.KEY_HOME,
|
||||
"PageUp": ecodes.KEY_PAGEUP,
|
||||
"Delete": ecodes.KEY_DELETE,
|
||||
"End": ecodes.KEY_END,
|
||||
"PageDown": ecodes.KEY_PAGEDOWN,
|
||||
"ArrowRight": ecodes.KEY_RIGHT,
|
||||
"ArrowLeft": ecodes.KEY_LEFT,
|
||||
"ArrowDown": ecodes.KEY_DOWN,
|
||||
"ArrowUp": ecodes.KEY_UP,
|
||||
"ControlLeft": ecodes.KEY_LEFTCTRL,
|
||||
"ShiftLeft": ecodes.KEY_LEFTSHIFT,
|
||||
"AltLeft": ecodes.KEY_LEFTALT,
|
||||
"MetaLeft": ecodes.KEY_LEFTMETA,
|
||||
"ControlRight": ecodes.KEY_RIGHTCTRL,
|
||||
"ShiftRight": ecodes.KEY_RIGHTSHIFT,
|
||||
"AltRight": ecodes.KEY_RIGHTALT,
|
||||
"MetaRight": ecodes.KEY_RIGHTMETA,
|
||||
"Pause": ecodes.KEY_PAUSE,
|
||||
"ScrollLock": ecodes.KEY_SCROLLLOCK,
|
||||
"NumLock": ecodes.KEY_NUMLOCK,
|
||||
"ContextMenu": ecodes.KEY_CONTEXT_MENU,
|
||||
"NumpadDivide": ecodes.KEY_KPSLASH,
|
||||
"NumpadMultiply": ecodes.KEY_KPASTERISK,
|
||||
"NumpadSubtract": ecodes.KEY_KPMINUS,
|
||||
"NumpadAdd": ecodes.KEY_KPPLUS,
|
||||
"NumpadEnter": ecodes.KEY_KPENTER,
|
||||
"Numpad1": ecodes.KEY_KP1,
|
||||
"Numpad2": ecodes.KEY_KP2,
|
||||
"Numpad3": ecodes.KEY_KP3,
|
||||
"Numpad4": ecodes.KEY_KP4,
|
||||
"Numpad5": ecodes.KEY_KP5,
|
||||
"Numpad6": ecodes.KEY_KP6,
|
||||
"Numpad7": ecodes.KEY_KP7,
|
||||
"Numpad8": ecodes.KEY_KP8,
|
||||
"Numpad9": ecodes.KEY_KP9,
|
||||
"Numpad0": ecodes.KEY_KP0,
|
||||
"NumpadDecimal": ecodes.KEY_KPDOT,
|
||||
"Power": ecodes.KEY_POWER,
|
||||
"IntlBackslash": ecodes.KEY_102ND,
|
||||
"IntlYen": ecodes.KEY_YEN,
|
||||
"IntlRo": ecodes.KEY_RO,
|
||||
"KanaMode": ecodes.KEY_KATAKANA,
|
||||
"Convert": ecodes.KEY_HENKAN,
|
||||
"NonConvert": ecodes.KEY_MUHENKAN,
|
||||
}
|
||||
|
||||
|
||||
# =====
|
||||
class WebModifiers:
|
||||
SHIFT_LEFT = "ShiftLeft"
|
||||
SHIFT_RIGHT = "ShiftRight"
|
||||
class EvdevModifiers:
|
||||
SHIFT_LEFT = ecodes.KEY_LEFTSHIFT
|
||||
SHIFT_RIGHT = ecodes.KEY_RIGHTSHIFT
|
||||
SHIFTS = set([SHIFT_LEFT, SHIFT_RIGHT])
|
||||
|
||||
ALT_LEFT = "AltLeft"
|
||||
ALT_RIGHT = "AltRight"
|
||||
ALT_LEFT = ecodes.KEY_LEFTALT
|
||||
ALT_RIGHT = ecodes.KEY_RIGHTALT
|
||||
ALTS = set([ALT_LEFT, ALT_RIGHT])
|
||||
|
||||
CTRL_LEFT = "ControlLeft"
|
||||
CTRL_RIGHT = "ControlRight"
|
||||
CTRL_LEFT = ecodes.KEY_LEFTCTRL
|
||||
CTRL_RIGHT = ecodes.KEY_RIGHTCTRL
|
||||
CTRLS = set([CTRL_LEFT, CTRL_RIGHT])
|
||||
|
||||
META_LEFT = "MetaLeft"
|
||||
META_RIGHT = "MetaRight"
|
||||
META_LEFT = ecodes.KEY_LEFTMETA
|
||||
META_RIGHT = ecodes.KEY_RIGHTMETA
|
||||
METAS = set([META_LEFT, META_RIGHT])
|
||||
|
||||
ALL = (SHIFTS | ALTS | CTRLS | METAS)
|
||||
@@ -192,10 +309,10 @@ class X11Modifiers:
|
||||
# =====
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class At1Key:
|
||||
code: int
|
||||
code: int
|
||||
shift: bool
|
||||
altgr: bool = False
|
||||
ctrl: bool = False
|
||||
ctrl: bool = False
|
||||
|
||||
|
||||
X11_TO_AT1 = {
|
||||
@@ -357,116 +474,116 @@ X11_TO_AT1 = {
|
||||
}
|
||||
|
||||
|
||||
AT1_TO_WEB = {
|
||||
1: "Escape",
|
||||
2: "Digit1",
|
||||
3: "Digit2",
|
||||
4: "Digit3",
|
||||
5: "Digit4",
|
||||
6: "Digit5",
|
||||
7: "Digit6",
|
||||
8: "Digit7",
|
||||
9: "Digit8",
|
||||
10: "Digit9",
|
||||
11: "Digit0",
|
||||
12: "Minus",
|
||||
13: "Equal",
|
||||
14: "Backspace",
|
||||
15: "Tab",
|
||||
16: "KeyQ",
|
||||
17: "KeyW",
|
||||
18: "KeyE",
|
||||
19: "KeyR",
|
||||
20: "KeyT",
|
||||
21: "KeyY",
|
||||
22: "KeyU",
|
||||
23: "KeyI",
|
||||
24: "KeyO",
|
||||
25: "KeyP",
|
||||
26: "BracketLeft",
|
||||
27: "BracketRight",
|
||||
28: "Enter",
|
||||
29: "ControlLeft",
|
||||
30: "KeyA",
|
||||
31: "KeyS",
|
||||
32: "KeyD",
|
||||
33: "KeyF",
|
||||
34: "KeyG",
|
||||
35: "KeyH",
|
||||
36: "KeyJ",
|
||||
37: "KeyK",
|
||||
38: "KeyL",
|
||||
39: "Semicolon",
|
||||
40: "Quote",
|
||||
41: "Backquote",
|
||||
42: "ShiftLeft",
|
||||
43: "Backslash",
|
||||
44: "KeyZ",
|
||||
45: "KeyX",
|
||||
46: "KeyC",
|
||||
47: "KeyV",
|
||||
48: "KeyB",
|
||||
49: "KeyN",
|
||||
50: "KeyM",
|
||||
51: "Comma",
|
||||
52: "Period",
|
||||
53: "Slash",
|
||||
54: "ShiftRight",
|
||||
55: "NumpadMultiply",
|
||||
56: "AltLeft",
|
||||
57: "Space",
|
||||
58: "CapsLock",
|
||||
59: "F1",
|
||||
60: "F2",
|
||||
61: "F3",
|
||||
62: "F4",
|
||||
63: "F5",
|
||||
64: "F6",
|
||||
65: "F7",
|
||||
66: "F8",
|
||||
67: "F9",
|
||||
68: "F10",
|
||||
69: "NumLock",
|
||||
70: "ScrollLock",
|
||||
71: "Numpad7",
|
||||
72: "Numpad8",
|
||||
73: "Numpad9",
|
||||
74: "NumpadSubtract",
|
||||
75: "Numpad4",
|
||||
76: "Numpad5",
|
||||
77: "Numpad6",
|
||||
78: "NumpadAdd",
|
||||
79: "Numpad1",
|
||||
80: "Numpad2",
|
||||
81: "Numpad3",
|
||||
82: "Numpad0",
|
||||
83: "NumpadDecimal",
|
||||
84: "PrintScreen",
|
||||
86: "IntlBackslash",
|
||||
87: "F11",
|
||||
88: "F12",
|
||||
112: "KanaMode",
|
||||
115: "IntlRo",
|
||||
121: "Convert",
|
||||
123: "NonConvert",
|
||||
125: "IntlYen",
|
||||
57372: "NumpadEnter",
|
||||
57373: "ControlRight",
|
||||
57397: "NumpadDivide",
|
||||
57400: "AltRight",
|
||||
57414: "Pause",
|
||||
57415: "Home",
|
||||
57416: "ArrowUp",
|
||||
57417: "PageUp",
|
||||
57419: "ArrowLeft",
|
||||
57421: "ArrowRight",
|
||||
57423: "End",
|
||||
57424: "ArrowDown",
|
||||
57425: "PageDown",
|
||||
57426: "Insert",
|
||||
57427: "Delete",
|
||||
57435: "MetaLeft",
|
||||
57436: "MetaRight",
|
||||
57437: "ContextMenu",
|
||||
57438: "Power",
|
||||
AT1_TO_EVDEV = {
|
||||
1: ecodes.KEY_ESC,
|
||||
2: ecodes.KEY_1,
|
||||
3: ecodes.KEY_2,
|
||||
4: ecodes.KEY_3,
|
||||
5: ecodes.KEY_4,
|
||||
6: ecodes.KEY_5,
|
||||
7: ecodes.KEY_6,
|
||||
8: ecodes.KEY_7,
|
||||
9: ecodes.KEY_8,
|
||||
10: ecodes.KEY_9,
|
||||
11: ecodes.KEY_0,
|
||||
12: ecodes.KEY_MINUS,
|
||||
13: ecodes.KEY_EQUAL,
|
||||
14: ecodes.KEY_BACKSPACE,
|
||||
15: ecodes.KEY_TAB,
|
||||
16: ecodes.KEY_Q,
|
||||
17: ecodes.KEY_W,
|
||||
18: ecodes.KEY_E,
|
||||
19: ecodes.KEY_R,
|
||||
20: ecodes.KEY_T,
|
||||
21: ecodes.KEY_Y,
|
||||
22: ecodes.KEY_U,
|
||||
23: ecodes.KEY_I,
|
||||
24: ecodes.KEY_O,
|
||||
25: ecodes.KEY_P,
|
||||
26: ecodes.KEY_LEFTBRACE,
|
||||
27: ecodes.KEY_RIGHTBRACE,
|
||||
28: ecodes.KEY_ENTER,
|
||||
29: ecodes.KEY_LEFTCTRL,
|
||||
30: ecodes.KEY_A,
|
||||
31: ecodes.KEY_S,
|
||||
32: ecodes.KEY_D,
|
||||
33: ecodes.KEY_F,
|
||||
34: ecodes.KEY_G,
|
||||
35: ecodes.KEY_H,
|
||||
36: ecodes.KEY_J,
|
||||
37: ecodes.KEY_K,
|
||||
38: ecodes.KEY_L,
|
||||
39: ecodes.KEY_SEMICOLON,
|
||||
40: ecodes.KEY_APOSTROPHE,
|
||||
41: ecodes.KEY_GRAVE,
|
||||
42: ecodes.KEY_LEFTSHIFT,
|
||||
43: ecodes.KEY_BACKSLASH,
|
||||
44: ecodes.KEY_Z,
|
||||
45: ecodes.KEY_X,
|
||||
46: ecodes.KEY_C,
|
||||
47: ecodes.KEY_V,
|
||||
48: ecodes.KEY_B,
|
||||
49: ecodes.KEY_N,
|
||||
50: ecodes.KEY_M,
|
||||
51: ecodes.KEY_COMMA,
|
||||
52: ecodes.KEY_DOT,
|
||||
53: ecodes.KEY_SLASH,
|
||||
54: ecodes.KEY_RIGHTSHIFT,
|
||||
55: ecodes.KEY_KPASTERISK,
|
||||
56: ecodes.KEY_LEFTALT,
|
||||
57: ecodes.KEY_SPACE,
|
||||
58: ecodes.KEY_CAPSLOCK,
|
||||
59: ecodes.KEY_F1,
|
||||
60: ecodes.KEY_F2,
|
||||
61: ecodes.KEY_F3,
|
||||
62: ecodes.KEY_F4,
|
||||
63: ecodes.KEY_F5,
|
||||
64: ecodes.KEY_F6,
|
||||
65: ecodes.KEY_F7,
|
||||
66: ecodes.KEY_F8,
|
||||
67: ecodes.KEY_F9,
|
||||
68: ecodes.KEY_F10,
|
||||
69: ecodes.KEY_NUMLOCK,
|
||||
70: ecodes.KEY_SCROLLLOCK,
|
||||
71: ecodes.KEY_KP7,
|
||||
72: ecodes.KEY_KP8,
|
||||
73: ecodes.KEY_KP9,
|
||||
74: ecodes.KEY_KPMINUS,
|
||||
75: ecodes.KEY_KP4,
|
||||
76: ecodes.KEY_KP5,
|
||||
77: ecodes.KEY_KP6,
|
||||
78: ecodes.KEY_KPPLUS,
|
||||
79: ecodes.KEY_KP1,
|
||||
80: ecodes.KEY_KP2,
|
||||
81: ecodes.KEY_KP3,
|
||||
82: ecodes.KEY_KP0,
|
||||
83: ecodes.KEY_KPDOT,
|
||||
84: ecodes.KEY_SYSRQ,
|
||||
86: ecodes.KEY_102ND,
|
||||
87: ecodes.KEY_F11,
|
||||
88: ecodes.KEY_F12,
|
||||
112: ecodes.KEY_KATAKANA,
|
||||
115: ecodes.KEY_RO,
|
||||
121: ecodes.KEY_HENKAN,
|
||||
123: ecodes.KEY_MUHENKAN,
|
||||
125: ecodes.KEY_YEN,
|
||||
57372: ecodes.KEY_KPENTER,
|
||||
57373: ecodes.KEY_RIGHTCTRL,
|
||||
57397: ecodes.KEY_KPSLASH,
|
||||
57400: ecodes.KEY_RIGHTALT,
|
||||
57414: ecodes.KEY_PAUSE,
|
||||
57415: ecodes.KEY_HOME,
|
||||
57416: ecodes.KEY_UP,
|
||||
57417: ecodes.KEY_PAGEUP,
|
||||
57419: ecodes.KEY_LEFT,
|
||||
57421: ecodes.KEY_RIGHT,
|
||||
57423: ecodes.KEY_END,
|
||||
57424: ecodes.KEY_DOWN,
|
||||
57425: ecodes.KEY_PAGEDOWN,
|
||||
57426: ecodes.KEY_INSERT,
|
||||
57427: ecodes.KEY_DELETE,
|
||||
57435: ecodes.KEY_LEFTMETA,
|
||||
57436: ecodes.KEY_RIGHTMETA,
|
||||
57437: ecodes.KEY_CONTEXT_MENU,
|
||||
57438: ecodes.KEY_POWER,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user