112 lines
2.1 KiB
Python
112 lines
2.1 KiB
Python
# SPDX-FileCopyrightText: 2022 Jeff Epler for Adafruit Industries
|
|
# SPDX-License-Identifier: MIT
|
|
from adafruit_hid.consumer_control_code import ConsumerControlCode as C
|
|
from adafruit_hid.keycode import Keycode as K
|
|
|
|
MASK_CC = 1 << 15
|
|
|
|
|
|
def is_cc(value):
|
|
return isinstance(value, int) and (value & MASK_CC)
|
|
|
|
|
|
def cc_value(value):
|
|
return value & ~MASK_CC
|
|
|
|
|
|
next_modifiers = [
|
|
K.RIGHT_ALT,
|
|
K.ALT,
|
|
K.APPLICATION, # right command
|
|
K.COMMAND,
|
|
K.RIGHT_SHIFT,
|
|
K.SHIFT,
|
|
K.CONTROL,
|
|
]
|
|
|
|
shift_modifiers = (1<<4) | (1<<5)
|
|
|
|
next_scancodes = {
|
|
3: K.BACKSLASH,
|
|
4: K.RIGHT_BRACKET,
|
|
5: K.LEFT_BRACKET,
|
|
6: K.I,
|
|
7: K.O,
|
|
8: K.P,
|
|
9: K.LEFT_ARROW,
|
|
11: K.KEYPAD_ZERO,
|
|
12: K.KEYPAD_PERIOD,
|
|
13: K.KEYPAD_ENTER,
|
|
15: K.DOWN_ARROW,
|
|
16: K.RIGHT_ARROW,
|
|
17: K.KEYPAD_ONE,
|
|
18: K.KEYPAD_FOUR,
|
|
19: K.KEYPAD_SIX,
|
|
20: K.KEYPAD_THREE,
|
|
21: K.KEYPAD_PLUS,
|
|
22: K.UP_ARROW,
|
|
23: K.KEYPAD_TWO,
|
|
24: K.KEYPAD_FIVE,
|
|
27: K.BACKSPACE,
|
|
28: K.EQUALS,
|
|
29: K.MINUS,
|
|
30: K.EIGHT,
|
|
31: K.NINE,
|
|
32: K.ZERO,
|
|
33: K.KEYPAD_SEVEN,
|
|
34: K.KEYPAD_EIGHT,
|
|
35: K.KEYPAD_NINE,
|
|
36: K.KEYPAD_MINUS,
|
|
37: K.KEYPAD_ASTERISK,
|
|
38: K.GRAVE_ACCENT,
|
|
39: K.KEYPAD_EQUALS,
|
|
40: K.KEYPAD_FORWARD_SLASH,
|
|
42: K.RETURN,
|
|
43: K.QUOTE,
|
|
44: K.SEMICOLON,
|
|
45: K.L,
|
|
46: K.COMMA,
|
|
47: K.PERIOD,
|
|
48: K.FORWARD_SLASH,
|
|
49: K.Z,
|
|
50: K.X,
|
|
51: K.C,
|
|
52: K.V,
|
|
53: K.B,
|
|
54: K.M,
|
|
55: K.N,
|
|
56: K.SPACE,
|
|
57: K.A,
|
|
58: K.S,
|
|
59: K.D,
|
|
60: K.F,
|
|
61: K.G,
|
|
62: K.K,
|
|
63: K.J,
|
|
64: K.H,
|
|
65: K.TAB,
|
|
66: K.Q,
|
|
67: K.W,
|
|
68: K.E,
|
|
69: K.R,
|
|
70: K.U,
|
|
71: K.Y,
|
|
72: K.T,
|
|
73: K.ESCAPE,
|
|
74: K.ONE,
|
|
75: K.TWO,
|
|
76: K.THREE,
|
|
77: K.FOUR,
|
|
78: K.SEVEN,
|
|
79: K.SIX,
|
|
80: K.FIVE,
|
|
26: C.VOLUME_INCREMENT | MASK_CC,
|
|
2: C.VOLUME_DECREMENT | MASK_CC,
|
|
25: C.BRIGHTNESS_INCREMENT | MASK_CC,
|
|
1: C.BRIGHTNESS_DECREMENT | MASK_CC,
|
|
}
|
|
|
|
shifted_codes = {
|
|
39: K.BACKSLASH, # already shifted
|
|
40: (K.BACKSLASH,), # will temporarily undo shift
|
|
}
|