1 // Can't Remember Sh*t Keymap for Planck
2 // http://www.keyboard-layout-editor.com/#/gists/c6c0ac051b2b118a34ef84ebadab54c7
4 #include QMK_KEYBOARD_H
6 extern keymap_config_t keymap_config
;
20 enum planck_keycodes
{
31 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
34 * ,-----------------------------------------------------------------------------------.
35 * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
36 * |------+------+------+------+------+-------------+------+------+------+------+------|
37 * | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
38 * |------+------+------+------+------+------|------+------+------+------+------+------|
39 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
40 * |------+------+------+------+------+------+------+------+------+------+------+------|
41 * | Ctrl | GUI | \ | Alt | Lower| Space |Raise | [ | - | = | ] |
42 * `-----------------------------------------------------------------------------------'
44 [_QWERTY
] = LAYOUT_planck_grid(
45 KC_ESC
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_BSPC
,
46 KC_TAB
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
,
47 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, SFT_T(KC_ENT
) ,
48 KC_LCTL
, KC_LGUI
, KC_BSLS
, KC_LALT
, LOWER
, KC_SPC
, KC_SPC
, RAISE
, LT(_LOWER
, KC_LBRC
), KC_MINS
, KC_EQL
, MT(MOD_RCTL
, KC_RBRC
)
52 * ,-----------------------------------------------------------------------------------.
53 * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
54 * |------+------+------+------+------+-------------+------+------+------+------+------|
55 * | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
56 * |------+------+------+------+------+------|------+------+------+------+------+------|
57 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
58 * |------+------+------+------+------+------+------+------+------+------+------+------|
59 * | Ctrl | GUI | \ | Alt | Lower| Space |Raise | Left | Down | Up | Right|
60 * `-----------------------------------------------------------------------------------'
62 [_ARROW
] = LAYOUT_planck_grid(
63 KC_ESC
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_BSPC
,
64 KC_TAB
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
,
65 KC_LSFT
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, SFT_T(KC_ENT
) ,
66 KC_LCTL
, KC_LGUI
, KC_BSLS
, KC_LALT
, LOWER
, KC_SPC
, KC_SPC
, RAISE
, KC_LEFT
, KC_DOWN
, KC_UP
, KC_RIGHT
71 * ,-----------------------------------------------------------------------------------.
72 * | 1 | Q | W | E | R | T | Y | U | I | O | P | Bksp |
73 * |------+------+------+------+------+-------------+------+------+------+------+------|
74 * |Shift | A | S | D | F | G | H | J | K | L | ; | ' |
75 * |------+------+------+------+------+------|------+------+------+------+------+------|
76 * | Ctrl | Z | X | C | V | B | N | M | , | . | / |Enter |
77 * |------+------+------+------+------+------+------+------+------+------+------+------|
78 * | Alt | 4 | 3 | 2 | Lower| Space |Raise | Left | Down | Up | Right|
79 * `-----------------------------------------------------------------------------------'
81 [_GAME
] = LAYOUT_planck_grid(
82 KC_1
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_BSPC
,
83 KC_LSFT
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
,
84 KC_LCTL
, KC_Z
, KC_X
, KC_C
, KC_V
, KC_B
, KC_N
, KC_M
, KC_COMM
, KC_DOT
, KC_SLSH
, _______
,
85 KC_LALT
, KC_4
, KC_3
, KC_2
, LOWER
, KC_SPC
, KC_SPC
, RAISE
, KC_LEFT
, KC_DOWN
, KC_UP
, KC_RIGHT
89 /* Lower (switched to # because KP# were weird in terminal emulators)
90 * ,-----------------------------------------------------------------------------------.
91 * | Del | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
92 * |------+------+------+------+------+-------------+------+------+------+------+------|
93 * | Tab | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | . | * |
94 * |------+------+------+------+------+------+------+------+------+------+------+------|
95 * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | / |Enter |
96 * |------+------+------+------+------+------+------+------+------+------+------+------|
97 * | Esc | | | | | 0 | | | | KP_+ | |
98 * `-----------------------------------------------------------------------------------'
100 [_LOWER
] = LAYOUT_planck_grid(
101 KC_DEL
, KC_1
, KC_2
, KC_3
, KC_4
, KC_5
, KC_6
, KC_7
, KC_8
, KC_9
, KC_0
, _______
,
102 _______
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_4
, KC_5
, KC_6
, KC_DOT
, KC_ASTR
,
103 _______
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, KC_1
, KC_2
, KC_3
, KC_SLSH
, _______
,
104 KC_ESC
, _______
, _______
, _______
, _______
, KC_0
, KC_0
, _______
, _______
, _______
, KC_PLUS
, _______
108 * ,-----------------------------------------------------------------------------------.
109 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
110 * |------+------+------+------+------+-------------+------+------+------+------+------|
111 * | Del | Wh Up|RightC| M-Up | LeftC|QWERTY| Left | Down | Up | Right| | | ` |
112 * |------+------+------+------+------+------|------+------+------+------+------+------|
113 * | | Wh Dn| M-L | M-Dn | M-R | | - | = | [ | ] | \ | |
114 * |------+------+------+------+------+------+------+------+------+------+------+------|
115 * | | App | | | | Ins | | Home | PGDN | PGUP | End |
116 * `-----------------------------------------------------------------------------------'
118 [_RAISE
] = LAYOUT_planck_grid(
119 KC_TILD
, KC_EXLM
, KC_AT
, KC_HASH
, KC_DLR
, KC_PERC
, KC_CIRC
, KC_AMPR
, KC_ASTR
, KC_LPRN
, KC_RPRN
, KC_DEL
,
120 KC_DEL
, KC_WH_U
, KC_BTN2
, KC_MS_U
, KC_BTN1
, QWERTY
, KC_LEFT
, KC_DOWN
, KC_UP
, KC_RGHT
, KC_PIPE
, KC_GRV
,
121 _______
, KC_WH_D
, KC_MS_L
, KC_MS_D
, KC_MS_R
, _______
, KC_MINS
, KC_EQL
, KC_LBRC
, KC_RBRC
, KC_BSLASH
, _______
,
122 _______
, KC_APP
, _______
, _______
, _______
, KC_INS
, KC_INS
, _______
, KC_HOME
, KC_PGDN
, KC_PGUP
, KC_END
125 /* Plover layer (http://opensteno.org)
126 * ,-----------------------------------------------------------------------------------.
127 * | # | # | # | # | # | # | # | # | # | # | # | # |
128 * |------+------+------+------+------+-------------+------+------+------+------+------|
129 * | | S | T | P | H | * | * | F | P | L | T | D |
130 * |------+------+------+------+------+------|------+------+------+------+------+------|
131 * | | S | K | W | R | * | * | R | B | G | S | Z |
132 * |------+------+------+------+------+------+------+------+------+------+------+------|
133 * | Exit | | | A | O | | E | U | | | |
134 * `-----------------------------------------------------------------------------------'
137 [_PLOVER
] = LAYOUT_planck_grid(
138 KC_1
, KC_1
, KC_1
, KC_1
, KC_1
, KC_1
, KC_1
, KC_1
, KC_1
, KC_1
, KC_1
, KC_1
,
139 XXXXXXX
, KC_Q
, KC_W
, KC_E
, KC_R
, KC_T
, KC_Y
, KC_U
, KC_I
, KC_O
, KC_P
, KC_LBRC
,
140 XXXXXXX
, KC_A
, KC_S
, KC_D
, KC_F
, KC_G
, KC_H
, KC_J
, KC_K
, KC_L
, KC_SCLN
, KC_QUOT
,
141 EXT_PLV
, XXXXXXX
, XXXXXXX
, KC_C
, KC_V
, XXXXXXX
, XXXXXXX
, KC_N
, KC_M
, XXXXXXX
, XXXXXXX
, XXXXXXX
144 /* Adjust (Lower + Raise)
145 * ,-----------------------------------------------------------------------------------.
146 * | C-A-I|Qwerty| | |Reset |Macro0| | | | |PLOVER|C-A-D |
147 * |------+------+------+------+------+-------------+------+------+------+------+------|
148 * | Caps | Arrow| |Aud on|Audoff| Game |AGswap|AGnorm| PrtSc|ScrLck| Break| |
149 * |------+------+------+------+------+------|------+------+------+------+------+------|
150 * | |Voice-|Voice+|Mus on|Musoff| Prev | Next | Mute | VolDn| VolUp| | |
151 * |------+------+------+------+------+------+------+------+------+------+------+------|
152 * | Brite| | | | | Play/Pause | | BL_T |BL_DEC|BL_INC|BL_ST |
153 * `-----------------------------------------------------------------------------------'
155 [_ADJUST
] = LAYOUT_planck_grid(
156 LALT(LCTL(KC_INS
)), QWERTY
, _______
, _______
, RESET
, M(0), _______
, _______
, _______
, _______
, PLOVER
, LALT(LCTL(KC_DEL
)),
157 KC_CAPS
, ARROW
, _______
, AU_ON
, AU_OFF
, GAME
, AG_SWAP
, AG_NORM
, KC_PSCR
, KC_SLCK
, KC_PAUS
, _______
,
158 _______
, MUV_DE
, MUV_IN
, MU_ON
, MU_OFF
, KC_MPRV
, KC_MNXT
, KC_MUTE
, KC_VOLD
, KC_VOLU
, _______
, _______
,
159 BACKLIT
, _______
, _______
, _______
, _______
, KC_MPLY
, KC_MPLY
, _______
, BL_TOGG
, BL_DEC
, BL_INC
, BL_STEP
165 const macro_t
*action_get_macro(keyrecord_t
*record
, uint8_t id
, uint8_t opt
) // this is the function signature -- just copy/paste it into your keymap file as it is.
168 case 0: // this would trigger when you hit a key mapped as M(0)
169 if (record
->event
.pressed
) {
170 return MACRO( D(LSFT
), T(LEFT
), U(LSFT
), D(LCTL
), T(X
), U(LCTL
), T(RIGHT
), D(LCTL
), T(V
), U(LCTL
), T(LEFT
), END
); // this swaps the characters on either side of the cursor when the macro executes
178 float plover_song
[][2] = SONG(PLOVER_SOUND
);
179 float plover_gb_song
[][2] = SONG(PLOVER_GOODBYE_SOUND
);
182 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
185 if (record
->event
.pressed
) {
186 print("mode just switched to qwerty and this is a huge string\n");
187 set_single_persistent_default_layer(_QWERTY
);
192 if (record
->event
.pressed
) {
193 set_single_persistent_default_layer(_ARROW
);
198 if (record
->event
.pressed
) {
199 set_single_persistent_default_layer(_GAME
);
204 if (record
->event
.pressed
) {
206 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
209 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
214 if (record
->event
.pressed
) {
216 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
219 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
224 if (record
->event
.pressed
) {
225 register_code(KC_RSFT
);
226 #ifdef BACKLIGHT_ENABLE
230 unregister_code(KC_RSFT
);
235 if (record
->event
.pressed
) {
238 PLAY_SONG(plover_song
);
244 if (!eeconfig_is_enabled()) {
247 keymap_config
.raw
= eeconfig_read_keymap();
248 keymap_config
.nkro
= 1;
249 eeconfig_update_keymap(keymap_config
.raw
);
254 if (record
->event
.pressed
) {
256 PLAY_SONG(plover_gb_song
);