79 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import board
 | 
						|
import busio
 | 
						|
from digitalio import DigitalInOut, Direction, Pull
 | 
						|
 | 
						|
from adafruit_mcp230xx.mcp23017 import MCP23017
 | 
						|
 | 
						|
from kmk.hid import HIDModes
 | 
						|
from kmk.keys import KC
 | 
						|
from kmk.kmk_keyboard import KMKKeyboard
 | 
						|
from kmk.modules.layers import Layers
 | 
						|
from kmk.scanners import DiodeOrientation
 | 
						|
 | 
						|
# DEBUG_ENABLE = True
 | 
						|
 | 
						|
i2c = busio.I2C(scl=board.SCL, sda=board.SDA, frequency=100000)
 | 
						|
mcp = MCP23017(i2c, address=0x20)
 | 
						|
keyboard = KMKKeyboard()
 | 
						|
layer_ext = Layers
 | 
						|
keyboard.modules = [layer_ext]
 | 
						|
 | 
						|
_______ = KC.TRNS
 | 
						|
XXXXXXX = KC.NO
 | 
						|
 | 
						|
FN = KC.MO(1)
 | 
						|
 | 
						|
keyboard.debug_enabled = True
 | 
						|
 | 
						|
keyboard.col_pins = (mcp.get_pin(8), mcp.get_pin(9), mcp.get_pin(10), mcp.get_pin(11), mcp.get_pin(12), mcp.get_pin(13), mcp.get_pin(14), mcp.get_pin(15), mcp.get_pin(4), mcp.get_pin(5), mcp.get_pin(6), mcp.get_pin(7), mcp.get_pin(3), mcp.get_pin(2), mcp.get_pin(1))
 | 
						|
keyboard.row_pins = (board.D7, board.D6, board.D5, board.D3, board.D2)
 | 
						|
keyboard.diode_orientation = DiodeOrientation.COLUMNS
 | 
						|
 | 
						|
keyboard.keymap = [
 | 
						|
    # Qwerty
 | 
						|
    # ,--------------------------------------------------------------------------------------------------------.
 | 
						|
    # |   `  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |   -  |   =  | Bksp | Del  |
 | 
						|
    # |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 | 
						|
    # | Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |   [  |   ]  |   \  | PgUp |
 | 
						|
    # |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
 | 
						|
    # | Esc  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |   '  |      |Enter | PgDn |
 | 
						|
    # |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 | 
						|
    # | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |Shift |      |  Up  | Ins  |
 | 
						|
    # |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 | 
						|
    # | Ctrl | GUI |  Alt  |      |      |Space |      |      |  Fn  | Alt  | Ctrl | Left |      | Down | Right|
 | 
						|
    # `------------------------------------------------------------------------------------------+------+------'
 | 
						|
    [
 | 
						|
        KC.GRV,  KC.N1,   KC.N2,   KC.N3,   KC.N4,     KC.N5,   KC.N6,   KC.N7,   KC.N8,   KC.N9,   KC.N0,   KC.MINS, KC.EQUAL, KC.BSPC,   KC.DEL,
 | 
						|
        KC.TAB,  KC.Q,    KC.W,    KC.E,    KC.R,      KC.T,    KC.Y,    KC.U,    KC.I,    KC.O,    KC.P,    KC.LBRC, KC.RBRC,  KC.BSLASH, KC.PGUP,
 | 
						|
        KC.ESC,  KC.A,    KC.S,    KC.D,    KC.F,      KC.G,    KC.H,    KC.J,    KC.K,    KC.L,    KC.SCLN, KC.QUOT, XXXXXXX,  KC.ENTER,  KC.PGDN,
 | 
						|
        KC.LSFT, KC.Z,    KC.X,    KC.C,    KC.V,      KC.B,    KC.N,    KC.M,    KC.COMM, KC.DOT,  KC.SLSH, KC.RSFT, XXXXXXX,  KC.UP,     KC.INS,
 | 
						|
        KC.LCTL, KC.LGUI, KC.LALT, XXXXXXX, XXXXXXX,   KC.SPC,  XXXXXXX, XXXXXXX, FN,      KC.RALT, KC.RCTL, KC.LEFT, XXXXXXX,  KC.DOWN,   KC.RIGHT,
 | 
						|
    ],
 | 
						|
 | 
						|
 | 
						|
    # Functions
 | 
						|
    # ,--------------------------------------------------------------------------------------------------------.
 | 
						|
    # |      |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |      | CLR* |
 | 
						|
    # |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 | 
						|
    # | Tab  |      |      |      |      |      |      |      |      |Print |      |Pause | Calc |      | BrUp |
 | 
						|
    # |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
 | 
						|
    # | Esc  |      |      |      |      |      |      |      |      |      |      |      |      |      | BrDn |
 | 
						|
    # |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 | 
						|
    # | Shift|      | Play | Stop | Prev | Next | VolDn| VolUp| Mute |      |      |Shift |      |LedUp |      |
 | 
						|
    # |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
 | 
						|
    # | Ctrl | GUI |  Alt  |      |      |Space |      |      |  Fn  | Alt  | Ctrl | BTPrv|      |LedDn | BTNxt|
 | 
						|
    # `------------------------------------------------------------------------------------------+------+------'
 | 
						|
    # CLR: Clear bonds
 | 
						|
    [
 | 
						|
        XXXXXXX, KC.F1,   KC.F2,   KC.F3,   KC.F4,    KC.F5,   KC.F6,   KC.F7,   KC.F8,   KC.F9,   KC.F10,  KC.F11,    KC.F12,  XXXXXXX, KC.BT_CLR,
 | 
						|
        KC.TAB,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.PSCR, XXXXXXX, KC.PAUSE,  _______, XXXXXXX, _______,
 | 
						|
        KC.ESC,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,   XXXXXXX, XXXXXXX, _______,
 | 
						|
        KC.LSFT, XXXXXXX, KC.MPLY, KC.MSTP, KC.MPRV,  KC.MNXT, KC.VOLD, KC.VOLU, KC.MUTE, XXXXXXX, XXXXXXX, KC.RSFT,   XXXXXXX, _______, XXXXXXX,
 | 
						|
        KC.LCTL, KC.LGUI, KC.LALT, XXXXXXX, XXXXXXX,  KC.SPC,  XXXXXXX, XXXXXXX, FN,      KC.RALT, KC.RCTL, KC.BT_PRV, XXXXXXX, _______, KC.BT_NXT,
 | 
						|
    ],
 | 
						|
]
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    keyboard.go(hid_type=HIDModes.BLE, ble_name='Lab68')
 | 
						|
    # keyboard.go(hid_type=HIDModes.USB)
 |