Adafruit_Learning_System_Gu.../CircuitPython_NeXT_Keyboard_RP2040/next_keycode.py

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
}