Created
November 19, 2016 02:21
-
-
Save tckmn/ff1336948c8416113c5a5ce7666af1a5 to your computer and use it in GitHub Desktop.
Planck keymap (qmk)
This file contains 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
#include "planck.h" | |
#include "action_layer.h" | |
extern keymap_config_t keymap_config; | |
#define QWERTY 0 | |
#define PLOVER 1 | |
#define RAISE 2 | |
#define DEAD 3 | |
#define RAISE_DEAD 4 | |
#define NUMPAD 5 | |
#define FN 6 | |
enum planck_keycodes { | |
KC_QWERTY = SAFE_RANGE, | |
KC_PLOVER, | |
KC_RAISE, | |
KC_DEAD | |
}; | |
#define _______ KC_TRNS | |
#define XXXXXXX KC_NO | |
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
[QWERTY] = { | |
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, | |
{KC_RAISE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | |
{KC_DEAD, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSL(NUMPAD)}, | |
{KC_MUTE, KC_VOLD, KC_VOLU, KC_LGUI, KC_LCTL, KC_SPC, KC_ENT, KC_LSFT, KC_LALT, KC_PSCR, KC_RCTL, OSL(FN)} | |
}, | |
[PLOVER] = { | |
{XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, | |
{XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | |
{XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX}, | |
{KC_QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, KC_C, KC_V, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} | |
}, | |
[RAISE] = { | |
{KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE}, | |
{_______, KC_TAB, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_GRV, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, | |
{KC_DEAD, XXXXXXX, KC_PGUP, KC_HOME, KC_END, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, | |
// TODO mute mic and brightness buttons | |
{XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX} | |
}, | |
// TODO | |
[DEAD] = { | |
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | |
{KC_RAISE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | |
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | |
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | |
}, | |
// TODO | |
[RAISE_DEAD] = { | |
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | |
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | |
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | |
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | |
}, | |
[NUMPAD] = { | |
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PSLS, XXXXXXX}, | |
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PAST, XXXXXXX}, | |
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PMNS, _______}, | |
{XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P0, KC_PDOT, KC_PENT, KC_PPLS, XXXXXXX} | |
}, | |
[FN] = { | |
{KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, | |
{MAGIC_TOGGLE_NKRO,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_TOGG}, | |
{RESET, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_STEP}, | |
{KC_PLOVER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______} | |
}, | |
}; | |
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |
switch (keycode) { | |
case KC_RAISE: | |
if (record->event.pressed) { | |
layer_on(RAISE); | |
update_tri_layer(RAISE, DEAD, RAISE_DEAD); | |
} else { | |
layer_off(RAISE); | |
update_tri_layer(RAISE, DEAD, RAISE_DEAD); | |
} | |
return false; | |
case KC_DEAD: | |
if (record->event.pressed) { | |
layer_on(DEAD); | |
update_tri_layer(RAISE, DEAD, RAISE_DEAD); | |
} else { | |
layer_off(DEAD); | |
update_tri_layer(RAISE, DEAD, RAISE_DEAD); | |
} | |
return false; | |
case KC_PLOVER: | |
if (record->event.pressed) { | |
layer_off(FN); | |
layer_on(PLOVER); | |
keymap_config.nkro = 1; | |
register_code(KC_A); | |
register_code(KC_S); | |
register_code(KC_D); | |
register_code(KC_F); | |
unregister_code(KC_A); | |
unregister_code(KC_S); | |
unregister_code(KC_D); | |
unregister_code(KC_F); | |
} | |
return false; | |
case KC_QWERTY: | |
if (record->event.pressed) { | |
layer_off(PLOVER); | |
layer_on(QWERTY); | |
register_code(KC_A); | |
register_code(KC_S); | |
register_code(KC_D); | |
register_code(KC_F); | |
unregister_code(KC_A); | |
unregister_code(KC_S); | |
unregister_code(KC_D); | |
unregister_code(KC_F); | |
} | |
return false; | |
} | |
return true; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment