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