print("Starting") import board from kmk.kmk_keyboard import KMKKeyboard from kmk.keys import KC from kmk.scanners import DiodeOrientation from kmk.modules.encoder import EncoderHandler from kmk.modules.oled2 import Oled from kmk.extensions.lock_status import LockStatus from kmk.extensions.RGB import RGB from kmk.extensions.rgb import AnimationModes from kmk.modules.power import Power from kmk.modules.layers import Layers ## Create KMK Keyboard object keyboard = KMKKeyboard() ## ## Add layer support keyboard.modules.append(Layers()) ## ## Add status indicator support locks = LockStatus() keyboard.extensions.append(locks) ## ## RGB extension config rgb_ext = RGB(pixel_pin=board.A3, num_pixels=9, hue_default=249, refresh_rate=60, animation_speed=1, breathe_center=1, knight_effect_length=3, animation_mode=AnimationModes.STATIC) keyboard.extensions.append(rgb_ext) ## ## Oled module configuration oled_handler = Oled() oled_handler.locks = locks oled_handler.refresh_rate = 0.2 oled_handler.pins = (board.D3, board.D2) keyboard.modules.append(oled_handler) ## ## Encoder configuration encoder_handler = EncoderHandler() encoder_handler.pins = ((board.A2, board.A1, None, False),) encoder_handler.map = [(( KC.VOLU, KC.VOLD, KC.C),), (( KC.RGB_HUI, KC.RGB_HUD, KC.C), )] keyboard.modules.append(encoder_handler) ## ## Keyboard debug flag keyboard.debug_enabled = True ## ## Keyboard Matrix definition keyboard.row_pins = (board.D5, board.D6, board.D7, board.D8, board.D9) keyboard.col_pins = (board.SCK, board.MISO, board.MOSI, board.D10) keyboard.diode_orientation = DiodeOrientation.COL2ROW ## ## Define keymap for the board #TODO: Move keymap to its own module keyboard.keymap = [ [KC.MO(1), KC.NUMPAD_SLASH, KC.NUMPAD_ASTERISK, KC.NUMPAD_MINUS, KC.NUMPAD_7, KC.NUMPAD_8, KC.NUMPAD_9, KC.NUMPAD_PLUS, KC.NUMPAD_4, KC.NUMPAD_5, KC.NUMPAD_6, KC.NO, KC.NUMPAD_1, KC.NUMPAD_2, KC.NUMPAD_3, KC.NO, KC.NO, KC.NUMPAD_0, KC.NUMPAD_DOT, KC.NUMPAD_ENTER], [KC.NO, KC.NUM_LOCK, KC.NUMPAD_ASTERISK, KC.RGB_AND, KC.RGB_MODE_PLAIN, KC.RGB_MODE_BREATHE, KC.RGB_MODE_RAINBOW, KC.RGB_ANI, KC.NUMPAD_4, KC.NUMPAD_5, KC.NUMPAD_6, KC.NO, KC.NUMPAD_1, KC.NUMPAD_2, KC.NUMPAD_3, KC.NO, KC.NO, KC.NUMPAD_0, KC.NUMPAD_DOT, KC.RGB_MODE_RAINBOW] ] ## ## Start the board if __name__ == '__main__': keyboard.go() ##