aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/ergodox/keymaps/belak/LICENSE21
-rw-r--r--keyboards/ergodox/keymaps/belak/Makefile6
-rw-r--r--keyboards/ergodox/keymaps/belak/README.md79
-rw-r--r--keyboards/ergodox/keymaps/belak/keymap.c367
-rw-r--r--keyboards/ergodox/keymaps/belak/visualizer.c49
-rw-r--r--keyboards/kmac/keymaps/default/Makefile8
-rw-r--r--keyboards/kmac/keymaps/default/keymap.c78
-rw-r--r--keyboards/kmac/keymaps/default/readme.md2
-rw-r--r--keyboards/kmac/keymaps/winkeyless/Makefile8
-rw-r--r--keyboards/kmac/keymaps/winkeyless/keymap.c78
-rw-r--r--keyboards/kmac/keymaps/winkeyless/readme.md2
-rw-r--r--keyboards/kmac/kmac.c26
-rw-r--r--keyboards/kmac/matrix.c2
-rw-r--r--keyboards/kmac/rules.mk4
-rw-r--r--keyboards/tv44/keymaps/belak/Makefile12
-rw-r--r--keyboards/tv44/keymaps/belak/keymap.c105
-rw-r--r--keyboards/tv44/keymaps/belak/readme.md6
-rw-r--r--keyboards/tv44/keymaps/default/keymap.c78
-rw-r--r--keyboards/tv44/keymaps/jeebak/config.h21
-rw-r--r--keyboards/tv44/keymaps/jeebak/keymap.c18
-rw-r--r--keyboards/tv44/keymaps/smt/config.h36
-rw-r--r--keyboards/tv44/keymaps/smt/keymap.c12
-rw-r--r--keyboards/tv44/keymaps/smt/readme.md6
-rw-r--r--keyboards/tv44/keymaps/tong92/keymap.c62
-rw-r--r--keyboards/tv44/keymaps/xyverz/keymap.c72
-rw-r--r--keyboards/tv44/tv44.h53
-rw-r--r--quantum/quantum.c8
-rw-r--r--quantum/quantum_keycodes.h3
28 files changed, 935 insertions, 287 deletions
diff --git a/keyboards/ergodox/keymaps/belak/LICENSE b/keyboards/ergodox/keymaps/belak/LICENSE
new file mode 100644
index 000000000..b462ba30e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/belak/LICENSE
@@ -0,0 +1,21 @@
1MIT License
2
3Copyright (c) 2016 Kaleb Elwert
4
5Permission is hereby granted, free of charge, to any person obtaining a copy
6of this software and associated documentation files (the "Software"), to deal
7in the Software without restriction, including without limitation the rights
8to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9copies of the Software, and to permit persons to whom the Software is
10furnished to do so, subject to the following conditions:
11
12The above copyright notice and this permission notice shall be included in all
13copies or substantial portions of the Software.
14
15THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21SOFTWARE.
diff --git a/keyboards/ergodox/keymaps/belak/Makefile b/keyboards/ergodox/keymaps/belak/Makefile
new file mode 100644
index 000000000..8a6beea59
--- /dev/null
+++ b/keyboards/ergodox/keymaps/belak/Makefile
@@ -0,0 +1,6 @@
1TAP_DANCE_ENABLE=yes
2UNICODE_ENABLE=yes
3
4ifndef QUANTUM_DIR
5 include ../../../../Makefile
6endif
diff --git a/keyboards/ergodox/keymaps/belak/README.md b/keyboards/ergodox/keymaps/belak/README.md
new file mode 100644
index 000000000..30484e6e2
--- /dev/null
+++ b/keyboards/ergodox/keymaps/belak/README.md
@@ -0,0 +1,79 @@
1# Belak's Ergodox Layout
2
3This has been based off of [emacs\_osx\_dk](https://github.com/jackhumbert/qmk_firmware/tree/master/keyboards/ergodox/keymaps/emacs_osx_dk)
4from the main qmk repo. However, I've taken some of the ideas for the thumbs
5from [dvorak\_emacs](https://github.com/jackhumbert/qmk_firmware/tree/master/keyboards/ergodox/keymaps/dvorak_emacs)
6and tweaked it a bit based on the keycaps I have.
7
8This keyboard is intended for use in emacs (one of the main reasons for easy
9access to modifiers) but it could be useful in other instances as well.
10
11The main repo is used as a testbed, so sometimes the layout may be in a strange
12state. The qmk version should be relatively stable.
13
14## Instructions
15
16This is currently being used on a regular ergodox, but it should work fine on
17the infinity as well. Though, you may have to modify the commands to build and
18flash the firmware to match the separate halves as defined in the infinity
19documentation.
20
21If you are using this keymap in the qmk repo, you should be able to just run
22`make ergodox-belak-teensy`. If you're using this externally (I sometimes make
23changes before syncing them to qmk), use the following instructions:
24
251. Clone the main qmk repo
262. Clone this to `$QMK/keyboards/ergodox/keymaps/belak-external`
273. Run `make ergodox-belak-external-teensy` from the root of the qmk repo.
28
29## Changelog
30
31Fifth Revision
32
33* Change layer keys to tap-dance keys which cycle through additional layers
34* Add a few emoji keys (in preparation for an emoji layer)
35
36Fourth Revision
37
38* Remove media layer
39* Add a layer which swaps control and gui on the thumb keys.
40* Add some basic code to save settings to the eeprom
41* Save the state of the keys swapped in the thumb in the eeprom
42
43Third Revision
44
45* Add numpad layer and remove numpad from symbols layer
46* Disable media layer
47* Add arrow keys on ijkl to the symbols layer
48* Replace ALT on held enter and held delete with GUI (for better OSX
49 compatibility, as there's already an ALT key relatively close)
50* Replace keys above enter and delete with temporary layer switch buttons not
51 matching the other layer switch for that hand.
52* Reindent and space out most of the layer definitions
53
54Second Revision
55
56* Clean up definitions to make differences between layers easier to see
57* Remove old LCD code
58* Add new LCD code based on fredizzimo's branch
59
60First Revision
61
62* Reverse grave and escape
63
64Initial Version
65
66* Copy from emacs\_osx\_dk
67* "Fix" right alt
68* Change thumb keys to match default layout (backspace, delete, enter, space)
69* Add modifiers to thumb keys (ctrl to backspace and space, alt to delete and
70 enter)
71* Replace the RAlt below the brackets with LGui and RGui
72* Remove LCtrl and RCtrl from the keys above shift
73* Add browser forward, and move browser back
74* "Fix" the order of volume keys
75
76## Repository
77
78The original code for this is kept at https://github.com/belak/ergodox-layout and
79is synced to qmk every few main revisions.
diff --git a/keyboards/ergodox/keymaps/belak/keymap.c b/keyboards/ergodox/keymaps/belak/keymap.c
new file mode 100644
index 000000000..d10567a78
--- /dev/null
+++ b/keyboards/ergodox/keymaps/belak/keymap.c
@@ -0,0 +1,367 @@
1#include "ergodox.h"
2#include "debug.h"
3#include "action_layer.h"
4#include "eeconfig.h"
5
6#define LAYER_ON(pos) ((layer_state) & (1<<(pos)))
7#define _______ KC_TRNS
8
9#define EECONFIG_BELAK_MAGIC (uint16_t)0xBE42
10
11// NOTE: This is just a number that's a bit beyond the end of what's already
12// defined. As there is no other define we can base this on, it may need to be
13// changed in the future. The initial value here is used as a placeholder with a
14// magic word, similar to the normal eeconfig. Note that all the storage being
15// used needs to fit inside the 32 bytes of the Ergodox Infinity.
16#define EECONFIG_BELAK (uint16_t *)16
17
18// The correct way to do this would be how the normal eeconfig handles it and
19// use a bitfield. However, the eeprom has a ton of space which isn't being
20// used so I don't really care and have a separate byte for every setting.
21#define EECONFIG_BELAK_SWAP_GUI_CTRL (uint8_t *)18
22
23static uint8_t swap_gui_ctrl = 0;
24static uint8_t td_led_override = 0;
25
26enum belak_keycodes {
27 // Function codes
28 BEL_F0 = SAFE_RANGE,
29 BEL_F1,
30
31 E_SHRUG,
32 E_TFLIP,
33 E_TSET,
34};
35
36inline void tap(uint16_t keycode) {
37 register_code(keycode);
38 unregister_code(keycode);
39};
40
41// TODO: Add LED support to the tap dance by using the advanced macro
42#define LTOGGLE TD(TD_LAYER_TOGGLE)
43
44#define BASE 0 // default layer
45#define SYMB 1 // symbols
46#define NUMP 2 // numpad
47#define SWPH 3 // swap gui/ctrl on the hands
48
49enum belak_td {
50 TD_LAYER_TOGGLE = 0,
51};
52
53void belak_td_each(qk_tap_dance_state_t *state, void *user_data);
54void belak_td_finished(qk_tap_dance_state_t *state, void *user_data);
55void belak_td_reset(qk_tap_dance_state_t *state, void *user_data);
56
57qk_tap_dance_action_t tap_dance_actions[] = {
58 [TD_LAYER_TOGGLE] = ACTION_TAP_DANCE_FN_ADVANCED(belak_td_each, belak_td_finished, belak_td_reset),
59};
60
61const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
62/* Keymap 0: Basic layer
63 *
64 * ,--------------------------------------------------. ,--------------------------------------------------.
65 * | Esc | 1 | 2 | 3 | 4 | 5 | L1 | | L2 | 6 | 7 | 8 | 9 | 0 | = |
66 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
67 * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | - |
68 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
69 * | \ | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
70 * |--------+------+------+------+------+------| LGui | | RGui |------+------+------+------+------+--------|
71 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
72 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
73 * |Layers| LCtrl| Left | Right| LAlt | | RAlt | Up | Down | RCtrl|Layers|
74 * `----------------------------------' `----------------------------------'
75 * ,-------------. ,--------------.
76 * | ~L2 | Ins | | Grv | ~L1 |
77 * ,-------|------|------| |------+-------+-------.
78 * | Back | | Home | | PgUp | | |
79 * | Space | Del |------| |------| Enter | Space |
80 * | | | End | | PgDn | | |
81 * `---------------------' `----------------------'
82 */
83 [BASE] = KEYMAP( // layer 0 : default
84 // left hand
85 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB),
86 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
87 CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G,
88 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI,
89 LTOGGLE, KC_LCTRL, KC_LEFT,KC_RGHT,KC_LALT,
90 MO(NUMP),KC_INS,
91 KC_HOME,
92 CTL_T(KC_BSPC),GUI_T(KC_DEL),KC_END,
93 // right hand
94 TG(NUMP), KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
95 KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
96 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
97 KC_RGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
98 KC_RALT,KC_UP, KC_DOWN,KC_RCTRL, LTOGGLE,
99 KC_GRV, MO(SYMB),
100 KC_PGUP,
101 KC_PGDN, GUI_T(KC_ENT), CTL_T(KC_SPC)
102 ),
103/* Keymap 1: Symbol Layer
104 *
105 * ,--------------------------------------------------. ,--------------------------------------------------.
106 * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
107 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
108 * | | ! | @ | { | } | | | | | | Up | | Up | | | F12 |
109 * |--------+------+------+------+------+------| TFLIP| | TSET |------+------+------+------+------+--------|
110 * | | # | $ | ( | ) | ` |------| |------| Down | Left | Down | Rght | | |
111 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
112 * | | % | ^ | [ | ] | ~ | SHRUG| | | & | | | | | |
113 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
114 * |LClear| | | | | | | | | |LClear|
115 * `----------------------------------' `----------------------------------'
116 * ,-------------. ,-------------.
117 * | TOGL | | | | TOGL |
118 * ,------|------|------| |------+------+------.
119 * | | | | | | | |
120 * | | |------| |------| | |
121 * | | | | | | | |
122 * `--------------------' `--------------------'
123 */
124 [SYMB] = KEYMAP(
125 // left hand
126 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, E_TFLIP,
127 _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, E_TSET,
128 _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV,
129 _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, E_SHRUG,
130 BEL_F1, _______, _______, _______, _______,
131 BEL_F0, _______,
132 _______,
133 _______, _______, _______,
134 // right hand
135 _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
136 _______, KC_UP, _______, KC_UP, _______, _______, KC_F12,
137 KC_DOWN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
138 _______, KC_AMPR, _______, _______, _______, _______, _______,
139 _______, _______, _______, _______, BEL_F1,
140 _______, BEL_F0,
141 _______,
142 _______, _______, _______
143 ),
144/* Keymap 2: Numpad Layer
145 *
146 * ,--------------------------------------------------. ,--------------------------------------------------.
147 * | | | | | | | | | | | | | | | |
148 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
149 * | | | | | | | | | | | 7 | 8 | 9 | * | |
150 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
151 * | | | | | | |------| |------| | 4 | 5 | 6 | + | |
152 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
153 * | | | | | | | | | | | 1 | 2 | 3 | \ | |
154 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
155 * |LClear| | | | | | 0 | 0 | . | = |LClear|
156 * `----------------------------------' `----------------------------------'
157 * ,-------------. ,-------------.
158 * | TOGL | | | | TOGL |
159 * ,------|------|------| |------+------+------.
160 * | | | | | | | |
161 * | | |------| |------| | |
162 * | | | | | | | |
163 * `--------------------' `--------------------'
164 */
165 [NUMP] = KEYMAP(
166 // left hand
167 _______, _______, _______, _______, _______, _______, _______,
168 _______, _______, _______, _______, _______, _______, _______,
169 _______, _______, _______, _______, _______, _______,
170 _______, _______, _______, _______, _______, _______, _______,
171 BEL_F1, _______, _______, _______, _______,
172 BEL_F0, _______,
173 _______,
174 _______, _______, _______,
175 // right hand
176 _______, _______, _______, _______, _______, _______, _______,
177 _______, _______, KC_7, KC_8, KC_9, KC_ASTR, _______,
178 _______, KC_4, KC_5, KC_6, KC_PLUS, _______,
179 _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______,
180 KC_0, KC_0, KC_DOT, KC_EQL, BEL_F1,
181 _______, BEL_F0,
182 _______,
183 _______, _______, _______
184 ),
185/* Keymap 3: Swap control and gui on the thumb */
186 [SWPH] = KEYMAP(
187 // left hand
188 _______, _______, _______, _______, _______, _______, _______,
189 _______, _______, _______, _______, _______, _______, _______,
190 _______, _______, _______, _______, _______, _______,
191 _______, _______, _______, _______, _______, _______, _______,
192 _______, _______, _______, _______, _______,
193 _______, _______,
194 _______,
195 GUI_T(KC_BSPC), CTL_T(KC_DEL), _______,
196 // right hand
197 _______, _______, _______, _______, _______, _______, _______,
198 _______, _______, _______, _______, _______, _______, _______,
199 _______, _______, _______, _______, _______, _______,
200 _______, _______, _______, _______, _______, _______, _______,
201 _______, _______, _______, _______, _______,
202 _______, _______,
203 _______,
204 _______, CTL_T(KC_ENT), GUI_T(KC_SPC)
205 ),
206};
207
208// Runs just one time when the keyboard initializes.
209void matrix_init_user(void) {
210 // If our magic word wasn't set properly, we need to zero out the settings.
211 if (eeprom_read_word(EECONFIG_BELAK) != EECONFIG_BELAK_MAGIC) {
212 eeprom_update_word(EECONFIG_BELAK, EECONFIG_BELAK_MAGIC);
213 eeprom_update_byte(EECONFIG_BELAK_SWAP_GUI_CTRL, 0);
214 }
215
216 if (eeprom_read_byte(EECONFIG_BELAK_SWAP_GUI_CTRL)) {
217 layer_on(SWPH);
218 swap_gui_ctrl = 1;
219 }
220};
221
222// Runs constantly in the background, in a loop.
223void matrix_scan_user(void) {
224 ergodox_board_led_off();
225 ergodox_right_led_1_off();
226 ergodox_right_led_2_off();
227 ergodox_right_led_3_off();
228
229 switch (td_led_override) {
230 case 1:
231 ergodox_right_led_1_on();
232 break;
233 case 2:
234 ergodox_right_led_2_on();
235 break;
236 default:
237 // Layer 1 and 2 are both overlay layers, so they could both be on. This
238 // means we can't use the lazy check of checking for the first significant
239 // bit.
240 if (LAYER_ON(SYMB)) {
241 ergodox_right_led_1_on();
242 }
243 if (LAYER_ON(NUMP)) {
244 ergodox_right_led_2_on();
245 }
246 }
247};
248
249bool process_record_user(uint16_t keycode, keyrecord_t *record) {
250 switch (keycode) {
251 case BEL_F0:
252 if(record->event.pressed){
253 swap_gui_ctrl = !swap_gui_ctrl;
254 eeprom_update_byte(EECONFIG_BELAK_SWAP_GUI_CTRL, swap_gui_ctrl);
255
256 if (swap_gui_ctrl) {
257 layer_on(SWPH);
258 } else {
259 layer_off(SWPH);
260 }
261
262 return false;
263 }
264 break;
265 case BEL_F1:
266 if(record->event.pressed){
267 layer_off(SYMB);
268 layer_off(NUMP);
269
270 return false;
271 }
272 break;
273 case E_SHRUG: // ¯\_(ツ)_/¯
274 if (record->event.pressed) {
275 process_unicode((0x00AF|QK_UNICODE), record); // Hand
276 tap(KC_BSLS); // Arm
277 register_code(KC_RSFT);
278 tap(KC_UNDS); // Arm
279 tap(KC_LPRN); // Head
280 unregister_code(KC_RSFT);
281 process_unicode((0x30C4|QK_UNICODE), record); // Face
282 register_code(KC_RSFT);
283 tap(KC_RPRN); // Head
284 tap(KC_UNDS); // Arm
285 unregister_code(KC_RSFT);
286 tap(KC_SLSH); // Arm
287 process_unicode((0x00AF|QK_UNICODE), record); // Hand
288 }
289 return false;
290 break;
291 case E_TFLIP: // (╯°□°)╯ ︵ ┻━┻
292 if (record->event.pressed) {
293 register_code(KC_RSFT);
294 tap(KC_9);
295 unregister_code(KC_RSFT);
296 process_unicode((0x256F|QK_UNICODE), record); // Arm
297 process_unicode((0x00B0|QK_UNICODE), record); // Eye
298 process_unicode((0x25A1|QK_UNICODE), record); // Mouth
299 process_unicode((0x00B0|QK_UNICODE), record); // Eye
300 register_code(KC_RSFT);
301 tap(KC_0);
302 unregister_code(KC_RSFT);
303 process_unicode((0x256F|QK_UNICODE), record); // Arm
304 tap(KC_SPC);
305 process_unicode((0x0361|QK_UNICODE), record); // Flippy
306 tap(KC_SPC);
307 process_unicode((0x253B|QK_UNICODE), record); // Table
308 process_unicode((0x2501|QK_UNICODE), record); // Table
309 process_unicode((0x253B|QK_UNICODE), record); // Table
310 }
311 return false;
312 break;
313 case E_TSET: // ┬──┬ ノ( ゜-゜ノ)
314 if (record->event.pressed) {
315 process_unicode((0x252C|QK_UNICODE), record); // Table
316 process_unicode((0x2500|QK_UNICODE), record); // Table
317 process_unicode((0x2500|QK_UNICODE), record); // Table
318 process_unicode((0x252C|QK_UNICODE), record); // Table
319 tap(KC_SPC);
320 process_unicode((0x30CE|QK_UNICODE), record); // Arm
321 register_code(KC_RSFT);
322 tap(KC_9);
323 unregister_code(KC_RSFT);
324 tap(KC_SPC);
325 process_unicode((0x309C|QK_UNICODE), record); // Eye
326 tap(KC_MINS);
327 process_unicode((0x309C|QK_UNICODE), record); // Eye
328 process_unicode((0x30CE|QK_UNICODE), record); // Arm
329 register_code(KC_RSFT);
330 tap(KC_0);
331 unregister_code(KC_RSFT);
332 }
333 return false;
334 break;
335 }
336
337 return true;
338}
339
340void belak_td_each(qk_tap_dance_state_t *state, void *user_data) {
341 switch (state->count) {
342 case 1:
343 td_led_override = 1;
344 break;
345 case 2:
346 td_led_override = 2;
347 break;
348 default:
349 reset_tap_dance(state);
350 }
351}
352
353void belak_td_finished(qk_tap_dance_state_t *state, void *user_data) {
354 switch (state->count) {
355 case 1:
356 layer_on(SYMB);
357 break;
358 case 2:
359 layer_on(NUMP);
360 break;
361 }
362 td_led_override = 0;
363}
364
365void belak_td_reset(qk_tap_dance_state_t *state, void *user_data) {
366 td_led_override = 0;
367}
diff --git a/keyboards/ergodox/keymaps/belak/visualizer.c b/keyboards/ergodox/keymaps/belak/visualizer.c
new file mode 100644
index 000000000..b92890a66
--- /dev/null
+++ b/keyboards/ergodox/keymaps/belak/visualizer.c
@@ -0,0 +1,49 @@
1/*
2Copyright 2017 Fred Sundvik
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18// Currently we are assuming that both the backlight and LCD are enabled
19// But it's entirely possible to write a custom visualizer that use only
20// one of them
21#ifndef LCD_BACKLIGHT_ENABLE
22#error This visualizer needs that LCD backlight is enabled
23#endif
24
25#ifndef LCD_ENABLE
26#error This visualizer needs that LCD is enabled
27#endif
28
29#include "simple_visualizer.h"
30
31static void get_visualizer_layer_and_color(visualizer_state_t* state) {
32 uint8_t saturation = 60;
33 if (state->status.leds & (1u << USB_LED_CAPS_LOCK)) {
34 saturation = 255;
35 }
36
37 if (state->status.layer & 0x4) {
38 state->target_lcd_color = LCD_COLOR(0, saturation, 0xFF);
39 state->layer_text = "Media";
40 }
41 else if (state->status.layer & 0x2) {
42 state->target_lcd_color = LCD_COLOR(168, saturation, 0xFF);
43 state->layer_text = "Symbols";
44 }
45 else {
46 state->target_lcd_color = LCD_COLOR(84, saturation, 0xFF);
47 state->layer_text = "Base";
48 }
49}
diff --git a/keyboards/kmac/keymaps/default/Makefile b/keyboards/kmac/keymaps/default/Makefile
index a8a44889d..8e2d011b3 100644
--- a/keyboards/kmac/keymaps/default/Makefile
+++ b/keyboards/kmac/keymaps/default/Makefile
@@ -15,13 +15,13 @@
15 15
16 16
17# QMK Build Options 17# QMK Build Options
18# change to "no" to disable the options, or define them in the Makefile in 18# change to "no" to disable the options, or define them in the Makefile in
19# the appropriate keymap folder that will get included automatically 19# the appropriate keymap folder that will get included automatically
20# 20#
21BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) 21BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
22MOUSEKEY_ENABLE = yes # Mouse keys(+4700) 22MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
23EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 23EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
24CONSOLE_ENABLE = yes # Console for debug(+400) 24CONSOLE_ENABLE = no # Console for debug(+400)
25COMMAND_ENABLE = yes # Commands for debug and configuration 25COMMAND_ENABLE = yes # Commands for debug and configuration
26NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 26NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
27BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 27BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
@@ -29,9 +29,9 @@ MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
29AUDIO_ENABLE = no # Audio output on port C6 29AUDIO_ENABLE = no # Audio output on port C6
30UNICODE_ENABLE = no # Unicode 30UNICODE_ENABLE = no # Unicode
31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
32RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. 32RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
33SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 33SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
34 34
35ifndef QUANTUM_DIR 35ifndef QUANTUM_DIR
36 include ../../../../Makefile 36 include ../../../../Makefile
37endif 37endif
diff --git a/keyboards/kmac/keymaps/default/keymap.c b/keyboards/kmac/keymaps/default/keymap.c
index 3553e8492..f3ac93abf 100644
--- a/keyboards/kmac/keymaps/default/keymap.c
+++ b/keyboards/kmac/keymaps/default/keymap.c
@@ -26,22 +26,22 @@
26#define _FL 1 26#define _FL 1
27 27
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 [_BL] = KEYMAP( 29 [_BL] = KEYMAP(
30 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ 30 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \
31 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ 31 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
32 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ 32 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \
33 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ 33 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
34 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ 34 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
35 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ 35 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
36 ), 36 ),
37 [_FL] = KEYMAP( 37 [_FL] = KEYMAP(
38 BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ 38 BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
44 ), 44 ),
45}; 45};
46 46
47const uint16_t PROGMEM fn_actions[] = { 47const uint16_t PROGMEM fn_actions[] = {
@@ -50,32 +50,32 @@ const uint16_t PROGMEM fn_actions[] = {
50 50
51const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 51const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
52{ 52{
53 // MACRODOWN only works in this function 53 // MACRODOWN only works in this function
54 switch(id) { 54 switch(id) {
55 case 0: 55 case 0:
56 if (record->event.pressed) { 56 if (record->event.pressed) {
57 SEND_STRING("The"); 57 SEND_STRING("The");
58 return false; 58 return false;
59 } 59 }
60 break; 60 break;
61 case 1: 61 case 1:
62 if (record->event.pressed) { 62 if (record->event.pressed) {
63 SEND_STRING("Custom"); 63 SEND_STRING("Custom");
64 return false; 64 return false;
65 } 65 }
66 break; 66 break;
67 case 2: 67 case 2:
68 if (record->event.pressed) { 68 if (record->event.pressed) {
69 SEND_STRING("Keyboard"); 69 SEND_STRING("Keyboard");
70 return false; 70 return false;
71 } 71 }
72 break; 72 break;
73 case 3: 73 case 3:
74 if (record->event.pressed) { 74 if (record->event.pressed) {
75 return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END ); 75 return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END );
76 } 76 }
77 break; 77 break;
78 } 78 }
79 return MACRO_NONE; 79 return MACRO_NONE;
80}; 80};
81 81
@@ -89,7 +89,7 @@ void matrix_scan_user(void) {
89} 89}
90 90
91bool process_record_user(uint16_t keycode, keyrecord_t *record) { 91bool process_record_user(uint16_t keycode, keyrecord_t *record) {
92 return true; 92 return true;
93} 93}
94 94
95void led_set_user(uint8_t usb_led) { 95void led_set_user(uint8_t usb_led) {
diff --git a/keyboards/kmac/keymaps/default/readme.md b/keyboards/kmac/keymaps/default/readme.md
index d384e0d6a..aaa6f9bf2 100644
--- a/keyboards/kmac/keymaps/default/readme.md
+++ b/keyboards/kmac/keymaps/default/readme.md
@@ -6,7 +6,7 @@ See [keymap.c](keymap.c) for details.
6 6
7## Layers 7## Layers
8 8
9The keymap have two layers. To access the functions on the second layer, hold down caps lock and press the corresponding key. 9The keymap have two layers. To access the functions on the second layer, hold down `Fn` and press the corresponding key.
10 10
11### Layer 1: Default Layer 11### Layer 1: Default Layer
12 ,---. ,---------------. ,---------------. ,---------------. ,-----------. 12 ,---. ,---------------. ,---------------. ,---------------. ,-----------.
diff --git a/keyboards/kmac/keymaps/winkeyless/Makefile b/keyboards/kmac/keymaps/winkeyless/Makefile
index a8a44889d..8e2d011b3 100644
--- a/keyboards/kmac/keymaps/winkeyless/Makefile
+++ b/keyboards/kmac/keymaps/winkeyless/Makefile
@@ -15,13 +15,13 @@
15 15
16 16
17# QMK Build Options 17# QMK Build Options
18# change to "no" to disable the options, or define them in the Makefile in 18# change to "no" to disable the options, or define them in the Makefile in
19# the appropriate keymap folder that will get included automatically 19# the appropriate keymap folder that will get included automatically
20# 20#
21BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) 21BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
22MOUSEKEY_ENABLE = yes # Mouse keys(+4700) 22MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
23EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 23EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
24CONSOLE_ENABLE = yes # Console for debug(+400) 24CONSOLE_ENABLE = no # Console for debug(+400)
25COMMAND_ENABLE = yes # Commands for debug and configuration 25COMMAND_ENABLE = yes # Commands for debug and configuration
26NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 26NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
27BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 27BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
@@ -29,9 +29,9 @@ MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
29AUDIO_ENABLE = no # Audio output on port C6 29AUDIO_ENABLE = no # Audio output on port C6
30UNICODE_ENABLE = no # Unicode 30UNICODE_ENABLE = no # Unicode
31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
32RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. 32RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
33SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 33SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
34 34
35ifndef QUANTUM_DIR 35ifndef QUANTUM_DIR
36 include ../../../../Makefile 36 include ../../../../Makefile
37endif 37endif
diff --git a/keyboards/kmac/keymaps/winkeyless/keymap.c b/keyboards/kmac/keymaps/winkeyless/keymap.c
index f986dec27..e3d66ea08 100644
--- a/keyboards/kmac/keymaps/winkeyless/keymap.c
+++ b/keyboards/kmac/keymaps/winkeyless/keymap.c
@@ -26,22 +26,22 @@
26#define _FL 1 26#define _FL 1
27 27
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 [_BL] = KEYMAP_WINKEYLESS( 29 [_BL] = KEYMAP_WINKEYLESS(
30 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \ 30 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_BRK, \
31 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ 31 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
32 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ 32 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \
33 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ 33 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
34 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ 34 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
35 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ 35 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
36 ), 36 ),
37 [_FL] = KEYMAP_WINKEYLESS( 37 [_FL] = KEYMAP_WINKEYLESS(
38 BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \ 38 BL_STEP, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), _______, _______, _______, \
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
44 ), 44 ),
45}; 45};
46 46
47const uint16_t PROGMEM fn_actions[] = { 47const uint16_t PROGMEM fn_actions[] = {
@@ -50,32 +50,32 @@ const uint16_t PROGMEM fn_actions[] = {
50 50
51const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 51const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
52{ 52{
53 // MACRODOWN only works in this function 53 // MACRODOWN only works in this function
54 switch(id) { 54 switch(id) {
55 case 0: 55 case 0:
56 if (record->event.pressed) { 56 if (record->event.pressed) {
57 SEND_STRING("The"); 57 SEND_STRING("The");
58 return false; 58 return false;
59 } 59 }
60 break; 60 break;
61 case 1: 61 case 1:
62 if (record->event.pressed) { 62 if (record->event.pressed) {
63 SEND_STRING("Custom"); 63 SEND_STRING("Custom");
64 return false; 64 return false;
65 } 65 }
66 break; 66 break;
67 case 2: 67 case 2:
68 if (record->event.pressed) { 68 if (record->event.pressed) {
69 SEND_STRING("Keyboard"); 69 SEND_STRING("Keyboard");
70 return false; 70 return false;
71 } 71 }
72 break; 72 break;
73 case 3: 73 case 3:
74 if (record->event.pressed) { 74 if (record->event.pressed) {
75 return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END ); 75 return MACRO( D(LCTL), T(C), U(LCTL), T(RGHT), D(LCTL), T(V), U(LCTL), END );
76 } 76 }
77 break; 77 break;
78 } 78 }
79 return MACRO_NONE; 79 return MACRO_NONE;
80}; 80};
81 81
@@ -89,7 +89,7 @@ void matrix_scan_user(void) {
89} 89}
90 90
91bool process_record_user(uint16_t keycode, keyrecord_t *record) { 91bool process_record_user(uint16_t keycode, keyrecord_t *record) {
92 return true; 92 return true;
93} 93}
94 94
95void led_set_user(uint8_t usb_led) { 95void led_set_user(uint8_t usb_led) {
diff --git a/keyboards/kmac/keymaps/winkeyless/readme.md b/keyboards/kmac/keymaps/winkeyless/readme.md
index b921f7b0f..9c579e9f5 100644
--- a/keyboards/kmac/keymaps/winkeyless/readme.md
+++ b/keyboards/kmac/keymaps/winkeyless/readme.md
@@ -7,7 +7,7 @@ See [keymap.c](keymap.c) for details.
7 7
8## Layers 8## Layers
9 9
10The keymap have two layers. To access the functions on the second layer, hold down caps lock and press the corresponding key. 10The keymap have two layers. To access the functions on the second layer, hold down `Fn` and press the corresponding key.
11 11
12### Layer 1: Default Layer 12### Layer 1: Default Layer
13 ,---. ,---------------. ,---------------. ,---------------. ,-----------. 13 ,---. ,---------------. ,---------------. ,---------------. ,-----------.
diff --git a/keyboards/kmac/kmac.c b/keyboards/kmac/kmac.c
index 34647e81a..6b54294b4 100644
--- a/keyboards/kmac/kmac.c
+++ b/keyboards/kmac/kmac.c
@@ -16,24 +16,24 @@
16#include "kmac.h" 16#include "kmac.h"
17 17
18void matrix_init_kb(void) { 18void matrix_init_kb(void) {
19 // put your keyboard start-up code here 19 // put your keyboard start-up code here
20 // runs once when the firmware starts up 20 // runs once when the firmware starts up
21 led_init_ports(); 21 led_init_ports();
22 matrix_init_user(); 22 matrix_init_user();
23} 23}
24 24
25void matrix_scan_kb(void) { 25void matrix_scan_kb(void) {
26 // put your looping keyboard code here 26 // put your looping keyboard code here
27 // runs every cycle (a lot) 27 // runs every cycle (a lot)
28 28
29 matrix_scan_user(); 29 matrix_scan_user();
30} 30}
31 31
32bool process_record_kb(uint16_t keycode, keyrecord_t *record) { 32bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
33 // put your per-action keyboard code here 33 // put your per-action keyboard code here
34 // runs for every action, just before processing by the firmware 34 // runs for every action, just before processing by the firmware
35 35
36 return process_record_user(keycode, record); 36 return process_record_user(keycode, record);
37} 37}
38 38
39void led_init_ports(void) { 39void led_init_ports(void) {
@@ -64,12 +64,12 @@ void led_set_kb(uint8_t usb_led) {
64 PORTE |= (1<<6); // HI 64 PORTE |= (1<<6); // HI
65 } 65 }
66 66
67 led_set_user(usb_led); 67 led_set_user(usb_led);
68} 68}
69 69
70void backlight_init_ports(void) { 70void backlight_init_ports(void) {
71 DDRB |= (1<<1) | (1<<2) | (1<<3) | (1<<4); // OUT 71 DDRB |= (1<<1) | (1<<2) | (1<<3) | (1<<4); // OUT
72 DDRD |= (1<<7); // OUT 72 DDRD |= (1<<7); // OUT
73} 73}
74 74
75/* Backlight pin configuration 75/* Backlight pin configuration
diff --git a/keyboards/kmac/matrix.c b/keyboards/kmac/matrix.c
index bab638bdf..cfafa90e6 100644
--- a/keyboards/kmac/matrix.c
+++ b/keyboards/kmac/matrix.c
@@ -103,7 +103,7 @@ bool matrix_is_on(uint8_t row, uint8_t col)
103inline 103inline
104matrix_row_t matrix_get_row(uint8_t row) 104matrix_row_t matrix_get_row(uint8_t row)
105{ 105{
106 return matrix[row]; 106 return matrix[row];
107} 107}
108 108
109void matrix_print(void) 109void matrix_print(void)
diff --git a/keyboards/kmac/rules.mk b/keyboards/kmac/rules.mk
index 54c9aa256..2305de412 100644
--- a/keyboards/kmac/rules.mk
+++ b/keyboards/kmac/rules.mk
@@ -57,14 +57,14 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
57BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) 57BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
58MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) 58MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
59EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) 59EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
60CONSOLE_ENABLE ?= yes # Console for debug(+400) 60CONSOLE_ENABLE ?= no # Console for debug(+400)
61COMMAND_ENABLE ?= yes # Commands for debug and configuration 61COMMAND_ENABLE ?= yes # Commands for debug and configuration
62CUSTOM_MATRIX ?= yes # Custom matrix file 62CUSTOM_MATRIX ?= yes # Custom matrix file
63# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 63# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
64SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend 64SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
65# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 65# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
66NKRO_ENABLE ?= yes # USB Nkey Rollover 66NKRO_ENABLE ?= yes # USB Nkey Rollover
67BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality 67BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
68MIDI_ENABLE ?= no # MIDI support (+2400 to 4200, depending on config) 68MIDI_ENABLE ?= no # MIDI support (+2400 to 4200, depending on config)
69UNICODE_ENABLE ?= no # Unicode 69UNICODE_ENABLE ?= no # Unicode
70BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID 70BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/tv44/keymaps/belak/Makefile b/keyboards/tv44/keymaps/belak/Makefile
new file mode 100644
index 000000000..611241124
--- /dev/null
+++ b/keyboards/tv44/keymaps/belak/Makefile
@@ -0,0 +1,12 @@
1#BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
2MOUSEKEY_ENABLE = no # Mouse keys(+4700)
3#EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
4#CONSOLE_ENABLE = yes # Console for debug(+400)
5#DEBUG_ENABLE = yes
6#COMMAND_ENABLE = yes # Commands for debug and configuration
7NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
8TAP_DANCE_ENABLE = yes
9
10ifndef QUANTUM_DIR
11 include ../../../../Makefile
12endif
diff --git a/keyboards/tv44/keymaps/belak/keymap.c b/keyboards/tv44/keymaps/belak/keymap.c
new file mode 100644
index 000000000..703a1c2dd
--- /dev/null
+++ b/keyboards/tv44/keymaps/belak/keymap.c
@@ -0,0 +1,105 @@
1#include "tv44.h"
2#include "action_layer.h"
3#include "debug.h"
4#include "eeconfig.h"
5
6// Layer names. We stick to 3 letters if possible so MO(NAME) fits in 7
7// characters and doesn't mess with the grid.
8#define _QW 0
9#define _L1 1
10#define _L2 2
11#define _L3 3
12
13// Curly braces have their own keys. These are defined so they don't mess up the
14// grid in layer 2.
15#define L_CURBR LSFT(KC_LBRC)
16#define R_CURBR LSFT(KC_RBRC)
17
18#define L1_TAB LT(_L1, KC_TAB)
19#define L2_ESC LT(_L2, KC_ESC)
20#define L2_SLSH LT(_L2, KC_SLSH)
21#define L3_QUOT LT(_L3, KC_QUOT)
22
23// Tap dance magic
24#define TD_LGUI TD(BE_TD_GUI)
25#define TD_LCTL TD(BE_TD_CTL)
26#define TD_LALT TD(BE_TD_ALT)
27
28enum belak_td {
29 BE_TD_GUI = 0,
30 BE_TD_CTL,
31 BE_TD_ALT,
32};
33
34void mod_tap_fn(qk_tap_dance_state_t *state, void *user_data);
35void mod_reset_fn(qk_tap_dance_state_t *state, void *user_data);
36
37qk_tap_dance_action_t tap_dance_actions[] = {
38 [BE_TD_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(mod_tap_fn, NULL, mod_reset_fn),
39 [BE_TD_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(mod_tap_fn, NULL, mod_reset_fn),
40 [BE_TD_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(mod_tap_fn, NULL, mod_reset_fn),
41};
42
43uint16_t tap_dance_keys[] = {
44 [BE_TD_GUI] = KC_LGUI,
45 [BE_TD_CTL] = KC_LCTL,
46 [BE_TD_ALT] = KC_LALT,
47};
48
49// Fillers to make layering more clear
50#define _______ KC_TRNS
51
52const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
53 [_QW] = KEYMAP_ARROW_COMMAND( /* Qwerty */
54 L2_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
55 L1_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, L3_QUOT,
56 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, L2_SLSH,
57 TD_LCTL, MO(_L3), TD_LALT, TD_LGUI, KC_ENT, KC_SPC, MO(_L1), KC_LEFT, KC_DOWN, KC_RGHT
58 ),
59 [_L1] = KEYMAP_ARROW_COMMAND( /* LAYER 1 */
60 KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
61 _______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______,
62 _______, KC_ESC, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT,
63 _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______
64 ),
65 [_L2] = KEYMAP_ARROW_COMMAND( /* LAYER 2 */
66 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
67 KC_ESC, KC_PIPE, KC_DQUO, KC_UNDS, KC_PLUS, L_CURBR, R_CURBR, KC_4, KC_5, KC_6, KC_VOLU, KC_ENT,
68 _______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_VOLD, _______,
69 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
70 ),
71 [_L3] = KEYMAP_ARROW_COMMAND( /* LAYER 3 */
72 _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______,
73 KC_ESC, _______, _______, _______, _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______,
74 _______, _______, _______, _______, _______, _______, _______, KC_F9, KC_F10, KC_F11, KC_F12, _______,
75 _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______
76 )
77};
78
79const uint16_t PROGMEM fn_actions[] = {};
80
81// Tap dance functions
82void mod_tap_fn(qk_tap_dance_state_t *state, void *user_data) {
83 switch (state->count) {
84 case 1:
85 register_mods(MOD_BIT(tap_dance_keys[state->keycode - QK_TAP_DANCE]));
86 send_keyboard_report();
87 break;
88 case 2:
89 layer_on(_L2);
90 break;
91 case 3:
92 layer_off(_L2);
93 layer_on(_L1);
94 break;
95 default:
96 reset_tap_dance(state);
97 }
98}
99
100void mod_reset_fn(qk_tap_dance_state_t *state, void *user_data) {
101 layer_off(_L1);
102 layer_off(_L2);
103 unregister_mods(MOD_BIT(tap_dance_keys[state->keycode - QK_TAP_DANCE]));
104 send_keyboard_report();
105}
diff --git a/keyboards/tv44/keymaps/belak/readme.md b/keyboards/tv44/keymaps/belak/readme.md
new file mode 100644
index 000000000..f990c578a
--- /dev/null
+++ b/keyboards/tv44/keymaps/belak/readme.md
@@ -0,0 +1,6 @@
1# Belak's TV44 (TV46?) layout
2
3This layout is roughly based on the low-rider arrow-southpaw layout from [the
4configurator](http://minivan.config.thevankeyboards.com) with a number of
5changes to make it easier to use and add in missing keys (like adding / and '
6to the main layer)
diff --git a/keyboards/tv44/keymaps/default/keymap.c b/keyboards/tv44/keymaps/default/keymap.c
index b4a32d6f6..6979ac306 100644
--- a/keyboards/tv44/keymaps/default/keymap.c
+++ b/keyboards/tv44/keymaps/default/keymap.c
@@ -21,48 +21,52 @@ extern keymap_config_t keymap_config;
21#define DVORAK M(_DV) 21#define DVORAK M(_DV)
22#define COLEMAK M(_CM) 22#define COLEMAK M(_CM)
23 23
24// Curly braces have their own keys. These are defined to make them not mess up
25// the grid in layer 2.
26#define L_CURBR LSFT(KC_LBRC)
27#define R_CURBR LSFT(KC_RBRC)
28
24// Fillers to make layering more clear 29// Fillers to make layering more clear
25#define _______ KC_TRNS 30#define _______ KC_TRNS
26#define XXXXXXX KC_NO
27 31
28 32
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
30 [_QW] = { /* Qwerty */ 34 [_QW] = KEYMAP( /* Qwerty */
31 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, 35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
32 {MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_L1) }, 36 MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_L1),
33 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2) }, 37 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2),
34 {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) } 38 KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, KC_SPC, KC_RALT, KC_ESC, TG(_L3)
35 }, 39 ),
36 [_DV] = { /* Dvorak */ 40 [_DV] = KEYMAP( /* Dvorak */
37 {KC_TAB, KC_SLSH, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, 41 KC_TAB, KC_SLSH, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
38 {MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MO(_L1) }, 42 MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MO(_L1),
39 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_L2) }, 43 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_L2),
40 {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) } 44 KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, KC_SPC, KC_RALT, KC_ESC, TG(_L3)
41 }, 45 ),
42 [_CM] = { /* Colemak */ 46 [_CM] = KEYMAP( /* Colemak */
43 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC }, 47 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
44 {MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, MO(_L1) }, 48 MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, MO(_L1),
45 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2) }, 49 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_L2),
46 {KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_RALT, KC_ESC, XXXXXXX, TG(_L3) } 50 KC_LCTL, MO(_L2), KC_LGUI, KC_ENT, KC_SPC, KC_RALT, KC_ESC, TG(_L3)
47 }, 51 ),
48 [_L1] = { /* LAYER 1 */ 52 [_L1] = KEYMAP( /* LAYER 1 */
49 {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, 53 KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
50 {_______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______ }, 54 _______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______,
51 {_______, KC_ESC, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT }, 55 _______, KC_ESC, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT,
52 {_______, KC_LGUI, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, XXXXXXX, _______ } 56 _______, KC_LGUI, _______, _______, _______, _______, _______, _______
53 }, 57 ),
54 [_L2] = { /* LAYER 2 */ 58 [_L2] = KEYMAP( /* LAYER 2 */
55 {_______, QWERTY, DVORAK, COLEMAK, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______ }, 59 _______, QWERTY, DVORAK, COLEMAK, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
56 {KC_ESC, KC_PIPE, KC_DQUO, KC_UNDS, KC_PLUS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_4, KC_5, KC_6, KC_VOLU, KC_ENT }, 60 KC_ESC, KC_PIPE, KC_DQUO, KC_UNDS, KC_PLUS, L_CURBR, R_CURBR, KC_4, KC_5, KC_6, KC_VOLU, KC_ENT,
57 {_______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_VOLD, _______ }, 61 _______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_VOLD, _______,
58 {_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, XXXXXXX, _______ } 62 _______, _______, _______, _______, _______, _______, _______, _______
59 }, 63 ),
60 [_L3] = { /* LAYER 3 */ 64 [_L3] = KEYMAP( /* LAYER 3 */
61 {_______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______ }, 65 _______, _______, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, _______,
62 {KC_ESC, _______, _______, _______, _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______ }, 66 KC_ESC, _______, _______, _______, _______, _______, _______, KC_F5, KC_F6, KC_F7, KC_F8, _______,
63 {KC_LSFT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_F9, KC_F10, KC_F11, KC_F12, _______ }, 67 KC_LSFT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_F9, KC_F10, KC_F11, KC_F12, _______,
64 {_______, KC_LSFT, KC_B, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_C, _______, _______, XXXXXXX, _______ } 68 _______, KC_LSFT, KC_B, KC_SPC, KC_C, _______, _______, _______
65 } 69 )
66}; 70};
67 71
68const uint16_t PROGMEM fn_actions[] = { 72const uint16_t PROGMEM fn_actions[] = {
diff --git a/keyboards/tv44/keymaps/jeebak/config.h b/keyboards/tv44/keymaps/jeebak/config.h
deleted file mode 100644
index a59ef2b70..000000000
--- a/keyboards/tv44/keymaps/jeebak/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6/**
7 *TV44 keymap definition macro
8 */
9#define KEYMAP_TV44( \
10 K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \
11 K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, \
12 K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, \
13 K37, K38, K39, K40, K41, K42, K43, K44 \
14) { \
15 { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, }, \
16 { K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, }, \
17 { K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, }, \
18 { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, KC_NO, K44 } \
19}
20
21#endif
diff --git a/keyboards/tv44/keymaps/jeebak/keymap.c b/keyboards/tv44/keymaps/jeebak/keymap.c
index 0d0c07164..6cfa695ce 100644
--- a/keyboards/tv44/keymaps/jeebak/keymap.c
+++ b/keyboards/tv44/keymaps/jeebak/keymap.c
@@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
91 * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play | 91 * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play |
92 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' 92 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
93 */ 93 */
94[_QWERTY] = KEYMAP_TV44( 94[_QWERTY] = KEYMAP(
95/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 95/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
96 HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC , 96 HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
97/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 97/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -113,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
113 * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play | 113 * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play |
114 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' 114 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
115 */ 115 */
116[_COLEMAK] = KEYMAP_TV44( 116[_COLEMAK] = KEYMAP(
117/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 117/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
118 HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC , 118 HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC ,
119/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 119/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -135,7 +135,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
135 * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play | 135 * | Alt | GUI | Lower | TC/Space | TC/Space | Raise | Vol+ | Play |
136 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' 136 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
137 */ 137 */
138[_DVORAK] = KEYMAP_TV44( 138[_DVORAK] = KEYMAP(
139/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 139/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
140 HPR_TAB,KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC , 140 HPR_TAB,KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC ,
141/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 141/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
157 * | Brite | | | | | | Vol- | Mute | 157 * | Brite | | | | | | Vol- | Mute |
158 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' 158 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
159 */ 159 */
160[_LOWER] = KEYMAP_TV44( 160[_LOWER] = KEYMAP(
161/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 161/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
162 KC_TILD,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC , 162 KC_TILD,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC ,
163/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 163/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -179,7 +179,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
179 * | Brite | | | | | | Vol- | Mute | 179 * | Brite | | | | | | Vol- | Mute |
180 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' 180 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
181 */ 181 */
182[_RAISE] = KEYMAP_TV44( 182[_RAISE] = KEYMAP(
183/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 183/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
184 KC_0 , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC , 184 KC_0 , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC ,
185/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 185/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -205,7 +205,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
205 * seem to work on Mac. Presumably they'll work under Windows. 205 * seem to work on Mac. Presumably they'll work under Windows.
206 */ 206 */
207 207
208[_TOUCHCURSOR] = KEYMAP_TV44( 208[_TOUCHCURSOR] = KEYMAP(
209/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 209/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
210 ALT_TAB,CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______ , 210 ALT_TAB,CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______ ,
211/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 211/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -228,7 +228,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
228 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' 228 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
229 */ 229 */
230 230
231[_MOUSECURSOR] = KEYMAP_TV44( 231[_MOUSECURSOR] = KEYMAP(
232/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 232/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
233 _______,_______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______ , 233 _______,_______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______ ,
234/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 234/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -251,7 +251,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
251 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' 251 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
252 */ 252 */
253 253
254[_PLOVER] = KEYMAP_TV44( 254[_PLOVER] = KEYMAP(
255/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 255/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
256 KC_1 , KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , 256 KC_1 , KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
257/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 257/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -273,7 +273,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
273 * | | | | | | | | Reset | 273 * | | | | | | | | Reset |
274 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------' 274 * `--------+---------+---------+------^^^-------+-----^^^--------+---------+---------+---------'
275 */ 275 */
276[_ADJUST] = KEYMAP_TV44( 276[_ADJUST] = KEYMAP(
277/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 277/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
278 _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , 278 _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
279/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 279/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
diff --git a/keyboards/tv44/keymaps/smt/config.h b/keyboards/tv44/keymaps/smt/config.h
deleted file mode 100644
index f8f0a5078..000000000
--- a/keyboards/tv44/keymaps/smt/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6/**
7 *TV44 keymap definition macro
8 */
9#define KEYMAP_TV44( \
10 K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \
11 K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, \
12 K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, \
13 K37, K38, K39, K40, K41, K42, K43, K44 \
14) { \
15 { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, }, \
16 { K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, }, \
17 { K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, }, \
18 { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, KC_NO, K44 } \
19}
20
21/**
22 *TV45 keymap definition macro (arrows layout)
23 */
24#define KEYMAP_TV45( \
25 K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, \
26 K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, \
27 K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, \
28 K37, K38, K39, K40, K41, K42, K43, K44, K45 \
29) { \
30 { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, }, \
31 { K13, K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, }, \
32 { K25, K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, }, \
33 { K37, K38, K39, K40, KC_NO, KC_NO, KC_NO, K41, K42, K43, K44, K45 } \
34}
35
36#endif
diff --git a/keyboards/tv44/keymaps/smt/keymap.c b/keyboards/tv44/keymaps/smt/keymap.c
index dfd624466..0540ad97e 100644
--- a/keyboards/tv44/keymaps/smt/keymap.c
+++ b/keyboards/tv44/keymaps/smt/keymap.c
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
49 * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl | 49 * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl |
50 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' 50 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
51 */ 51 */
52[_QWERTY] = KEYMAP_TV45( 52[_QWERTY] = KEYMAP_ARROW(
53/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 53/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
54 HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC , 54 HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
55/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 55/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
71 * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl | 71 * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl |
72 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' 72 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
73 */ 73 */
74[_COLEMAK] = KEYMAP_TV45( 74[_COLEMAK] = KEYMAP_ARROW(
75/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 75/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
76 HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC , 76 HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC ,
77/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 77/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
93 * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl | 93 * | Alt/` | GUI | Lower | Space | Space | Raise | GUI | Alt | Ctrl |
94 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' 94 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
95 */ 95 */
96[_DVORAK] = KEYMAP_TV45( 96[_DVORAK] = KEYMAP_ARROW(
97/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 97/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
98 HPR_TAB,KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC , 98 HPR_TAB,KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC ,
99/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 99/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
115 * | Brite | | | Home | End | | Left | Down | Right | 115 * | Brite | | | Home | End | | Left | Down | Right |
116 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' 116 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
117 */ 117 */
118[_LOWER] = KEYMAP_TV45( 118[_LOWER] = KEYMAP_ARROW(
119/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 119/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
120ALL_T(KC_0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL , 120ALL_T(KC_0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL ,
121/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 121/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -137,7 +137,7 @@ ALT_T(BACKLIT), _______ , _______ , KC_HOME , KC_END , _____
137 * | Brite | | | Play | Next | | Mute | Vol- | Vol+ | 137 * | Brite | | | Play | Next | | Mute | Vol- | Vol+ |
138 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' 138 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
139 */ 139 */
140[_RAISE] = KEYMAP_TV45( 140[_RAISE] = KEYMAP_ARROW(
141/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 141/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
142ALL_T(KC_TILD),KC_EXLM,KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL , 142ALL_T(KC_TILD),KC_EXLM,KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL ,
143/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 143/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
@@ -159,7 +159,7 @@ ALT_T(BACKLIT), _______ , _______ , KC_MPLY , KC_MNXT , _____
159 * | | | | | | | | | | 159 * | | | | | | | | | |
160 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------' 160 * `-------+---------+--------+-----^^^------+-----^^^------+---------+------+------+-------'
161 */ 161 */
162[_ADJUST] = KEYMAP_TV45( 162[_ADJUST] = KEYMAP_ARROW(
163/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ 163/*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/
164 _______, RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET , 164 _______, RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET ,
165/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ 165/*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/
diff --git a/keyboards/tv44/keymaps/smt/readme.md b/keyboards/tv44/keymaps/smt/readme.md
index 87bfbb04b..059fd1bbd 100644
--- a/keyboards/tv44/keymaps/smt/readme.md
+++ b/keyboards/tv44/keymaps/smt/readme.md
@@ -4,7 +4,7 @@ This keymap is based on a combination of my Planck keymap and [jeebak's TV44 lay
4 4
5I had been using something close to the default Minivan layout, but after spending a bit of time with the Planck and Preonic, I decided it would be better for me to try to standardize to some degree, where possible. 5I had been using something close to the default Minivan layout, but after spending a bit of time with the Planck and Preonic, I decided it would be better for me to try to standardize to some degree, where possible.
6 6
7Also, it's worth noting that my Minivan is one with the "arrows" layout, which has a 45th key, so I had to define a new KEYMAP_TV45 macro in config.h. In spite of this, the 45-key Minivan is still technically considered a "TV44" as far as I know. 7Also, it's worth noting that my Minivan is one with the "arrows" layout, which has a 45th key. In spite of this, the 45-key Minivan is still technically considered a "TV44" as far as I know.
8 8
9![smt's TV44 keymap](https://i.imgur.com/Y4n6eHj.png) 9![smt's TV44 keymap](https://i.imgur.com/Y4n6eHj.png)
10 10
@@ -21,9 +21,9 @@ Also, it's worth noting that my Minivan is one with the "arrows" layout, which h
21 This key modifies with "Hyper" (see [Brett Terpstra's post](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) on this) when held, and outputs the code for Tab when tapped. On the Mac, I use KeyboardMaestro to remap my hyper-keys to do a lot of crazy things. 21 This key modifies with "Hyper" (see [Brett Terpstra's post](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) on this) when held, and outputs the code for Tab when tapped. On the Mac, I use KeyboardMaestro to remap my hyper-keys to do a lot of crazy things.
22 22
233. **Ctrl/Escape** 233. **Ctrl/Escape**
24 24
25 I set up another mod-tap, this time for the Escape key that would act as a Control modifier when held. 25 I set up another mod-tap, this time for the Escape key that would act as a Control modifier when held.
26 26
274. **Alt/Backtick** 274. **Alt/Backtick**
28 28
29 I don't currently have LEDs on most of my keyboards, and I certainly don't want LED controls on the base layer of a 40%. 29 I don't currently have LEDs on most of my keyboards, and I certainly don't want LED controls on the base layer of a 40%.
diff --git a/keyboards/tv44/keymaps/tong92/keymap.c b/keyboards/tv44/keymaps/tong92/keymap.c
index 4a16b3554..aba007c4d 100644
--- a/keyboards/tv44/keymaps/tong92/keymap.c
+++ b/keyboards/tv44/keymaps/tong92/keymap.c
@@ -31,12 +31,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31 * | Ftn1 | GUI | Alt | Space/LOWER | Space/RAISE | ' | [ | ] | Alt | 31 * | Ftn1 | GUI | Alt | Space/LOWER | Space/RAISE | ' | [ | ] | Alt |
32 * `--------------------------------------------------------------------------' 32 * `--------------------------------------------------------------------------'
33 */ 33 */
34[0] = { 34[0] = KEYMAP_ARROW(
35{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, 35KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
36{KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_ENT}, 36KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_ENT,
37{KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT }, 37KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,
38{FTN ,KC_LGUI,KC_LALT,LOWER,XXXXXXX,XXXXXXX,XXXXXXX,RAISE,KC_QUOT,KC_LBRC,KC_RBRC,KC_RALT} 38FTN, KC_LGUI,KC_LALT, LOWER, RAISE, KC_QUOT,KC_LBRC,KC_RBRC,KC_RALT
39}, 39),
40/* LOWER 40/* LOWER
41 * ,--------------------------------------------------------------------------. 41 * ,--------------------------------------------------------------------------.
42 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | 42 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
@@ -48,12 +48,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
48 * | | | | | | END | LEFT| Down|RIGHT| 48 * | | | | | | END | LEFT| Down|RIGHT|
49 * `--------------------------------------------------------------------------' 49 * `--------------------------------------------------------------------------'
50 */ 50 */
51[1] = { 51[1] = KEYMAP_ARROW(
52{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, 52KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
53{_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS,KC_PLUS,KC_LBRC,KC_RBRC,KC_BSLS }, 53_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS,KC_PLUS,KC_LBRC,KC_RBRC,KC_BSLS,
54{_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN }, 54_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN,
55{XXXXXXX,_______,_______,_______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_END, KC_LEFT,KC_DOWN,KC_RIGHT} 55XXXXXXX,_______,_______, _______,XXXXXXX, KC_END, KC_LEFT,KC_DOWN,KC_RIGHT
56}, 56),
57/* RAISE 57/* RAISE
58 * ,--------------------------------------------------------------------------. 58 * ,--------------------------------------------------------------------------.
59 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | 59 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
@@ -65,12 +65,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
65 * | | | | | | END | LEFT| Down|RIGHT| 65 * | | | | | | END | LEFT| Down|RIGHT|
66 * `--------------------------------------------------------------------------' 66 * `--------------------------------------------------------------------------'
67 */ 67 */
68[2] ={ 68[2] = KEYMAP_ARROW(
69{KC_TILD,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,_______ }, 69KC_TILD,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,_______,
70{_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS,KC_EQL, KC_LCBR,KC_RCBR,KC_PIPE }, 70_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS,KC_EQL, KC_LCBR,KC_RCBR,KC_PIPE,
71{_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN }, 71_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN,
72{XXXXXXX,_______,_______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______,KC_END, KC_LEFT,KC_DOWN,KC_RIGHT} 72XXXXXXX,_______,_______, _______,_______, KC_END, KC_LEFT,KC_DOWN,KC_RIGHT
73}, 73),
74/* FTN 74/* FTN
75 * ,--------------------------------------------------------------------------. 75 * ,--------------------------------------------------------------------------.
76 * | ESC |WinOf|WinUp| | |Sh+Ca| | PgUp| UP | PgDo|PrtSc| DELET | 76 * | ESC |WinOf|WinUp| | |Sh+Ca| | PgUp| UP | PgDo|PrtSc| DELET |
@@ -82,12 +82,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
82 * | | DeskL | DeskR| Task Manager| DeskX | MOUSE| | | LED | 82 * | | DeskL | DeskR| Task Manager| DeskX | MOUSE| | | LED |
83 * `--------------------------------------------------------------------------' 83 * `--------------------------------------------------------------------------'
84 */ 84 */
85[4] = { 85[4] = KEYMAP_ARROW(
86{KC_ESC ,LALT(KC_F4) ,LGUI(KC_UP) ,XXXXXXX ,XXXXXXX ,S(KC_CAPS) ,XXXXXXX,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,KC_DELT}, 86KC_ESC ,LALT(KC_F4) ,LGUI(KC_UP) ,XXXXXXX ,XXXXXXX,S(KC_CAPS) ,XXXXXXX ,KC_PGUP,KC_UP ,KC_PGDN ,KC_PSCR,KC_DELT,
87{_______,LGUI(KC_LEFT) ,LGUI(KC_DOWN) ,LGUI(KC_RIGHT) ,XXXXXXX ,LALT(KC_CAPS),KC_CAPS,KC_LEFT,KC_DOWN,KC_RIGHT,XXXXXXX,XXXXXXX}, 87_______,LGUI(KC_LEFT) ,LGUI(KC_DOWN) ,LGUI(KC_RIGHT),XXXXXXX,LALT(KC_CAPS) ,KC_CAPS ,KC_LEFT,KC_DOWN,KC_RIGHT,XXXXXXX,XXXXXXX,
88{_______,LGUI(LSFT(KC_LEFT)),LGUI(LSFT(KC_RIGHT)),XXXXXXX ,XXXXXXX ,LCTL(KC_CAPS),KC_SLCK,KC_HOME,XXXXXXX,KC_END,XXXXXXX,KC_RCTL}, 88_______,LGUI(LSFT(KC_LEFT)),LGUI(LSFT(KC_RIGHT)),XXXXXXX ,XXXXXXX,LCTL(KC_CAPS) ,KC_SLCK ,KC_HOME,XXXXXXX,KC_END ,XXXXXXX,KC_RCTL,
89{_______,LGUI(LCTL(KC_LEFT)),LGUI(LCTL(KC_RIGHT)),LCTL(LALT(KC_DELT)),XXXXXXX,XXXXXXX,XXXXXXX,LGUI(LCTL(KC_F4)),MOUSE,XXXXXXX,XXXXXXX,M(0)} 89_______,LGUI(LCTL(KC_LEFT)),LGUI(LCTL(KC_RIGHT)), LCTL(LALT(KC_DELT)),LGUI(LCTL(KC_F4)), MOUSE ,XXXXXXX ,XXXXXXX,M(0)
90}, 90),
91/* MOUSE 91/* MOUSE
92 * ,--------------------------------------------------------------------------. 92 * ,--------------------------------------------------------------------------.
93 * | | | |Mo_Up| | | |M_WhL|M_WhU|M_WhR| | RESET | 93 * | | | |Mo_Up| | | |M_WhL|M_WhU|M_WhR| | RESET |
@@ -99,12 +99,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
99 * | | | | GO_DEFAULT | GO_DEFAULT | | | | | 99 * | | | | GO_DEFAULT | GO_DEFAULT | | | | |
100 * `--------------------------------------------------------------------------' 100 * `--------------------------------------------------------------------------'
101 */ 101 */
102[10] ={ 102[10] = KEYMAP_ARROW(
103{XXXXXXX,XXXXXXX,XXXXXXX,KC_MS_U,XXXXXXX,XXXXXXX,XXXXXXX,KC_WH_L,KC_WH_U,KC_WH_R,XXXXXXX,RESET}, 103XXXXXXX,XXXXXXX,XXXXXXX,KC_MS_U,XXXXXXX,XXXXXXX,XXXXXXX,KC_WH_L,KC_WH_U,KC_WH_R,XXXXXXX,RESET,
104{XXXXXXX,XXXXXXX,KC_MS_L,KC_MS_D,KC_MS_R,XXXXXXX,XXXXXXX,KC_BTN1,KC_WH_D,KC_BTN2,XXXXXXX,XXXXXXX}, 104XXXXXXX,XXXXXXX,KC_MS_L,KC_MS_D,KC_MS_R,XXXXXXX,XXXXXXX,KC_BTN1,KC_WH_D,KC_BTN2,XXXXXXX,XXXXXXX,
105{XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_ACL0,KC_ACL1,KC_ACL2,XXXXXXX,XXXXXXX}, 105XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_ACL0,KC_ACL1,KC_ACL2,XXXXXXX,XXXXXXX,
106{XXXXXXX,XXXXXXX,XXXXXXX,GO_DEFT,XXXXXXX,XXXXXXX,XXXXXXX,GO_DEFT,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX} 106XXXXXXX,XXXXXXX,XXXXXXX, GO_DEFT,GO_DEFT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX
107} 107)
108}; 108};
109 109
110const uint16_t PROGMEM fn_actions[] = { 110const uint16_t PROGMEM fn_actions[] = {
@@ -135,4 +135,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
135 break; 135 break;
136 } 136 }
137 return MACRO_NONE; 137 return MACRO_NONE;
138}; \ No newline at end of file 138};
diff --git a/keyboards/tv44/keymaps/xyverz/keymap.c b/keyboards/tv44/keymaps/xyverz/keymap.c
index d710d8024..e3028019a 100644
--- a/keyboards/tv44/keymaps/xyverz/keymap.c
+++ b/keyboards/tv44/keymaps/xyverz/keymap.c
@@ -28,47 +28,47 @@ enum planck_keycodes {
28 28
29 29
30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31 [_DVORAK] = { /* 0: Dvorak */ 31 [_DVORAK] = KEYMAP( /* 0: Dvorak */
32 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, 32 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
33 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, 33 KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
34 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, 34 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
35 {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } 35 KC_LCTL, KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LGUI, KC_ENT
36 }, 36 ),
37 37
38 [_QWERTY] = { /* 1: Qwerty */ 38 [_QWERTY] = KEYMAP( /* 1: Qwerty */
39 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, 39 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
40 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, 40 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
41 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, 41 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
42 {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } 42 KC_LCTL, KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LGUI, KC_ENT
43 }, 43 ),
44 44
45 [_COLEMAK] = { /* 2: Colemak */ 45 [_COLEMAK] = KEYMAP( /* 2: Colemak */
46 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, 46 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
47 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, 47 KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
48 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, 48 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
49 {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } 49 KC_LCTL, KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LGUI, KC_ENT
50 }, 50 ),
51 51
52 [_LOWER] = {/* 1: FN 1 */ 52 [_LOWER] = KEYMAP( /* 1: FN 1 */
53 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE}, 53 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
54 {_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, 54 _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
55 {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, 55 KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
56 {KC_LEFT, KC_RGHT, _______, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, _______, KC_UP, XXXXXXX, KC_DOWN} 56 KC_LEFT, KC_RGHT, _______, KC_DEL, KC_INS, _______, KC_UP, KC_DOWN
57 }, 57 ),
58 58
59 [_RAISE] = { /* 2: FN 2 */ 59 [_RAISE] = KEYMAP( /* 2: FN 2 */
60 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, 60 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
61 {_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, 61 _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
62 {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______}, 62 KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______,
63 {KC_LEFT, KC_RGHT, _______, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, _______, KC_UP, XXXXXXX, KC_DOWN} 63 KC_LEFT, KC_RGHT, _______, KC_DEL, KC_INS, _______, KC_UP, KC_DOWN
64 }, 64 ),
65 65
66 [_ADJUST] = { 66 [_ADJUST] = KEYMAP(
67 {KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 }, 67 KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
68 {_______, RESET, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, 68 _______, RESET, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______,
69 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, 69 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
70 {KC_HOME, KC_END, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_PGUP, XXXXXXX, KC_PGDN} 70 KC_HOME, KC_END, _______, _______, _______, _______, KC_PGUP, KC_PGDN
71 } 71 )
72}; 72};
73 73
74void persistent_default_layer_set(uint16_t default_layer) { 74void persistent_default_layer_set(uint16_t default_layer) {
diff --git a/keyboards/tv44/tv44.h b/keyboards/tv44/tv44.h
index 65c0b4593..bd6fb90b0 100644
--- a/keyboards/tv44/tv44.h
+++ b/keyboards/tv44/tv44.h
@@ -4,19 +4,64 @@
4#include "quantum.h" 4#include "quantum.h"
5 5
6// This a shortcut to help you visually see your layout. 6// This a shortcut to help you visually see your layout.
7// The following is an example using the Planck MIT layout 7// There are a number of variations depending on the layout of your bottom row.
8// The first section contains all of the arguements 8// The arrow variant adds an additional key on the bottom-right, while the
9// The second converts the arguments into a two-dimensional array 9// command variant adds an additional key on the bottom-left. arrow-command is a
10// combination of both of those, having an additional key on both sides.
11//
12// Please note that the numbering of the macro arguments are based on the
13// numbers of the keys on the PCB.
14
10#define KEYMAP( \ 15#define KEYMAP( \
11 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ 16 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
12 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ 17 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
13 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ 18 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
14 K30, K31, K32, K33, K37, K38, K39, K3A, K3B \ 19 K30, K31, K32, K33, K37, K38, K39, K3B \
20) \
21{ \
22 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
23 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
24 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
25 { K30, K31, K32, K33, KC_NO, KC_NO, KC_NO, K37, K38, K39, KC_NO, K3B } \
26}
27
28#define KEYMAP_ARROW( \
29 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
30 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
31 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
32 K30, K31, K32, K33, K37, K38, K39, K3A, K3B \
15) \ 33) \
16{ \ 34{ \
17 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ 35 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
18 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \ 36 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
19 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ 37 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
20 { K30, K31, K32, K33, KC_NO, KC_NO, KC_NO, K37, K38, K39, K3A, K3B } \ 38 { K30, K31, K32, K33, KC_NO, KC_NO, KC_NO, K37, K38, K39, K3A, K3B } \
39}
40
41#define KEYMAP_COMMAND( \
42 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
43 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
44 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
45 K30, K31, K34, K32, K33, K37, K38, K39, K3B \
46) \
47{ \
48 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
49 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
50 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
51 { K30, K31, K32, K33, K34, KC_NO, KC_NO, K37, K38, K39, KC_NO, K3B } \
52}
53
54#define KEYMAP_ARROW_COMMAND( \
55 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
56 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
57 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
58 K30, K31, K34, K32, K33, K37, K38, K39, K3A, K3B \
59) \
60{ \
61 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \
62 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B }, \
63 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \
64 { K30, K31, K32, K33, K34, KC_NO, KC_NO, K37, K38, K39, K3A, K3B } \
65}
21 66
22#endif 67#endif
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 4f4cee4e9..f5fb1e35c 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -437,6 +437,14 @@ bool process_record_quantum(keyrecord_t *record) {
437 return false; 437 return false;
438 // break; 438 // break;
439 } 439 }
440 case GRAVE_ESC: {
441 void (*method)(uint8_t) = (record->event.pressed) ? &add_key : &del_key;
442 uint8_t shifted = get_mods() & ((MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)
443 |MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)));
444
445 method(shifted ? KC_GRAVE : KC_ESCAPE);
446 send_keyboard_report();
447 }
440 default: { 448 default: {
441 shift_interrupted[0] = true; 449 shift_interrupted[0] = true;
442 shift_interrupted[1] = true; 450 shift_interrupted[1] = true;
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h
index 7354ae0da..c34ecafa5 100644
--- a/quantum/quantum_keycodes.h
+++ b/quantum/quantum_keycodes.h
@@ -104,6 +104,7 @@ enum quantum_keycodes {
104 MAGIC_UNHOST_NKRO, 104 MAGIC_UNHOST_NKRO,
105 MAGIC_UNSWAP_ALT_GUI, 105 MAGIC_UNSWAP_ALT_GUI,
106 MAGIC_TOGGLE_NKRO, 106 MAGIC_TOGGLE_NKRO,
107 GRAVE_ESC,
107 108
108 // Leader key 109 // Leader key
109#ifndef DISABLE_LEADER 110#ifndef DISABLE_LEADER
@@ -514,6 +515,8 @@ enum quantum_keycodes {
514#define MACROTAP(kc) (kc | QK_MACRO | FUNC_TAP<<8) 515#define MACROTAP(kc) (kc | QK_MACRO | FUNC_TAP<<8)
515#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE) 516#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)
516 517
518#define KC_GESC GRAVE_ESC
519
517 520
518// L-ayer, T-ap - 256 keycode max, 16 layer max 521// L-ayer, T-ap - 256 keycode max, 16 layer max
519#define LT(layer, kc) (kc | QK_LAYER_TAP | ((layer & 0xF) << 8)) 522#define LT(layer, kc) (kc | QK_LAYER_TAP | ((layer & 0xF) << 8))