aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Sterling <xyverz@gmail.com>2016-08-09 23:49:27 -0700
committerIan Sterling <xyverz@gmail.com>2016-08-09 23:49:27 -0700
commit6f700f1eb0c76aa19187efd83ab2b49a0db7f71f (patch)
tree9c1cdf16a03f7fbbeb0ec384e46fadc7591ef619
parent78a6fae453f1bf92f4015fc22138034f03725efc (diff)
downloadqmk_firmware-6f700f1eb0c76aa19187efd83ab2b49a0db7f71f.tar.gz
qmk_firmware-6f700f1eb0c76aa19187efd83ab2b49a0db7f71f.zip
Adding my own layouts for the Phantom and Ergodox. My Ergodox layout adds persistent layers
based on the Planck and Preonic setup. The layout arrays are pulled directly from the ergodox/ez/ez.h keymap definition starting at line 81.
-rw-r--r--keyboards/ergodox/keymaps/xyverz/keymap.c311
-rw-r--r--keyboards/phantom/keymaps/xyverz/keymap.c67
2 files changed, 378 insertions, 0 deletions
diff --git a/keyboards/ergodox/keymaps/xyverz/keymap.c b/keyboards/ergodox/keymaps/xyverz/keymap.c
new file mode 100644
index 000000000..c5ce99dd2
--- /dev/null
+++ b/keyboards/ergodox/keymaps/xyverz/keymap.c
@@ -0,0 +1,311 @@
1/*
2 * The Dvorak layout shown herestems from my early Kinesis years, using the Contour PS/2 with a Dvorak
3 * software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner
4 * keys. I've decided to continue using this layout with my ErgoDox.
5 *
6 * The QWERTY layout shown here is based entirely on the Kinesis Advantage layout, with the additional
7 * keys as shown in the diagrams. The Colemak layout is merely an adaptation of that.
8 *
9 * I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck
10 * layouts.
11 *
12 * For a better explanation of the layout matrices shown below, take a look at ../../ez/ez.h where the
13 * keymap is defined, beginning on line 81.
14 *
15 */
16
17#include "ergodox.h"
18#include "debug.h"
19#include "action_layer.h"
20#include "eeconfig.h"
21
22extern keymap_config_t keymap_config;
23
24#define _DV 0 // Dvorak layer
25#define _QW 1 // Qwerty layer
26#define _CM 2 // Colemak layer
27#define _MD 3 // Media Layer
28#define _KP 4 // Keypad Layer
29
30// Macro name shortcuts
31#define DVORAK M(_DV)
32#define QWERTY M(_QW)
33#define COLEMAK M(_CM)
34
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36/* Keymap 0: Dvorak layer
37 *
38 * ,--------------------------------------------------. ,--------------------------------------------------.
39 * | ] | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | [ |
40 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
41 * | Tab | ' | , | . | Y | Y | | | | F | G | C | R | L | \ |
42 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
43 * | CapsLk | A | O | E | U | I |------| |------| D | H | T | N | S | - |
44 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------|
45 * | LShift | Z | X | C | V | X | | | | B | M | W | V | Z | RShift |
46 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
47 * | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI |
48 * `----------------------------------' `----------------------------------'
49 * ,-------------. ,-------------.
50 * | LCtr | LAlt | | Ralt | RCtr |
51 * ,------|------|------| |------+------+------.
52 * | | | Home | | PgUp | | |
53 * | BkSp | Del |------| |------| Enter| Space|
54 * | | | End | | PgDn | | |
55 * `--------------------' `--------------------'
56 *
57 */
58// If it accepts an argument (i.e, is a function), it doesn't need KC_.
59// Otherwise, it needs KC_*
60[_DV] = { // layer 0 : Dvorak
61 // left hand
62 {KC_RBRC, KC_TAB, KC_CAPS, KC_LSFT, KC_LGUI, KC_NO },
63 {KC_1, KC_QUOT, KC_A, KC_SCLN, KC_GRV, KC_END },
64 {KC_2, KC_COMM, KC_O, KC_Q, KC_INS, KC_DEL },
65 {KC_3, KC_DOT, KC_E, KC_J, KC_LEFT, KC_BSPC},
66 {KC_4, KC_P, KC_U, KC_K, KC_RGHT, KC_HOME},
67 {KC_5, KC_Y, KC_I, KC_X, KC_NO, KC_LCTL},
68 {KC_ESC, KC_NO, KC_NO, MO(_MD), KC_NO, KC_LALT},
69
70 // right hand
71 {KC_ESC, KC_NO, KC_NO, MO(_KP), KC_NO, KC_RALT},
72 {KC_6, KC_F, KC_D, KC_B, KC_NO, KC_RCTL},
73 {KC_7, KC_G, KC_H, KC_M, KC_UP, KC_PGUP},
74 {KC_8, KC_C, KC_T, KC_W, KC_DOWN, KC_SPC },
75 {KC_9, KC_R, KC_N, KC_V, KC_SLSH, KC_ENT },
76 {KC_0, KC_L, KC_S, KC_Z, KC_EQL, KC_PGDN},
77 {KC_LBRC, KC_BSLS, KC_MINS, KC_RSFT, KC_RGUI, KC_NO }
78},
79
80/* Keymap 1: QWERTY layer
81 *
82 * ,--------------------------------------------------. ,--------------------------------------------------.
83 * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - |
84 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
85 * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
86 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
87 * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
88 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------|
89 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
90 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
91 * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI |
92 * `----------------------------------' `----------------------------------'
93 * ,-------------. ,-------------.
94 * | LCtr | LAlt | | Ralt | RCtr |
95 * ,------|------|------| |------+------+------.
96 * | | | Home | | PgUp | | |
97 * | BkSp | Del |------| |------| Enter| Space|
98 * | | | End | | PgDn | | |
99 * `--------------------' `--------------------'
100 */
101// If it accepts an argument (i.e, is a function), it doesn't need KC_.
102// Otherwise, it needs KC_*
103[_QW] = { // layer 1 : QWERTY
104 // left hand
105 {KC_EQL, KC_TAB, KC_CAPS, KC_LSFT, KC_LGUI, KC_NO },
106 {KC_1, KC_Q, KC_A, KC_Z, KC_GRV, KC_END },
107 {KC_2, KC_W, KC_S, KC_X, KC_INS, KC_DEL },
108 {KC_3, KC_E, KC_D, KC_C, KC_LEFT, KC_BSPC},
109 {KC_4, KC_R, KC_F, KC_V, KC_RGHT, KC_HOME},
110 {KC_5, KC_T, KC_G, KC_B, KC_NO, KC_LCTL},
111 {KC_ESC, KC_NO, KC_NO, MO(_MD), KC_NO, KC_LALT},
112
113 // right hand
114 {KC_ESC, KC_NO, KC_NO, MO(_KP), KC_NO, KC_RALT},
115 {KC_6, KC_Y, KC_H, KC_N, KC_NO, KC_RCTL},
116 {KC_7, KC_U, KC_J, KC_M, KC_UP, KC_PGUP},
117 {KC_8, KC_I, KC_K, KC_COMM, KC_DOWN, KC_SPC },
118 {KC_9, KC_O, KC_L, KC_DOT, KC_LBRC, KC_ENT },
119 {KC_0, KC_P, KC_SCLN, KC_SLSH, KC_RBRC, KC_PGDN},
120 {KC_MINS, KC_BSLS, KC_QUOT, KC_RSFT, KC_RGUI, KC_NO }
121 },
122
123/* Keymap 2: Colemak layer
124 *
125 * ,--------------------------------------------------. ,--------------------------------------------------.
126 * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - |
127 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
128 * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ |
129 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
130 * | BkSpc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
131 * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------|
132 * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | RShift |
133 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
134 * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI |
135 * `----------------------------------' `----------------------------------'
136 * ,-------------. ,-------------.
137 * | LCtr | LAlt | | Ralt | RCtr |
138 * ,------|------|------| |------+------+------.
139 * | | | Home | | PgUp | | |
140 * | BkSp | Del |------| |------| Enter| Space|
141 * | | | End | | PgDn | | |
142 * `--------------------' `--------------------'
143 */
144// If it accepts an argument (i.e, is a function), it doesn't need KC_.
145// Otherwise, it needs KC_*
146[_CM] = { // layer 2 : Colemak
147 // left hand
148 {KC_EQL, KC_TAB, KC_BSPC, KC_LSFT, KC_LGUI, KC_NO },
149 {KC_1, KC_Q, KC_A, KC_Z, KC_GRV, KC_END },
150 {KC_2, KC_W, KC_R, KC_X, KC_INS, KC_DEL },
151 {KC_3, KC_F, KC_S, KC_C, KC_LEFT, KC_BSPC},
152 {KC_4, KC_P, KC_T, KC_V, KC_RGHT, KC_HOME},
153 {KC_5, KC_G, KC_D, KC_B, KC_NO, KC_LCTL},
154 {KC_ESC, KC_NO, KC_NO, MO(_MD), KC_NO, KC_LALT},
155
156 // right hand
157 {KC_ESC, KC_NO, KC_NO, MO(_KP), KC_NO, KC_RALT},
158 {KC_6, KC_J, KC_H, KC_K, KC_NO, KC_RCTL},
159 {KC_7, KC_L, KC_N, KC_M, KC_UP, KC_PGUP},
160 {KC_8, KC_U, KC_E, KC_COMM, KC_DOWN, KC_SPC },
161 {KC_9, KC_Y, KC_I, KC_DOT, KC_LBRC, KC_ENT },
162 {KC_0, KC_SCLN, KC_O, KC_SLSH, KC_RBRC, KC_PGDN},
163 {KC_MINS, KC_BSLS, KC_QUOT, KC_RSFT, KC_RGUI, KC_NO }
164 },
165
166/* Keymap 3: Symbol Layer
167 *
168 * ,--------------------------------------------------. ,--------------------------------------------------.
169 * | TEENSY | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
170 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
171 * | | | PrSc | ScLk | Paus | | FN4 | | FN5 | | Mute | Vol- | Vol+ | | |
172 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
173 * | | | | | | |------| |------| Stop | Prev | Play | Next | Sel | |
174 * |--------+------+------+------+------+------| FN4 | | FN5 |------+------+------+------+------+--------|
175 * | | |Dvorak|Qwerty|Colemk| | | | | | | | | | |
176 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
177 * | | | | | | | | | | | |
178 * `----------------------------------' `----------------------------------'
179 * ,-------------. ,-------------.
180 * | | | | | |
181 * ,------|------|------| |------+------+------.
182 * | | | | | | | |
183 * | | |------| |------| | |
184 * | | | | | | | |
185 * `--------------------' `--------------------'
186 */
187// Media Layer
188[_MD] = { // layer 3 : Media layer
189 // left hand
190 {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO },
191 {KC_F1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
192 {KC_F2, KC_PSCR, KC_TRNS, DVORAK, KC_TRNS, KC_TRNS},
193 {KC_F3, KC_SLCK, KC_TRNS, QWERTY, KC_TRNS, KC_TRNS},
194 {KC_F4, KC_PAUS, KC_TRNS, COLEMAK, KC_TRNS, KC_TRNS},
195 {KC_F5, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS},
196 {KC_F11, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS},
197
198 // right hand
199 {KC_F12, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS},
200 {KC_F6, KC_TRNS, KC_MSTP, KC_TRNS, KC_NO, KC_TRNS},
201 {KC_F7, KC_MUTE, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS},
202 {KC_F8, KC_VOLD, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS},
203 {KC_F9, KC_VOLU, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS},
204 {KC_F10, KC_TRNS, KC_MSEL, KC_TRNS, KC_TRNS, KC_TRNS},
205 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO }
206 },
207
208/* Keymap 4: Keypad layer
209 *
210 * ,--------------------------------------------------. ,--------------------------------------------------.
211 * | Power | | | | | | | | | | NmLk | KP / | KP * | KP - | |
212 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
213 * | Sleep | | | | | | FN5 | | FN4 | | KP 7 | KP 8 | KP 9 | KP + | |
214 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
215 * | Wake | | | | | |------| |------| | KP 4 | KP 5 | KP 6 | KP + | |
216 * |--------+------+------+------+------+------| FN5 | | FN4 |------+------+------+------+------+--------|
217 * | | | | | | | | | | | KP 1 | KP 2 | KP 3 |KP Ent| |
218 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
219 * | | | | | | | KP 0 | | KP . |KP Ent| |
220 * `----------------------------------' `----------------------------------'
221 * ,-------------. ,-------------.
222 * | | | | | |
223 * ,------|------|------| |------+------+------.
224 * | | | | | | | |
225 * | | |------| |------| | |
226 * | | | | | | | |
227 * `--------------------' `--------------------'
228 */
229// Keypad Layer
230[_KP] = { // layer 4 : Keypad layer
231 // left hand
232 {KC_PWR, KC_SLEP, KC_WAKE, KC_TRNS, KC_TRNS, KC_NO },
233 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
234 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
235 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
236 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
237 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS},
238 {KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS},
239
240 // right hand
241 {KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS},
242 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS},
243 {KC_NLCK, KC_P7, KC_P4, KC_P1, KC_P0, KC_TRNS},
244 {KC_PSLS, KC_P8, KC_P5, KC_P2, KC_NO, KC_TRNS},
245 {KC_PAST, KC_P9, KC_P6, KC_P3, KC_PDOT, KC_TRNS},
246 {KC_PMNS, KC_PPLS, KC_PPLS, KC_PENT, KC_PENT, KC_TRNS},
247 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO }
248 },
249
250};
251
252const uint16_t PROGMEM fn_actions[] = {
253
254};
255
256void persistant_default_layer_set(uint16_t default_layer) {
257 eeconfig_update_default_layer(default_layer);
258 default_layer_set(default_layer);
259}
260
261
262const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
263{
264 switch(id) {
265 case _DV:
266 if (record->event.pressed) {
267 persistant_default_layer_set(1UL<<_DV);
268 }
269 break;
270 case _QW:
271 if (record->event.pressed) {
272 persistant_default_layer_set(1UL<<_QW);
273 }
274 break;
275 case _CM:
276 if (record->event.pressed) {
277 persistant_default_layer_set(1UL<<_CM);
278 }
279 break;
280 }
281 return MACRO_NONE;
282};
283
284// Runs just one time when the keyboard initializes.
285void matrix_init_user(void) {
286
287};
288
289// Runs constantly in the background, in a loop.
290void matrix_scan_user(void) {
291
292 uint8_t layer = biton32(layer_state);
293
294 ergodox_board_led_off();
295 ergodox_right_led_1_off();
296 ergodox_right_led_2_off();
297 ergodox_right_led_3_off();
298 switch (layer) {
299 // TODO: Make this relevant to the ErgoDox EZ.
300 case 1:
301 ergodox_right_led_1_on();
302 break;
303 case 2:
304 ergodox_right_led_2_on();
305 break;
306 default:
307 // none
308 break;
309 }
310
311};
diff --git a/keyboards/phantom/keymaps/xyverz/keymap.c b/keyboards/phantom/keymaps/xyverz/keymap.c
new file mode 100644
index 000000000..5948e4ca5
--- /dev/null
+++ b/keyboards/phantom/keymaps/xyverz/keymap.c
@@ -0,0 +1,67 @@
1#include "phantom.h"
2
3// Each layer gets a name for readability, which is then used in the keymap matrix below.
4// The underscores don't mean anything - you can have a layer called STUFF or any other name.
5// Layer names don't all need to be of the same length, obviously, and you can also skip them
6// entirely and just use numbers.
7#define _BL 0
8#define _FL 1
9
10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11 /* Keymap _BL: (Base Layer) Default Layer
12 * ,-----------------------------------------------------------------------------.
13 * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
14 * |-----------------------------------------------------------| |--------------|
15 * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
16 * |-----------------------------------------------------------| |--------------|
17 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn|
18 * |-----------------------------------------------------------| `--------------'
19 * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
20 * |-----------------------------------------------------------| ,----.
21 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
22 * |-----------------------------------------------------------| ,-------------.
23 * |Ctrl|Gui |Alt | Space |ALT |GUI |_FL |CTRL | |Lft| Dn |Rig |
24 * `-----------------------------------------------------------' `-------------'
25 */
26[_BL] = KEYMAP(
27 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_PAUS, \
28 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
29 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DELETE, KC_END, KC_PGDN, \
30 KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, \
31 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, \
32 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
33
34 /* Keymap _FL: Function Layer
35 * ,-----------------------------------------------------------------------------.
36 * |RESET| | | | | | | | | | | | | | | | | | |
37 * |-----------------------------------------------------------| |--------------|
38 * | | | | | | | | | | | | | | | | | | |
39 * |-----------------------------------------------------------| |--------------|
40 * | | | | | | | | | | | | | | | | | | |
41 * |-----------------------------------------------------------| `--------------'
42 * | | | | | | | | | | | | | |
43 * |-----------------------------------------------------------| ,----.
44 * | | F1| F2| F3| F4| F5|F6 |F7 |F8 | | | | | |
45 * |-----------------------------------------------------------| ,-------------.
46 * | | | | | | | | | | | | |
47 * `-----------------------------------------------------------' `-------------'
48 */
49[_FL] = KEYMAP(
50 KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_SLEP, \
51 RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MUTE,KC_VOLD,KC_VOLU,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, \
52 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MSTP,KC_MPLY,KC_MPRV,KC_MNXT,KC_MSEL, KC_TRNS,KC_TRNS,KC_TRNS, \
53 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \
54 KC_TRNS, KC_TRNS,KC_TRNS,KC_CALC,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_CAPS, KC_TRNS, \
55 KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS)
56};
57
58enum function_id {
59 SHIFT_ESC,
60};
61
62const uint16_t PROGMEM fn_actions[] = {
63
64};
65
66void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
67}