1 /* Copyright 2015-2018 Jack Humbert, Corey Kump
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #include QMK_KEYBOARD_H
19 extern keymap_config_t keymap_config
;
32 /* This include relies on the layer constants above and so must be declared after them */
35 enum planck_keycodes
{
44 #define KC_____ KC_TRNS
50 * Custom Corvec Bindings
52 * Previously used but currently unused bindings are commented out.
55 // Activate the Wobble layer
56 #define KC_WOBL MO(_WOBBLE)
57 // Dual function with Raise
58 #define KC_RESC LT(_RAISE, KC_ESC)
59 // Dual functions with Lower
60 #define KC_LENT LT(_LOWER, KC_ENT)
61 #define KC_LQUT LT(_LEANDOWN, KC_QUOT)
62 // Dual functions with Shift
63 #define KC_SDEL MT(MOD_LSFT, KC_DEL)
64 #define KC_SAPP MT(MOD_LSFT, KC_APP)
67 * Functions taking advantage of tap dance:
69 // Tap once: quote. Hold: LEANDOWN layer. Tap twice: minus.
70 #define KC_TQTD TD(TD_QUOT_LEAN_MINS)
71 // Tap once: [. Hold: RALT. Tap twice: {
72 #define KC_TALT TD(TD_LBRC_RALT_LCBR)
73 // Tap once: ]. Hold: RGUI. Tap twice: }
74 #define KC_TGUI TD(TD_RBRC_RGUI_RCBR)
77 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
79 [_COLEMAK
] = KC_KEYMAP(
80 //-----+----+----+----+----+----+----+----+----+----+----+----
81 TAB
, Q
, W
, F
, P
, G
, J
, L
, U
, Y
,SCLN
,BSPC
,
82 //-----+----+----+----+----+----+----+----+----+----+----+----
83 RESC
, A
, R
, S
, T
, D
, H
, N
, E
, I
, O
,TQTD
,
84 //-----+----+----+----+----+----+----+----+----+----+----+----
85 LSFT
, Z
, X
, C
, V
, B
, K
, M
,COMM
,DOT
,SLSH
,RSFT
,
86 //-----+----+----+----+----+----+----+----+----+----+----+----
87 LCTL
,LGUI
,WOBL
,LALT
,LENT
, SPC
, SPC
,RASE
,SDEL
,TALT
,TGUI
,RCTL
90 [_QWERTY
] = KC_KEYMAP(
91 //-----+----+----+----+----+----+----+----+----+----+----+----
92 TAB
, Q
, W
, E
, R
, T
, Y
, U
, I
, O
, P
,BSPC
,
93 //-----+----+----+----+----+----+----+----+----+----+----+----
94 RESC
, A
, S
, D
, F
, G
, H
, J
, K
, L
,SCLN
,TQTD
,
95 //-----+----+----+----+----+----+----+----+----+----+----+----
96 LSFT
, Z
, X
, C
, V
, B
, N
, M
,COMM
,DOT
,SLSH
,RSFT
,
97 //-----+----+----+----+----+----+----+----+----+----+----+----
98 LCTL
,LGUI
,WOBL
,LALT
,LENT
, SPC
, SPC
,RASE
,RALT
,SAPP
,RGUI
,RCTL
101 [_LOWER
] = KC_KEYMAP(
102 GRV
,EXLM
, AT
,HASH
, DLR
,PERC
,CIRC
,AMPR
,ASTR
,LPRN
,RPRN
,____
,
103 ____
,LPRN
,RPRN
,LBRC
,RBRC
,XXXX
,LEFT
,DOWN
, UP
,RGHT
,XXXX
,MINS
,
104 ____
,BSLS
,TILD
,PIPE
,EQL
,UNDS
,HOME
,PGDN
,PGUP
,END
,BSLS
,____
,
105 ____
,____
,____
,____
,____
,____
,____
,____
,____
,____
,____
,____
108 [_LEANDOWN
] = KC_KEYMAP(
109 GRV
,EXLM
, AT
,HASH
, DLR
,PERC
,CIRC
,AMPR
,ASTR
,LPRN
,RPRN
,____
,
110 ____
,LPRN
,RPRN
,LBRC
,RBRC
,LCBR
,LCBR
,DLR
,PERC
,CIRC
,____
,____
,
111 ____
,BSLS
,TILD
,PIPE
,EQL
,UNDS
,HOME
,EXLM
, AT
,HASH
,BSLS
,____
,
112 ____
,____
,____
,____
,____
,____
,____
,____
,LEFT
,DOWN
, UP
,RGHT
115 [_RAISE
] = KC_KEYMAP(
116 GRV
, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,____
,
117 ____
,LPRN
,RPRN
,LCBR
,RCBR
,XXXX
,XXXX
, 4 , 5 , 6 ,PPLS
,MINS
,
118 ____
,BSLS
,TILD
,PIPE
,EQL
,UNDS
,XXXX
, 1 , 2 , 3 ,PAST
,____
,
119 ____
,____
,____
,____
,____
,____
,____
,____
,____
,____
,____
,____
122 [_WOBBLE
] = KC_KEYMAP(
123 GRV
, F1
, F2
, F3
, F4
, NO
,MUTE
,VOLD
,VOLU
, NO
, NO
, DEL
,
124 , F5
, F6
, F7
, F8
, NO
,MPRV
,MPLY
,MSTP
,MNXT
, NO
,BSLS
,
125 , F9
, F10
, F11
, F12
, NO
, NO
, NO
, NO
, INS
,PSCR
, ,
126 , , , , , , , , , , ,
129 /* Adjust (Lower + Raise)
130 * ,-----------------------------------------------------------------------------------.
131 * |Colemk| | Debug|RGB Tg|RGB Md|RGB H+|RGB H-|RGB S+|RGB S-|RGB V+|RGB V-|Qwerty|
132 * |------+------+------+------+------+-------------+------+------+------+------+------|
133 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk| |AS On | AS + |
134 * |------+------+------+------+------+------|------+------+------+------+------+------|
135 * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf|AS Rep|AS Off| AS - |
136 * |------+------+------+------+------+------+------+------+------+------+------+------|
137 * | | | | | | | | | | | Reset|
138 * `-----------------------------------------------------------------------------------'
141 [_ADJUST
] = LAYOUT_planck_grid(
142 COLEMAK
, _______
, DEBUG
, RGB_TOG
, RGB_MOD
, RGB_HUI
, RGB_HUD
, RGB_SAI
, RGB_SAD
, RGB_VAI
, RGB_VAD
, QWERTY
,
143 _______
, _______
, MU_MOD
, AU_ON
, AU_OFF
, AG_NORM
, AG_SWAP
, QWERTY
, COLEMAK
, _______
, KC_ASON
, KC_ASUP
,
144 _______
, MUV_DE
, MUV_IN
, MU_ON
, MU_OFF
, MI_ON
, MI_OFF
, TERM_ON
, TERM_OFF
,KC_ASRP
, KC_ASOFF
,KC_ASDN
,
145 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, RESET
152 float plover_song
[][2] = SONG(PLOVER_SOUND
);
153 float plover_gb_song
[][2] = SONG(PLOVER_GOODBYE_SOUND
);
156 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
159 if (record
->event
.pressed
) {
160 print("mode just switched to qwerty and this is a huge string\n");
161 set_single_persistent_default_layer(_QWERTY
);
166 if (record
->event
.pressed
) {
167 set_single_persistent_default_layer(_COLEMAK
);
172 if (record
->event
.pressed
) {
174 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
177 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
182 if (record
->event
.pressed
) {
184 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
187 update_tri_layer(_LOWER
, _RAISE
, _ADJUST
);
192 if (record
->event
.pressed
) {
193 register_code(KC_RSFT
);
194 #ifdef BACKLIGHT_ENABLE
199 unregister_code(KC_RSFT
);