98 lines
3.9 KiB
Python
98 lines
3.9 KiB
Python
import board
|
|
import busio as io
|
|
|
|
print(dir(board))
|
|
|
|
from kmk.kmk_keyboard import KMKKeyboard
|
|
|
|
from kmk.keys import KC
|
|
from kmk.scanners import DiodeOrientation
|
|
|
|
keyboard = KMKKeyboard()
|
|
from kmk.modules.layers import Layers
|
|
keyboard.modules.append(Layers())
|
|
from kmk.modules.modtap import ModTap
|
|
modtap = ModTap()
|
|
keyboard.modules.append(modtap)
|
|
|
|
keyboard.col_pins = (board.GP6, board.GP7, board.GP8, board.GP9, board.GP10, board.GP18, board.GP19, board.GP20, board.GP21, board.GP22,) # try D5 on Feather, keeboar
|
|
keyboard.row_pins = (board.GP14, board.GP15, board.GP16, board.GP17,) # try D6 on Feather, keeboar
|
|
keyboard.diode_orientation = DiodeOrientation.COL2ROW
|
|
|
|
|
|
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))
|
|
# optional: set a custom tap timeout in ms
|
|
# modtap.tap_time = 300
|
|
|
|
|
|
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)
|
|
|
|
keyboard.keymap = [
|
|
[ #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,
|
|
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,
|
|
|
|
],
|
|
[ #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,
|
|
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,
|
|
|
|
],
|
|
[ #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,
|
|
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,
|
|
|
|
],
|
|
[ #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,
|
|
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,
|
|
|
|
]
|
|
|
|
]
|
|
# 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
|
|
|
|
if __name__ == '__main__':
|
|
keyboard.go()
|