Created
January 16, 2023 18:29
-
-
Save takashicompany/245604b8d9bf4081b02691f251ef2180 to your computer and use it in GitHub Desktop.
KMK Firmware for Gherkin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#PiPi-GHERKIN - Raspberry Pi PICO | |
import board | |
from kmk.keys import KC | |
from kmk.kmk_keyboard import KMKKeyboard | |
from kmk.matrix import DiodeOrientation | |
from kmk.hid import HIDModes | |
from kmk.modules.layers import Layers # ←追加 | |
from kmk.modules.modtap import ModTap # ←追加 | |
# from kmk.modules.tapdance import TapDance | |
gherkin = KMKKeyboard() | |
layers = Layers() | |
layers.tap_time = 125 | |
gherkin.modules.append(layers) # ←追加 | |
gherkin.modules.append(ModTap()) # ←追加 | |
# tapdance = TapDance() | |
# tapdance.tap_time = 50 | |
# gherkin.modules.append(tapdance) | |
gherkin.col_pins = (board.GP2, board.GP3, board.GP4, board.GP5, board.GP6, board.GP7) | |
gherkin.row_pins = (board.GP8, board.GP9, board.GP10, board.GP11, board.GP12) | |
#Rotate gherkin so USB on Right Side. Not needed if USB on Left Side. | |
# gherkin.col_pins = tuple(reversed(gherkin.col_pins)) | |
# gherkin.row_pins = tuple(reversed(gherkin.row_pins)) | |
gherkin.diode_orientation = DiodeOrientation.COLUMNS | |
gherkin.debug_enabled = False | |
gherkin.keymap = [ | |
[ | |
KC.LT(3, KC.Q), KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, | |
KC.A, KC.S, KC.LT(2, KC.D), KC.F, KC.G, KC.H, KC.J, KC.LT(2, KC.K), KC.L, KC.ENT, | |
KC.MT(KC.Z, KC.LSFT), KC.MT(KC.X, KC.LALT), KC.MT(KC.C, KC.LGUI), KC.LT(1, KC.V), KC.B, KC.N, KC.LT(1, KC.M), KC.COMMA, KC.MT(KC.DOT, KC.LCTRL), KC.BSPC, | |
], | |
[ | |
KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, | |
KC.MT(KC.EQL, KC.LCTRL), KC.LBRC, KC.SLSH, KC.MINS, KC.RO, KC.SCLN, KC.QUOT, KC.RBRC, KC.NUHS, KC.JYEN, | |
KC.LSFT, KC.LALT, KC.LGUI, KC.LANG2, KC.SPC, KC.SPC, KC.LANG1, KC.TRNS, KC.TRNS, KC.TRNS, | |
], | |
[ | |
KC.NO, KC.TAB, KC.NO, KC.NO, KC.NO, KC.NO, KC.MO, KC.UP, KC.NO, KC.NO, | |
KC.NO, KC.NO, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.LEFT, KC.DOWN, KC.RGHT, KC.GRV, | |
KC.LSFT, KC.TRNS, KC.TRNS, KC.LANG2, KC.SPC, KC.SPC, KC.LANG1, KC.TRNS, KC.TRNS, KC.TRNS, | |
], | |
[ | |
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC, KC.BSLS, | |
KC.TAB, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.COMM, KC.DOT, KC.SLSH, KC.SCLN, KC.QUOT, | |
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT, | |
], | |
[ | |
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.UNDS, KC.PLUS, KC.LCBR, KC.RCBR, KC.PIPE, | |
KC.TAB, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.LABK, KC.RABK, KC.QUES, KC.COLN, KC.DQUO, | |
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.HOME, KC.PGDN, KC.PGUP, KC.END, | |
], | |
[ | |
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, | |
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, | |
KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, KC.TRNS, | |
], | |
] | |
if __name__ == '__main__': | |
gherkin.go(hid_type=HIDModes.USB) #Wired USB enable | |
# ["KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0", | |
# "LCTL_T(KC_EQL)","KC_LBRC","KC_SLSH","KC_MINS","KC_RO","KC_SCLN","KC_QUOT","KC_RBRC","KC_NUHS","KC_JYEN", | |
# "KC_LSFT","KC_LGUI","KC_LALT","KC_LANG2","KC_LSFT","KC_SPC","KC_LANG1","KC_TRNS","KC_TRNS","KC_DEL", | |
# "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | |
# ["KC_ESC","KC_TAB","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_UP","KC_NO","KC_NO", | |
# "KC_LCTL","KC_TRNS","KC_QUES","KC_EXLM","KC_NO","KC_NO","KC_LEFT","KC_DOWN","KC_RGHT","KC_NO", | |
# "KC_LSFT","KC_LGUI","KC_LALT","KC_LANG2","KC_TRNS","KC_NO","KC_LANG1","KC_NO","KC_NO","KC_DEL", | |
# "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | |
# ["KC_NO","KC_TAB","KC_NO","KC_NO","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6", | |
# "KC_NO","KC_NO","KC_NO","KC_NO","KC_F7","KC_F8","KC_F9","KC_F10","KC_F11","KC_F12", | |
# "KC_LSFT","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_NO","MO(4)","MO(5)", | |
# "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | |
# ["RGB_TOG","RGB_MOD","RGB_HUI","RGB_SAI","RGB_VAI","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO", | |
# "RGB_M_P","RGB_M_B","RGB_M_R","RGB_M_SW","RGB_M_SN","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO", | |
# "RGB_M_K","RGB_M_X","RGB_M_G","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO", | |
# "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | |
# ["KC_NO","BLE_DIS","BLE_EN","SEL_BLE","USB_DIS","USB_EN","SEL_USB","KC_NO","KC_NO","BATT_LV", | |
# "ADV_ID0","ADV_ID1","ADV_ID2","ADV_ID3","ADV_ID4","ADV_ID5","ADV_ID6","ADV_ID7","AD_WO_L","KC_NO", | |
# "ENT_DFU","ENT_WEB","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS", | |
# [["LT(6,KC_Q)","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P", | |
# "KC_A","KC_S","LT(5,KC_D)","KC_F","KC_G","KC_H","KC_J","LT(5,KC_K)","KC_L","KC_ENT", | |
# "LSFT_T(KC_Z)","LGUI_T(KC_X)","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","LCTL_T(KC_DOT)","KC_BSPC", | |
# "LALT_T(KC_LANG2)","LSFT_T(KC_TAB)","KC_SPC","LT(1,KC_LANG1)"], | |
# ["KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0", | |
# "LCTL_T(KC_EQL)","KC_LBRC","KC_SLSH","KC_MINS","KC_RO","KC_SCLN","KC_QUOT","KC_RBRC","KC_NUHS","KC_JYEN", | |
# "KC_LSFT","KC_LGUI","KC_LALT","KC_LANG2","KC_LSFT","KC_SPC","KC_LANG1","KC_TRNS","KC_TRNS","KC_DEL", | |
# "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | |
# ["LT(6,KC_Q)","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P", | |
# "KC_A","KC_S","LT(5,KC_D)","KC_F","KC_G","KC_H","KC_J","LT(5,KC_K)","KC_L","KC_ENT", | |
# "LSFT_T(KC_Z)","LGUI_T(KC_X)","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","LCTL_T(KC_DOT)","KC_BSPC", | |
# "LALT_T(KC_LANG2)","LSFT_T(KC_TAB)","KC_SPC","LT(3,KC_LANG1)"], | |
# ["KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0", | |
# "KC_CIRC","KC_AT","KC_SLSH","KC_MINS","KC_UNDS","KC_SCLN","KC_COLN","KC_LBRC","KC_RBRC","KC_JYEN", | |
# "MO(4)","KC_LGUI","KC_LALT","KC_LANG2","KC_LSFT","KC_SPC","KC_LANG1","KC_TRNS","KC_TRNS","KC_DEL", | |
# "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | |
# ["KC_EXLM","KC_DQUO","KC_HASH","KC_DLR","KC_PERC","KC_AMPR","KC_QUOT","KC_LPRN","KC_RPRN","KC_0", | |
# "KC_TILD","KC_GRV","KC_QUES","KC_EQL","KC_UNDS","KC_PLUS","KC_ASTR","KC_LCBR","KC_RCBR","KC_PIPE", | |
# "KC_LSFT","KC_LGUI","KC_LALT","KC_LANG2","KC_LSFT","KC_SPC","KC_LANG1","KC_TRNS","KC_TRNS","KC_DEL", | |
# "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | |
# ["KC_ESC","KC_TAB","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_UP","KC_NO","KC_NO", | |
# "KC_LCTL","KC_TRNS","KC_QUES","KC_EXLM","KC_NO","KC_NO","KC_LEFT","KC_DOWN","KC_RGHT","KC_NO", | |
# "KC_LSFT","KC_LGUI","KC_LALT","KC_LANG2","KC_TRNS","KC_NO","KC_LANG1","KC_NO","KC_NO","KC_DEL", | |
# "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | |
# ["KC_NO","KC_TAB","KC_NO","KC_NO","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6", | |
# "KC_NO","KC_NO","KC_NO","KC_NO","KC_F7","KC_F8","KC_F9","KC_F10","KC_F11","KC_F12", | |
# "KC_LSFT","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_NO","MO(7)","MO(8)", | |
# "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | |
# ["RGB_TOG","RGB_MOD","RGB_HUI","RGB_SAI","RGB_VAI","KC_NO","KC_NO","KC_NO","DF(0)","DF(2)", | |
# "RGB_M_P","RGB_M_B","RGB_M_R","RGB_M_SW","RGB_M_SN","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO", | |
# "RGB_M_K","RGB_M_X","RGB_M_G","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO", | |
# "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"], | |
# ["KC_NO","BLE_DIS","BLE_EN","SEL_BLE","USB_DIS","USB_EN","SEL_USB","KC_NO","KC_NO","BATT_LV", | |
# "ADV_ID0","ADV_ID1","ADV_ID2","ADV_ID3","ADV_ID4","ADV_ID5","ADV_ID6","ADV_ID7","AD_WO_L","KC_NO", | |
# "ENT_DFU","ENT_WEB","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS", | |
# "KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"]]} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment