2 #include QMK_KEYBOARD_H
4 // Each layer gets a name for readability, which is then used in the keymap matrix below.
5 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
6 // Layer names don't all need to be of the same length, obviously, and you can also skip them
7 // entirely and just use numbers.
15 #define RGB_SPC LT(_RGB, KC_SPC)
17 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
18 [_QW
] = LAYOUT_planck_grid( /* Qwerty */
19 KC_TAB
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_BSPC
,
20 KC_ESC
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
,
21 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, KC_ENT
,
22 M(0), KC_LCTL
, KC_LALT
, KC_LGUI
, MO(_LW
), RGB_SPC
, RGB_SPC
, MO(_RS
), KC_LEFT
, KC_DOWN
, KC_UP
, KC_RGHT
24 [_CM
] = LAYOUT_planck_grid( /* Colemak */
25 KC_TAB
, KC_Q
, KC_W
, KC_F
, KC_P
, KC_G
, KC_J
, KC_L
, KC_U
, KC_Y
, KC_SCLN
, KC_BSPC
,
26 KC_ESC
, KC_A
, KC_R
, KC_S
, KC_T
, KC_D
, KC_H
, KC_N
, KC_E
, KC_I
, KC_O
, KC_QUOT
,
27 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_K
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, KC_ENT
,
28 M(0), KC_LCTL
, KC_LALT
, KC_LGUI
, MO(_LW
), RGB_SPC
, RGB_SPC
, MO(_RS
), KC_LEFT
, KC_DOWN
, KC_UP
, KC_RGHT
30 [_DV
] = LAYOUT_planck_grid( /* Dvorak */
31 KC_TAB
, KC_QUOT
, KC_COMM
, KC_DOT
, KC_P
, KC_Y
, KC_F
, KC_G
, KC_C
, KC_R
, KC_L
, KC_BSPC
,
32 KC_ESC
, KC_A
, KC_O
, KC_E
, KC_U
, KC_I
, KC_D
, KC_H
, KC_T
, KC_N
, KC_S
, KC_SLSH
,
33 KC_LSFT
, KC_SCLN
, KC_Q
, KC_J
, KC_K
, KC_X
, KC_B
, KC_M
, KC_W
, KC_V
, KC_Z
, KC_ENT
,
34 M(0), KC_LCTL
, KC_LALT
, KC_LGUI
, MO(_LW
), RGB_SPC
, RGB_SPC
, MO(_RS
), KC_LEFT
, KC_DOWN
, KC_UP
, KC_RGHT
36 [_RS
] = LAYOUT_planck_grid( /* RAISE */
37 KC_GRV
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, KC_BSPC
,
38 KC_TRNS
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_MINS
, KC_EQL
, KC_LBRC
, KC_RBRC
, KC_BSLS
,
39 KC_TRNS
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, DF(_QW
), DF(_CM
), DF(_DV
), RESET
, KC_TRNS
,
40 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_MNXT
, KC_VOLD
, KC_VOLU
, KC_MPLY
42 [_LW
] = LAYOUT_planck_grid( /* LOWER */
43 KC_TILD
, KC_EXLM
, KC_AT
, KC_HASH
, KC_DLR
, KC_PERC
, KC_CIRC
, KC_AMPR
, KC_ASTR
, KC_LPRN
, KC_RPRN
, KC_BSPC
,
44 KC_TRNS
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_UNDS
, KC_PLUS
, KC_LCBR
, KC_RCBR
, KC_PIPE
,
45 KC_TRNS
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, DF(_QW
), DF(_CM
), DF(_DV
), RESET
, KC_TRNS
,
46 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_MNXT
, KC_VOLD
, KC_VOLU
, KC_MPLY
48 [_RGB
] = LAYOUT_planck_grid( /* RGBLIGHT */
49 KC_TRNS
, KC_PGUP
, KC_UP
, KC_PGDN
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_DEL
,
50 KC_TRNS
, KC_LEFT
, KC_DOWN
, KC_RGHT
, KC_TRNS
, KC_HOME
, KC_LEFT
, KC_DOWN
, KC_UP
, KC_RGHT
, KC_END
, KC_TRNS
,
51 KC_TRNS
, RGB_TOG
, RGB_MOD
, RGB_HUI
, RGB_HUD
, RGB_SAI
, RGB_SAD
, RGB_VAI
, RGB_VAD
, KC_TRNS
, KC_TRNS
, KC_TRNS
,
52 KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
, KC_TRNS
57 const macro_t
*action_get_macro(keyrecord_t
*record
, uint8_t id
, uint8_t opt
)
59 // MACRODOWN only works in this function
62 if (record
->event
.pressed
) {
63 register_code(KC_RSFT
);
64 #ifdef BACKLIGHT_ENABLE
68 unregister_code(KC_RSFT
);