Skip to content

Instantly share code, notes, and snippets.

@takashicompany
Created January 16, 2023 18:29
Show Gist options
  • Save takashicompany/245604b8d9bf4081b02691f251ef2180 to your computer and use it in GitHub Desktop.
Save takashicompany/245604b8d9bf4081b02691f251ef2180 to your computer and use it in GitHub Desktop.
KMK Firmware for Gherkin
#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