layers = Layers() modtap = ModTap() rgb_ext = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=27, val_limit=100, hue_default=190, sat_default=100, val_default=5) split = Split() keyboard.modules = [modtap, layers, split] keyboard.extensions = [rgb_ext] _______ = KC.TRNS XXXXXXX = KC.NO SHFT_INS = KC.LSHIFT(KC.INS) BASE = KC.DF(0) GAMING = KC.DF(1) LT1_SP = KC.MO(2) LT2_SP = KC.LT(3, KC.SPC) TAB_SB = KC.LT(5, KC.TAB) SUPER_L = KC.LM(4, KC.LGUI) # ---------------------- Keymap --------------------------------------------------------- keyboard.keymap = [ [ # df KC.GRV, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL, KC.GESC, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.BSPC, TAB_SB, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.ENT, KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.SLSH, KC.LCTRL, KC.LGUI, KC.LALT, KC.LALT, SUPER_L, LT1_SP, LT2_SP, KC.LCTL, KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, ],
encoder_ext = EncoderHandler([board.D40], [board.D41], encoder_map) encoder_ext.encoders[0].is_inverted = True keyboard.modules = [layers_ext, encoder_ext] keyboard.tap_time = 250 keyboard.debug_enabled = False # custom keys NEW = KC.LCTL(KC.N) NEW_DIR = KC.LCTL(KC.LSFT(KC.N)) CAD = KC.LCTL(KC.LALT(KC.DEL)) RES = KC.LCTL(KC.LSFT(KC.ESC)) FE = KC.LGUI(KC.E) LT1_DEL = KC.LT(1, KC.DEL) LT2_ENT = KC.LT(2, KC.ENT) SAVE_AS = KC.LCTL(KC.LSFT(KC.S)) PSCR = KC.LGUI(KC.PSCR) SNIP = simple_key_sequence(( KC.LGUI, KC.MACRO_SLEEP_MS(25), KC.S, KC.N, KC.I, KC.P, KC.MACRO_SLEEP_MS(25), KC.ENT, )) # programming layer keys
keyboard.rgb_config['animation_mode'] = 'static' keyboard.rgb_config['animation_speed'] = 2 keyboard.debug_enabled = False # ---------------------- Custom Functions -------------------------------------------- BASE = 0 GAMING = 1 FN1 = 2 _______ = KC.TRNS XXXXXXX = KC.NO HOME = KC.MT(KC.HOME, KC.LSFT) END = KC.MT(KC.END, KC.RSFT) LEFT_LAY = KC.LT(FN1, KC.LEFT) SHFT_INS = KC.LSFT(KC.INS) # ---------------------- Keymap --------------------------------------------------------- keyboard.keymap = [ # df [ KC.GESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.LBRC, KC.RBRC, KC.BSPC, KC.LEAD, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.SLSH, KC.EQL, KC.BSLS, KC.TAB, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.MINS, KC.ENT, HOME, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, END, KC.LCTL, KC.LGUI, KC.LALT, KC.SPC, LEFT_LAY, KC.DOWN, KC.UP, KC.RIGHT, ],
from kmk.modules.modtap import ModTap keyboard = KMKKeyboard() modtap = ModTap() layers_ext = Layers() led = LED() keyboard.extensions = [led] keyboard.modules = [layers_ext, modtap] # Cleaner key names _______ = KC.TRNS XXXXXXX = KC.NO FN1_SPC = KC.LT(1, KC.SPC) FN2_BSPC = KC.LT(2, KC.BSPC) FN3_C = KC.LT(3, KC.C) FN4_V = KC.LT(4, KC.V) FN5_B = KC.LT(5, KC.B) CTL_Z = KC.CTL_T(KC.Z) ALT_X = KC.ALT(KC.X) ALT_N = KC.ALT(KC.N) CTL_M = KC.CTL(KC.M) SFT_ENT = KC.SFT(KC.ENT) BL_DEC = KC.BL_DEC BL_INC = KC.BL_INC keyboard.keymap = [ [ KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P,
def test_basic_kmk_keyboard(self): keyboard = KeyboardTest( [Layers(), ModTap(), OneShot()], [ [ KC.MT(KC.A, KC.LCTL), KC.LT(1, KC.B), KC.C, KC.D, KC.OS(KC.E) ], [KC.N1, KC.N2, KC.N3, KC.N4, KC.N5], ], debug_enabled=False, ) keyboard.test('MT tap behaviour', [(0, True), 100, (0, False)], [{KC.A}, {}]) keyboard.test('MT hold behaviour', [(0, True), 350, (0, False)], [{KC.LCTL}, {}]) # TODO test multiple mods being held # MT keyboard.test( 'MT within tap time sequential -> tap behavior', [(0, True), 100, (0, False), (3, True), (3, False)], [{KC.A}, {}, {KC.D}, {}], ) keyboard.test( 'MT within tap time rolling -> hold behavior', [(0, True), 100, (3, True), 250, (0, False), (3, False)], [{KC.LCTL}, {KC.LCTL, KC.D}, {KC.D}, {}], ) keyboard.test( 'MT within tap time nested -> hold behavior', [(0, True), 100, (3, True), (3, False), 250, (0, False)], [{KC.LCTL}, {KC.LCTL, KC.D}, {KC.LCTL}, {}], ) keyboard.test( 'MT after tap time sequential -> hold behavior', [(0, True), 350, (0, False), (3, True), (3, False)], [{KC.LCTL}, {}, {KC.D}, {}], ) keyboard.test( 'MT after tap time rolling -> hold behavior', [(0, True), 350, (3, True), (0, False), (3, False)], [{KC.LCTL}, {KC.LCTL, KC.D}, {KC.D}, {}], ) keyboard.test( 'MT after tap time nested -> hold behavior', [(0, True), 350, (3, True), (3, False), (0, False)], [{KC.LCTL}, {KC.LCTL, KC.D}, {KC.LCTL}, {}], ) # LT keyboard.test( 'LT within tap time sequential -> tap behavior', [(1, True), 100, (1, False), (3, True), (3, False)], [{KC.B}, {}, {KC.D}, {}], ) keyboard.test( 'LT within tap time rolling -> tap behavior', [(1, True), 100, (3, True), 250, (1, False), (3, False)], [{KC.B}, {KC.B, KC.D}, {KC.D}, {}], ) keyboard.test( 'LT within tap time nested -> tap behavior', [(1, True), 100, (3, True), (3, False), 250, (1, False)], [{KC.B}, {KC.B, KC.D}, {KC.B}, {}], ) keyboard.test( 'LT after tap time sequential -> hold behavior', [(1, True), 350, (1, False), (3, True), (3, False)], [{KC.D}, {}], ) keyboard.test( 'LT after tap time rolling -> hold behavior', [(1, True), 350, (3, True), (1, False), (3, False)], [{KC.N4}, {}], ) keyboard.test( 'LT after tap time nested -> hold behavior', [(1, True), 350, (3, True), (3, False), (1, False)], [{KC.N4}, {}], ) # TODO test TT # OS keyboard.test( 'OS timed out', [(4, True), (4, False), 1050], [{KC.E}, {}], ) keyboard.test( 'OS interrupt within tap time', [(4, True), (4, False), 100, (3, True), (3, False)], [{KC.E}, {KC.D, KC.E}, {}], ) keyboard.test( 'OS hold with multiple interrupt keys', [(4, True), 100, (3, True), (3, False), (2, True), (2, False), (4, False)], [{KC.E}, {KC.D, KC.E}, {KC.E}, {KC.C, KC.E}, {KC.E}, {}], )
num_pixels=16, val_limit=150, hue_default=0, sat_default=100, val_default=20) keyboard.modules = [layers, media_keys, split] keyboard.extensions = [rgb_ext] # ------------------User level config variables --------------------------------------- keyboard.unicode_mode = UnicodeMode.LINUX keyboard.tap_time = 150 keyboard.debug_enabled = False LOWER = KC.TT(3) UP_HYP = KC.LT(4, KC.MINS) _______ = KC.TRNS XXXXXXX = KC.NO # ---------------------- Keymap --------------------------------------------------------- keyboard.keymap = [ [ # Default KC.GESC, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y,
keyboard.rgb_config['val_step'] = 5 keyboard.rgb_config['hue_default'] = 260 keyboard.rgb_config['sat_default'] = 100 keyboard.rgb_config['val_default'] = 20 keyboard.rgb_config['knight_effect_length'] = 4 keyboard.rgb_config['animation_mode'] = 'static' keyboard.rgb_config['animation_speed'] = 1 keyboard.debug_enabled = False _______ = KC.TRNS XXXXXXX = KC.NO SHFT_INS = KC.LSHIFT(KC.INS) BASE = KC.DF(0) LT2_SP = KC.LT(3, KC.SPC) GAMING = KC.DF(1) # ---------------------- Keymap --------------------------------------------------------- keyboard.keymap = [ [ # df KC.GESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL, KC.GRV, KC.QUOTE, KC.COMMA, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.BKSP, KC.TAB, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.ENT, KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.SLSH, KC.LCTRL, KC.LGUI, KC.LALT, KC.RGB_TOG, KC.MO(2), LT2_SP, LT2_SP, KC.MO(4), KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, ], [ # gw
[ KC.GESC, KC.QUOTE, KC.COMMA, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.BKSP ], [ KC.TAB, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.ENT ], [ KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.SLSH ], [ KC.LCTRL, KC.LGUI, KC.LALT, KC.LEAD, KC.MO(2), KC.LT(3, KC.SPC), KC.LT(3, KC.SPC), KC.MO(4), KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT ], ], [ # Gaming [ KC.TAB, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.BKSP ], [ KC.ESC, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.ENT ], [
keyboard.rgb_config['animation_mode'] = 'static' keyboard.rgb_config['animation_speed'] = 2 keyboard.debug_enabled = False # ---------------------- Custom Functions -------------------------------------------- BASE = 0 GAMING = 1 FN1 = 2 _______ = KC.TRNS XXXXXXX = KC.NO HOME = KC.MT(KC.HOME, KC.LSFT) END = KC.MT(KC.END, KC.RSFT) LEFT_LAY = KC.LT(FN1, KC.LEFT) SHFT_INS = KC.LSFT(KC.INS) SPC = KC.LT(2, KC.SPC) # ---------------------- Keymap --------------------------------------------------------- keyboard.keymap = [ # df [ KC.GESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.LBRC, KC.RBRC, KC.BSPC, KC.LEAD, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.SLSH, KC.EQL, KC.BSLS, KC.TAB, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.MINS, KC.ENT, KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.RSFT, KC.LCTL, KC.LGUI, KC.LALT, SPC, KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT,
from kb import KMKKeyboard, rgb_pixel_pin from kmk.extensions.ble_split import BLE_Split from kmk.extensions.layers import Layers from kmk.extensions.rgb import RGB from kmk.keys import KC keyboard = KMKKeyboard() # Cleaner key names _______ = KC.TRNS XXXXXXX = KC.NO LOWER = KC.MO(1) RAISE = KC.MO(2) ADJUST = KC.LT(3, KC.SPC) RGB_TOG = KC.RGB_TOG RGB_HUI = KC.RGB_HUI RGB_HUD = KC.RGB_HUI RGB_SAI = KC.RGB_SAI RGB_SAD = KC.RGB_SAD RGB_VAI = KC.RGB_VAI RGB_VAD = KC.RGB_VAD # Adding extensions rgb = RGB(pixel_pin=rgb_pixel_pin, num_pixels=27, val_limit=100, hue_default=190, sat_default=100,
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.ESC, KC.MT(KC.Z, KC.LCTRL), KC.MT(KC.X, KC.LALT), KC.LT(3, KC.C), KC.LT(4, KC.V), KC.LT(2, KC.BSPC), KC.LT(1, KC.SPC), KC.LT(5, KC.B), KC.MT(KC.N, KC.RALT), KC.MT(KC.M, KC.RCTRL), KC.MT(KC.ENT, KC.RSFT), ], [ KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6,
'f': emoticons.F, 'meh': emoticons.MEH, 'yay': emoticons.YAY, } WPM = send_string('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Bibendum arcu vitae elementum curabitur vitae nunc sed. Facilisis sed odio morbi quis.') # ---------------------- Keymap --------------------------------------------------------- keyboard.keymap = [ [ # default KC.GESC, KC.QUOTE, KC.COMMA, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.BKSP, KC.TAB, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.ENT, KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.SLSH, KC.LCTRL, KC.LGUI, KC.LALT, KC.LEAD, KC.MO(2), KC.LT(3, KC.SPC), KC.LT(3, KC.SPC), KC.MO(4), KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, ], [ # Gaming KC.TAB, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.BKSP, KC.ESC, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.ENT, KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.SLSH, KC.LCTRL, KC.LGUI, KC.LALT, KC.F1, KC.F2, KC.SPC, KC.SPC, KC.MO(4), KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, ], [ # Raise1 KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.DEL, KC.TRNS, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.LBRC, KC.RBRC, KC.BSLS, KC.TRNS, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.NO, KC.INS, KC.PGDN, KC.PGUP, KC.MINS, KC.RESET, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.NO, KC.NO, KC.EQL, KC.HOME, KC.VOLD, KC.VOLU, KC.END, ],
# ---------------------- Leader Key Macros -------------------------------------------- keyboard.leader_dictionary = { 'flip': emoticons.ANGRY_TABLE_FLIP, 'cheer': emoticons.CHEER, 'wat': emoticons.WAT, 'ff': emoticons.FF, 'f': emoticons.F, 'meh': emoticons.MEH, 'yay': emoticons.YAY, 'gw': KC.DF(1), } _______ = KC.TRNS XXXXXXX = KC.NO LT3_SP = KC.LT(3, KC.SPC) SHFT_INS = KC.LSHIFT(KC.INS) df = 0 gw = 1 r1 = 2 r2 = 3 r3 = 4 # ---------------------- Keymap --------------------------------------------------------- keyboard.keymap = [ [ # df [ KC.GESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL