kmk_firmware/boards/crowboard/main.py

93 lines
3.5 KiB
Python
Raw Normal View History

2022-05-22 17:01:20 +02:00
import board
2022-05-22 20:21:07 +02:00
from kb import KMKKeyboard
2022-05-22 17:01:20 +02:00
from kmk.keys import KC
2022-05-22 20:21:07 +02:00
from kmk.modules.layers import Layers
from kmk.modules.modtap import ModTap
2022-05-22 17:01:20 +02:00
from kmk.scanners import DiodeOrientation
2022-05-22 19:53:07 +02:00
2022-05-22 17:01:20 +02:00
keyboard = KMKKeyboard()
2022-05-22 20:21:07 +02:00
2022-05-22 17:01:20 +02:00
keyboard.modules.append(Layers())
2022-05-22 20:21:07 +02:00
2022-05-22 17:01:20 +02:00
modtap = ModTap()
keyboard.modules.append(modtap)
NONE = KC.NO
QWERTY = KC.MO(0)
LOWER = KC.MO(1)
RAISE = KC.MO(2)
ADJUST = KC.MO(3)
CAE = KC.LCTL(KC.LALT(KC.END))
CAD = KC.LCTL(KC.LALT(KC.DEL))
2022-05-22 19:53:07 +02:00
2022-05-22 17:01:20 +02:00
ZSFT = KC.MT(KC.Z, KC.LSFT, prefer_hold=True, tap_interrupted=False, tap_time=3000)
SLSHSFT = KC.MT(KC.SLSH, KC.LSFT, prefer_hold=True, tap_interrupted=False, tap_time=3000)
ALCTL = KC.MT(KC.A, KC.LCTRL, prefer_hold=False, tap_interrupted=False, tap_time=150)
2022-05-22 20:21:07 +02:00
# flake8: noqa: E261
2022-05-22 17:01:20 +02:00
keyboard.keymap = [
2022-05-22 20:21:07 +02:00
[ # QWERTY
KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P,
ALCTL, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.QUOT,
2022-05-22 17:01:20 +02:00
ZSFT, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, SLSHSFT,
NONE, NONE, KC.LCTL, LOWER, KC.SPACE, KC.BSPC, RAISE, KC.RALT, NONE, NONE,
2022-05-22 20:21:07 +02:00
2022-05-22 17:01:20 +02:00
],
2022-05-22 20:21:07 +02:00
[ # LOWER
KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0,
KC.TAB, KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, KC.TRNS, KC.MINUS, KC.EQUAL, KC.LBRC, KC.RBRC,
2022-05-22 17:01:20 +02:00
KC.LCTL, KC.GRAVE, KC.LGUI, KC.LALT, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.BSLS, KC.SCLN,
KC.NO, KC.NO, KC.TRNS, KC.TRNS, KC.TRNS, KC.ENTER, ADJUST, KC.TRNS, KC.NO, KC.NO,
2022-05-22 20:21:07 +02:00
2022-05-22 17:01:20 +02:00
],
2022-05-22 20:21:07 +02:00
[ # RAISE
KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN,
KC.ESC, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.UNDS, KC.PLUS, KC.LCBR, KC.RCBR,
2022-05-22 17:01:20 +02:00
KC.CAPS, KC.TILDE, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.PIPE, KC.COLN,
KC.NO, KC.NO, KC.TRNS, ADJUST, KC.TRNS, KC.ENTER, KC.TRNS, KC.DEL, KC.NO, KC.NO,
2022-05-22 20:21:07 +02:00
2022-05-22 17:01:20 +02:00
],
2022-05-22 20:21:07 +02:00
[ # ADJUST
KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.F7, KC.F8, KC.F9, KC.F10,
KC.F11, KC.F12, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, CAE, CAD, CAD,
2022-05-22 17:01:20 +02:00
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS,
KC.NO, KC.NO, KC.TRNS, KC.TRNS, KC.TRNS, KC.ENTER, KC.TRNS, KC.TRNS, KC.NO, KC.NO,
2022-05-22 20:21:07 +02:00
2022-05-22 17:01:20 +02:00
]
]
2022-05-22 20:21:07 +02:00
# Uncomment for Trackball
# from kmk.modules.pimoroni_trackball import Trackball, TrackballMode
# import busio as io
# i2c1 = io.I2C(scl=board.GP3, sda=board.GP2)
# trackball = Trackball(i2c1, mode=TrackballMode.MOUSE_MODE)
# keyboard.modules.append(trackball)
# trackball.set_rgbw(255, 255, 255, 30)
# trackball.set_red(20)
# trackball.set_green(100)
# trackball.set_blue(100)
# trackball.set_white(40)
# uncomment for Encoders
# from kmk.modules.encoder import EncoderHandler
# encoder_handler = EncoderHandler()
# keyboard.modules = [encoder_handler]
# encoder_handler.pins = ((board.GP12, board.GP13, None, False), (board.GP27, board.GP26, None, False),)
# encoder_handler.map = [(( KC.VOLD, KC.VOLU),(KC.VOLD, KC.VOLU),), # Layer 1
# ((KC.VOLD, KC.VOLU),(KC.VOLD, KC.VOLU),), # Layer 2
# ((KC.VOLD, KC.VOLU),(KC.VOLD, KC.VOLU),), # Layer 3
# ((KC.VOLD, KC.VOLU),(KC.VOLD, KC.VOLU),), # Layer 4
# ]
# keyboard.debug_enabled = True
2022-05-22 17:01:20 +02:00
if __name__ == '__main__':
keyboard.go()