114 lines
3.6 KiB
Python
114 lines
3.6 KiB
Python
|
|
import board
|
|
|
|
from kb import KMKKeyboard
|
|
|
|
from kmk.keys import KC
|
|
from kmk.modules.layers import Layers
|
|
from kmk.modules.mouse_keys import MouseKeys
|
|
from kmk.modules.split import Split, SplitSide
|
|
from kmk.handlers.sequences import send_string
|
|
from kmk.modules.tapdance import TapDance
|
|
from kmk.modules.capsword import CapsWord
|
|
from kmk.modules.combos import Combos, Chord, Sequence
|
|
from kmk.modules.autoshift import Autoshift
|
|
|
|
keyboard = KMKKeyboard()
|
|
keyboard.debug_enabled = False
|
|
|
|
|
|
# TODO Comment one of these on each side
|
|
split_side = SplitSide.LEFT
|
|
#split_side = SplitSide.RIGHT
|
|
split = Split(
|
|
# split_flip=True,
|
|
data_pin=board.D1,
|
|
split_side=split_side,
|
|
split_target_left=False,
|
|
# Using the default wasn't working, try pio
|
|
use_pio=True,
|
|
uart_flip=True,
|
|
)
|
|
|
|
layers = Layers()
|
|
mouse_key = MouseKeys()
|
|
tapdance = TapDance()
|
|
tapdance.tap_time = 750
|
|
caps_word=CapsWord()
|
|
combos = Combos()
|
|
autoshift = Autoshift()
|
|
|
|
keyboard.modules = [layers, split, mouse_key, tapdance, caps_word, combos, autoshift]
|
|
|
|
# Cleaner key names
|
|
_______ = KC.TRNS
|
|
XXXXXXX = KC.NO
|
|
|
|
# Tap Dance
|
|
Q_ESC = KC.TD(
|
|
# Tap once for "Q"
|
|
KC.Q,
|
|
# Tap twice for "ESC"
|
|
KC.ESC,
|
|
)
|
|
|
|
|
|
# Layer tap for other home row keys
|
|
NAV_BKSP = KC.LT(1, KC.BSPC)
|
|
FUN_TAB = KC.LT(4, KC.TAB)
|
|
SYM_ENTER = KC.LT(3, KC.ENT)
|
|
NUM_SPC = KC.LT(2, KC.SPC)
|
|
|
|
# Send String
|
|
M_PASS1 = send_string("T3lg3Ranch!2023")
|
|
M_PASS2 = send_string("P0plarLake!2023")
|
|
|
|
# COMBOS
|
|
combos.combos = [
|
|
Chord((KC.F, KC.A), KC.LGUI),
|
|
Chord((KC.F, KC.S), KC.LALT),
|
|
Chord((KC.F, KC.D), KC.LCTL),
|
|
Chord((KC.J, KC.QUOT), KC.RGUI),
|
|
Chord((KC.J, KC.L), KC.RALT),
|
|
Chord((KC.J, KC.K), KC.RCTL),
|
|
Chord((KC.Z, KC.X), KC.LSFT)
|
|
]
|
|
|
|
# fmt: off
|
|
# flake8: noqa
|
|
keyboard.keymap = [
|
|
[ # 0 QWERTY/ BASE
|
|
Q_ESC, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P,
|
|
KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.QUOT,
|
|
KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH,
|
|
NAV_BKSP, FUN_TAB, SYM_ENTER, NUM_SPC,
|
|
],
|
|
[ # 1 NAVIGATION
|
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
|
_______, _______, _______, _______, _______, KC.CAPSWORD, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT,
|
|
_______, _______, _______, M_PASS2, M_PASS1, _______, KC.HOME, KC.PGUP, KC.PGDN, KC.END,
|
|
_______, _______, _______, _______,
|
|
],
|
|
[ # 2 NUMBERS
|
|
KC.LBRC, KC.N7, KC.N8, KC.N9, KC.RBRC, _______, _______, _______, _______, _______,
|
|
KC.SCLN, KC.N4, KC.N5, KC.N6, KC.PLUS, _______, _______, _______, _______, _______,
|
|
KC.DOT, KC.N1, KC.N2, KC.N3, KC.BSLS, _______, _______, _______, _______, _______,
|
|
KC.N0, KC.MINS, _______, _______,
|
|
],
|
|
[ # 3 SYMBOLS
|
|
KC.LCBR, KC.AMPR, KC.ASTR, KC.LPRN, KC.RCBR, _______, _______, _______, _______, _______,
|
|
KC.COLN, KC.DLR, KC.PERC, KC.CIRC, KC.PLUS, _______, _______, _______, _______, _______,
|
|
KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.PIPE, _______, _______, _______, _______, _______,
|
|
KC.RPRN, KC.UNDS, _______, _______,
|
|
],
|
|
[ # 4 FUNCTION
|
|
_______, _______, _______, _______, _______, _______, KC.F7, KC.F8, KC.F9, KC.F10,
|
|
_______, _______, _______, _______, _______, _______, KC.F4, KC.F5, KC.F6, KC.F11,
|
|
_______, _______, _______, _______, _______, _______, KC.F1, KC.F2, KC.F3, KC.F12,
|
|
_______, _______, _______, _______,
|
|
],
|
|
]
|
|
|
|
if __name__ == "__main__":
|
|
keyboard.go()
|