config for cygnus split keyboard
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

cleanup

+96
+96
main.py
··· 1 + print("Starting...") 2 + 3 + import board 4 + 5 + from kmk.kmk_keyboard import KMKKeyboard 6 + from kmk.scanners import DiodeOrientation 7 + from kmk.keys import KC 8 + from kmk.modules.layers import Layers 9 + from kmk.modules.split import Split, SplitSide 10 + from kmk.extensions.media_keys import MediaKeys 11 + from kmk.modules.combos import Combos, Chord 12 + from kmk.modules.macros import Macros, Press 13 + from kmk.modules.holdtap import HoldTap 14 + 15 + keyboard = KMKKeyboard() 16 + 17 + 18 + keyboard.col_pins = ( 19 + board.GP3, 20 + board.GP4, 21 + board.GP5, 22 + board.GP6, 23 + board.GP7, 24 + board.GP8, 25 + ) 26 + keyboard.row_pins = ( 27 + board.GP27, 28 + board.GP26, 29 + board.GP15, 30 + board.GP14, 31 + ) 32 + 33 + keyboard.diode_orientation = DiodeOrientation.COL2ROW 34 + 35 + split = Split(use_pio=True, split_side=SplitSide.LEFT, data_pin = board.GP0) 36 + 37 + keyboard.coord_mapping = [ 38 + 0, 1, 2, 3, 4, 5, 29, 28, 27, 26, 25, 24, 39 + 6, 7, 8, 9, 10, 11, 35, 34, 33, 32, 31, 30, 40 + 12, 13, 14, 15, 16, 17, 41, 40, 39, 38, 37, 36, 41 + 21, 22, 23, 47, 46, 45, 42 + ] 43 + layers = Layers() 44 + combos = Combos() 45 + macros = Macros() 46 + holdtap = HoldTap() 47 + 48 + holdtap.tap_time = 300 49 + 50 + keyboard.modules =[layers, split, MediaKeys(), combos, macros, holdtap] 51 + 52 + # Cleaner key names 53 + _______ = KC.TRNS 54 + XXXXXXX = KC.NO 55 + DASHALT = KC.HT(KC.MINS, KC.LALT) 56 + 57 + def toggle_drive(keyboard): 58 + print('toggling usb drive') #serial feedback 59 + import microcontroller 60 + if microcontroller.nvm[0] == 0: 61 + microcontroller.nvm[0] = 1 62 + else: 63 + microcontroller.nvm[0] = 0 64 + 65 + ToggleDrive = KC.MACRO(toggle_drive, Press(KC.RESET)) 66 + 67 + combos.combos = [ 68 + Chord((KC.TAB, KC.BSPC, KC.SPACE), ToggleDrive), 69 + ] 70 + 71 + 72 + 73 + keyboard.keymap = [ 74 + [ #qwerty 75 + KC.TAB, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.BSPC, 76 + DASHALT, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT, 77 + KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.ENTER, 78 + KC.LGUI, KC.MO(2), KC.LCTRL, KC.SPACE, KC.MO(1), KC.BSLS, 79 + ], 80 + [ #navsymbol 81 + KC.ESC, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.HOME, KC.PGDOWN, KC.PGUP, KC.END, XXXXXXX, KC.DEL, 82 + XXXXXXX, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.LEFT, KC.DOWN, KC.UP, KC.RIGHT, XXXXXXX, XXXXXXX, 83 + KC.LSFT, KC.GRV, KC.EQL, KC.MINS, KC.LBRC, KC.RBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 84 + KC.LALT, KC.LGUI, KC.HYPR, KC.SPACE, _______, KC.RALT, 85 + ], 86 + [ #numpadFunc 87 + KC.TAB, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.PLUS, KC.N7, KC.N8, KC.N9, KC.P, KC.BSPC, 88 + KC.LCTL, KC.F6, KC.F7, KC.F8, KC.F9, KC.F10, KC.MINUS, KC.N4, KC.N5, KC.N6, XXXXXXX, XXXXXXX, 89 + KC.LSFT, KC.F11, KC.F12, KC.VOLD, KC.VOLU, KC.MUTE, KC.N0, KC.N1, KC.N2, KC.N3, XXXXXXX, KC.ENTER, 90 + KC.LALT, _______, KC.LCTRL, KC.DOT, KC.ASTR, KC.SLSH, 91 + ] 92 + ] 93 + # fmt:on 94 + 95 + if __name__ == '__main__': 96 + keyboard.go()