Skip to content

Instantly share code, notes, and snippets.

@arai-ta
Last active December 23, 2022 14:44
Show Gist options
  • Save arai-ta/8113c765650b3d5526e720da68a1eba3 to your computer and use it in GitHub Desktop.
Save arai-ta/8113c765650b3d5526e720da68a1eba3 to your computer and use it in GitHub Desktop.
Plancky handmade keyboard firmware based on PRK Firmware
puts "=== Plancky ==="
kbd = Keyboard.new
kbd.init_pins(
[ 21, 23, 20, 22 ],
[ 26, 27, 28, 29, 9, 8, 7, 6, 5, 4, 3, 2 ]
)
kbd.add_layer :default, %i[
KC_TAB KC_Q KC_W KC_E KC_R KC_T KC_Y KC_U KC_I KC_O KC_P KC_MINS
ES_CTRL KC_A KC_S KC_D KC_F KC_G KC_H KC_J KC_K KC_L KC_SCOLON KC_BSPC
KC_LSFT KC_Z KC_X KC_C KC_V KC_B KC_N KC_M KC_COMM KC_DOT KC_SLSH KC_ENTER
BS_FUNC KC_ESC KC_LALT KC_LGUI LE_NUMB SP_CURS XXXXXXXX LK_SYMB KC_LEFT KC_DOWN KC_UP KC_RIGHT
]
kbd.add_layer :number, %i[
KC_TAB KC_1 KC_2 KC_3 KC_4 KC_5 KC_6 KC_7 KC_8 KC_9 KC_0 KC_MINS
ES_CTRL XXXXXXXX XXXXXXXX SS_ALL SS_PART XXXXXXXX XXXXXXXX KC_4 KC_5 KC_6 XXXXXXXX KC_BSPC
KC_LSFT XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX KC_0 KC_1 KC_2 KC_3 XXXXXXXX KC_ENTER
BS_FUNC XXXXXXXX KC_LALT KC_LGUI LE_NUMB SP_CURS XXXXXXXX LK_SYMB KC_LEFT KC_DOWN KC_UP KC_RIGHT
]
kbd.add_layer :symbol, %i[
KC_TAB KC_EXLM KC_AT KC_HASH KC_DLR KC_PERC KC_CIRC KC_AMPR KC_ASTER KC_LPRN KC_RPRN KC_TILD
ES_CTRL XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX KC_MINUS KC_EQL KC_LBRC KC_RBRC KC_BSLS KC_QUOTE
KC_LSFT XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX KC_UNDS KC_PLUS KC_LCBR KC_RCBR KC_PIPE KC_DQUO
BS_FUNC XXXXXXXX KC_LALT KC_LGUI LE_NUMB SP_CURS XXXXXXXX LK_SYMB KC_LEFT KC_DOWN KC_UP KC_GRAVE
]
kbd.add_layer :function, %i[
KC_TAB KC_F1 KC_F2 KC_F3 KC_F4 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX KC_MINS
ES_CTRL KC_F5 KC_F6 KC_F7 KC_F8 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX KC_BSPC
KC_LSFT KC_F9 KC_F10 KC_F11 KC_F12 XXXXXXXX XXXXXXXX KC_MUTE KC_VOLDOWN KC_VOLUP XXXXXXXX KC_ENTER
BS_FUNC XXXXXXXX KC_LALT KC_LGUI LE_NUMB SP_CURS XXXXXXXX LK_SYMB KC_LEFT KC_DOWN KC_UP KC_RIGHT
]
kbd.add_layer :cursor, %i[
KC_TAB KC_HOME WORD_FWD WORD_BACK XXXXXXXX XXXXXXXX XXXXXXXX KC_PGUP PAGE_NEXT PAGE_PREV XXXXXXXX KC_MINS
ES_CTRL XXXXXXXX XXXXXXXX KC_PGDOWN XXXXXXXX KC_END KC_LEFT KC_DOWN KC_UP KC_RIGHT XXXXXXXX KC_BSPC
KC_LSFT XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX KC_ENTER XXXXXXXX XXXXXXXX XXXXXXXX KC_ENTER
BS_FUNC XXXXXXXX KC_LALT KC_LGUI LE_NUMB SP_CURS XXXXXXXX LK_SYMB KC_LEFT KC_DOWN KC_UP KC_RIGHT
]
kbd.define_composite_key :PAGE_NEXT, %i(KC_LGUI KC_RBRACKET) # next page
kbd.define_composite_key :PAGE_PREV, %i(KC_LGUI KC_LBRACKET) # previous page
kbd.define_composite_key :WORD_FWD , %i(KC_LALT KC_RIGHT) # move forward by 1 word
kbd.define_composite_key :WORD_BACK, %i(KC_LALT KC_LEFT) # move back by 1 word
kbd.define_composite_key :SS_ALL, %i(KC_LGUI KC_LSFT KC_3) # screenshot all
kbd.define_composite_key :SS_PART, %i(KC_LGUI KC_LSFT KC_4) # screenshot partial
kbd.define_mode_key :BS_FUNC, [ :KC_BSPC, :function, 300, nil ]
kbd.define_mode_key :ES_CTRL, [ :KC_ESC, :KC_LCTL, 300, nil ]
kbd.define_mode_key :LE_NUMB, [ :KC_LANG2, :number, 300, nil ]
kbd.define_mode_key :LK_SYMB, [ :KC_LANG1, :symbol, 300, nil ]
kbd.define_mode_key :SP_CURS, [ :KC_SPC, :cursor, 200, nil ]
kbd.start!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment