]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/kinesis/keymaps/xyverz/keymap.c
Kinesis refactor and Configurator update (#3245)
[qmk_firmware.git] / keyboards / kinesis / keymaps / xyverz / keymap.c
1 #include QMK_KEYBOARD_H
2
3 extern keymap_config_t keymap_config;
4
5 #define _DV 0 // Dvorak layer
6 #define _QW 1 // Qwerty layer
7 #define _CM 2 // Colemak layer
8 #define _MD 3 // Media Layer
9 #define _KP 4 // Keypad Layer
10
11 // Macro name shortcuts
12 #define DVORAK M(_DV)
13 #define QWERTY M(_QW)
14 #define COLEMAK M(_CM)
15
16 // Fillers to make layering more clear
17 #define _______ KC_TRNS
18 #define XXXXXXX KC_NO
19
20 /*
21
22         Function Keys on All Layers (Keypad toggles):
23         ,-----------------------------------------------------------------.
24         |  ESC |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   F7   |  F8   |
25         `-----------------------------------------------------------------'
26         ,-----------------------------------------------------------------.
27         |  F9  |  F10 |  F11 |  F12 | PScr | SLck | Paus | Keypad | RESET |
28         `-----------------------------------------------------------------'
29
30         Dvorak layer:
31         ,-------------------------------------------.,-------------------------------------------.
32         |   ]    |   1  |   2  |   3  |   4  |   5  ||   6  |   7  |   8  |   9  |   0  |   [    |
33         |--------+------+------+------+------+------||------+------+------+------+------+--------|
34         | Tab    |   '  |   ,  |   .  |   P  |   Y  ||   F  |   G  |   C  |   R  |   L  |   \    |
35         |--------+------+------+------+------+------||------+------+------+------+------+--------|
36         | CapsLk |   A  |   O  |   E  |   U  |   I  ||   D  |   H  |   T  |   N  |   S  |   -    |
37         |--------+------+------+------+------+------||------+------+------+------+------+--------|
38         | LShift |   Z  |   X  |   C  |   V  |   X  ||   B  |   M  |   W  |   V  |   Z  | RShift |
39         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
40                  |   `  |  INS | Left | Rght |              |  Up  |  Dn  |   /  |   =  |
41                  `---------------------------'              `---------------------------'
42                                      ,--------------.,--------------.
43                                      | LCtl  | LAlt || RGUI | RCtl  |
44                               ,------|-------|------||------+-------+-------.
45                               |      |  Del  | Home || PgUp | Enter |       |
46                               | BkSp |   /   |------||------|   /   | Space |
47                               |      | Media | End  || PgDn | KeyPd |       |
48                               `---------------------'`----------------------'
49
50         QWERTY layer:
51         ,-------------------------------------------.,-------------------------------------------.
52         |   =    |   1  |   2  |   3  |   4  |   5  ||   6  |   7  |   8  |   9  |   0  |   -    |
53         |--------+------+------+------+------+------||------+------+------+------+------+--------|
54         | Tab    |   Q  |   W  |   E  |   R  |   T  ||   Y  |   U  |   I  |   O  |   P  |   \    |
55         |--------+------+------+------+------+------||------+------+------+------+------+--------|
56         | CapsLk |   A  |   S  |   D  |   F  |   G  ||   H  |   J  |   K  |   L  |   ;  |   '    |
57         |--------+------+------+------+------+------||------+------+------+------+------+--------|
58         | LShift |   Z  |   X  |   C  |   V  |   B  ||   N  |   M  |   ,  |   .  |   /  | RShift |
59         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
60                  |   `  |  INS | Left | Rght |              |  Up  |  Dn  |   [  |   ]  |
61                  `---------------------------'              `---------------------------'
62                                      ,--------------.,--------------.
63                                      | LCtl  | LAlt || RGUI | RCtl  |
64                               ,------|-------|------||------+-------+-------.
65                               |      |  Del  | Home || PgUp | Enter |       |
66                               | BkSp |   /   |------||------|   /   | Space |
67                               |      | Media | End  || PgDn | KeyPd |       |
68                               `---------------------'`----------------------'
69
70         Colemak layer:
71         ,-------------------------------------------.,-------------------------------------------.
72         |   =    |   1  |   2  |   3  |   4  |   5  ||   6  |   7  |   8  |   9  |   0  |   -    |
73         |--------+------+------+------+------+------||------+------+------+------+------+--------|
74         | Tab    |   Q  |   W  |   F  |   P  |   G  ||   J  |   L  |   U  |   Y  |   ;  |   \    |
75         |--------+------+------+------+------+------||------+------+------+------+------+--------|
76         | BkSpc  |   A  |   R  |   S  |   T  |   D  ||   H  |   N  |   E  |   I  |   O  |   '    |
77         |--------+------+------+------+------+------||------+------+------+------+------+--------|
78         | LShift |   Z  |   X  |   C  |   V  |   B  ||   K  |   M  |   ,  |   .  |   /  | RShift |
79         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
80                  |   `  |  INS | Left | Rght |              |  Up  |  Dn  |   [  |   ]  |
81                  `---------------------------'              `---------------------------'
82                                      ,--------------.,--------------.
83                                      | LCtl  | LAlt || RGUI | RCtl  |
84                               ,------|-------|------||------+-------+-------.
85                               |      |  Del  | Home || PgUp | Enter |       |
86                               | BkSp |   /   |------||------|   /   | Space |
87                               |      | Media | End  || PgDn | KeyPd |       |
88                               `---------------------'`----------------------'
89
90         Media layer:
91         ,-------------------------------------------.,-------------------------------------------.
92         |   F11  |  F1  |  F2  |  F3  |  F4  |  F5  ||  F6  |  F7  |  F8  |  F9  |  F10 |  F12   |
93         |--------+------+------+------+------+------||------+------+------+------+------+--------|
94         |        |      |      |      |      |      ||      |      |      |      |      |        |
95         |--------+------+------+------+------+------||------+------+------+------+------+--------|
96         |        |      |      |      |      |      ||      | Mute | Vol- | Vol+ |      |        |
97         |--------+------+------+------+------+------||------+------+------+------+------+--------|
98         |        |      |      |      |      |      || Stop | Prev | Play | Next | Sel  |        |
99         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
100                  |      |      |      |      |              |      |      |      |      |
101                  `---------------------------'              `---------------------------'
102                                       ,-------------.,-------------.
103                                       |      |      ||      |      |
104                                ,------|------|------||------+------+------.
105                                |      |      |      ||      |      |      |
106                                |      |      |------||------|      |      |
107                                |      |      |      ||      |      |      |
108                                `--------------------'`--------------------'
109
110         Keypad layer:
111         ,-------------------------------------------.,-------------------------------------------.
112         | Power  |      |      |      |      |      ||      | NmLk | KP = | KP / | KP * |        |
113         |--------+------+------+------+------+------||------+------+------+------+------+--------|
114         | Sleep  |      |      |      |      |      ||      | KP 7 | KP 8 | KP 9 | KP - |        |
115         |--------+------+------+------+------+------||------+------+------+------+------+--------|
116         | Wake   |      |QWERTY|Colemk|Dvorak|      ||      | KP 4 | KP 5 | KP 6 | KP + |        |
117         |--------+------+------+------+------+------||------+------+------+------+------+--------|
118         |        |      |      |      |      |      ||      | KP 1 | KP 2 | KP 3 |KP Ent|        |
119         `--------+------+------+------+------+------'`------+------+------+------+------+--------'
120                  |      |      |      |      |              |      |      | KP . |KP Ent|      |
121                  `---------------------------'              `----------------------------------'
122                                       ,-------------.,-------------.
123                                       |      |      ||      |      |
124                                ,------|------|------||------+------+------.
125                                |      |      |      ||      |      |      |
126                                |      |      |------||------|      | KP 0 |
127                                |      |      |      ||      |      |      |
128                                `--------------------'`--------------------'
129 */
130
131 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
132
133 [_DV] = LAYOUT (
134            // Left Hand
135            KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,
136            KC_RBRC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,
137            KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,
138            KC_CAPS, KC_A,    KC_O,    KC_E,    KC_U,    KC_I,
139            KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,
140                     KC_GRV,  KC_INS,  KC_LEFT, KC_RGHT,
141            // Left Thumb
142                     KC_LCTL, KC_LALT,
143                              KC_HOME,
144            KC_BSPC, LT(_MD, KC_DEL),  KC_END,
145
146            // Right Hand
147            KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP),  RESET,
148            KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_LBRC,
149            KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSLS,
150            KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_MINS,
151            KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_RSFT,
152                     KC_UP,   KC_DOWN, KC_SLSH, KC_EQL,
153            // Right Thumb
154            KC_RGUI, KC_RCTL,
155            KC_PGUP,
156            KC_PGDN, LT(_KP, KC_ENT),  KC_SPC
157     ),
158
159 [_QW] = LAYOUT (
160            // Left Hand
161            KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,
162            KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,
163            KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,
164            KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,
165            KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,
166                     KC_GRV,  KC_INS,  KC_LEFT, KC_RGHT,
167            // Left Thumb
168                     KC_LCTL, KC_LALT,
169                              KC_HOME,
170            KC_BSPC, LT(_MD, KC_DEL),  KC_END,
171
172            // Right Hand
173            KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP),  RESET,
174            KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSLS,
175            KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_DEL ,
176            KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
177            KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,
178                     KC_UP,   KC_DOWN, KC_LBRC, KC_RBRC,
179            // Right Thumb
180            KC_RGUI, KC_RCTL,
181            KC_PGUP,
182            KC_PGDN, LT(_KP, KC_ENT),  KC_SPC
183     ),
184
185 [_CM] = LAYOUT (
186            // Left Hand
187            KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,
188            KC_EQL,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,
189            KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,
190            KC_BSPC, KC_A,    KC_R,    KC_S,    KC_T,    KC_D,
191            KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,
192                     KC_GRV,  KC_INS,  KC_LEFT, KC_RGHT,
193            // Left Thumb
194                     KC_LCTL, KC_LALT,
195                              KC_HOME,
196            KC_BSPC, LT(_MD, KC_DEL),  KC_END,
197
198            // Right Hand
199            KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP),  RESET,
200            KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS,
201            KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_DEL,
202            KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT,
203            KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,
204                     KC_UP,   KC_DOWN, KC_LBRC, KC_RBRC,
205            // Right Thumb
206            KC_RGUI, KC_RCTL,
207            KC_PGUP,
208            KC_PGDN, LT(_KP, KC_ENT),  KC_SPC
209     ),
210
211 [_MD] = LAYOUT (
212            // Left Hand
213            _______, _______, _______, _______, _______, _______, _______, _______, _______,
214            KC_F11,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,
215            _______, _______, _______, _______, _______, _______,
216            _______, _______, _______, _______, _______, _______,
217            _______, _______, _______, _______, _______, _______,
218                     _______, _______, _______, _______,
219            // Left Thumb
220                     _______, _______,
221                              _______,
222            _______, _______, _______,
223
224            // Right Hand
225            _______, _______, _______, _______, _______, _______, _______, _______, _______,
226            KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F12,
227            _______, _______, _______, _______, _______, _______,
228            _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
229            KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______,
230                     _______, _______, _______, _______,
231            // Right Thumb
232            _______, _______,
233            _______,
234            _______, _______, _______
235     ),
236
237 [_KP] = LAYOUT (
238            // Left Hand
239            _______, _______, _______, _______, _______, _______, _______, _______, _______,
240            KC_PWR,  _______, _______, _______, _______, _______,
241            KC_SLEP, _______, _______, _______, _______, _______,
242            KC_WAKE, _______, QWERTY,  COLEMAK, DVORAK,  _______,
243            _______, _______, _______, _______, _______, _______,
244                     _______, _______, _______, _______,
245            // Left Thumb
246                     _______, _______,
247                              _______,
248            _______, _______, _______,
249
250            // Right Hand */
251            _______, _______, _______, _______, _______, _______, _______, _______, _______,
252            _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______,
253            _______, KC_P7,   KC_P8,   KC_P9,   KC_PMNS, _______,
254            _______, KC_P4,   KC_P5,   KC_P6,   KC_PPLS, _______,
255            _______, KC_P1,   KC_P2,   KC_P3,   KC_PENT, _______,
256                     _______, _______, KC_PDOT, KC_PENT,
257            // Right Thumb
258            _______, _______,
259            _______,
260            _______, _______, KC_P0
261     )
262
263 };
264
265
266 const uint16_t PROGMEM fn_actions[] = {
267
268 };
269
270 void persistent_default_layer_set(uint16_t default_layer) {
271   eeconfig_update_default_layer(default_layer);
272   default_layer_set(default_layer);
273 }
274
275 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
276 {
277       switch(id) {
278         case _DV:
279           if (record->event.pressed) {
280             persistent_default_layer_set(1UL<<_DV);
281           }
282           break;
283         case _QW:
284           if (record->event.pressed) {
285             persistent_default_layer_set(1UL<<_QW);
286           }
287           break;
288         case _CM:
289           if (record->event.pressed) {
290             persistent_default_layer_set(1UL<<_CM);
291           }
292           break;
293       }
294     return MACRO_NONE;
295 };
296
297 // Runs just one time when the keyboard initializes.
298 void matrix_init_user(void) {
299
300 };
301
302 void led_set_user(uint8_t usb_led) {
303     if (usb_led & (1<<USB_LED_NUM_LOCK)) {
304         PORTF |= (1<<2);
305     } else {
306         PORTF &= ~(1<<2);
307     }
308     if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
309         PORTF |= (1<<3);
310     } else {
311         PORTF &= ~(1<<3);
312     }
313     if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
314         PORTF |= (1<<1);
315     } else {
316         PORTF &= ~(1<<1);
317     }
318 }