1 static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
2 /* Keymap 0: Default Layer
4 * ,--------------------------------------------------. ,--------------------------------------------------.
5 * | ~ | 1 | 2 | 3 | 4 | 5 | \ | | ' | 6 | 7 | 8 | 9 | 0 | = |
6 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
7 * | Tab | Q | W | E | R | T | ~Fn1 | | ~Fn3 | Y | U | I | O | P | [ |
8 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
9 * | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | RShift |
10 * |--------+------+------+------+------+------| Fn0 | | ~Fn4 |------+------+------+------+------+--------|
11 * | LCtrl | Z | X | C | V | B | | | | N | M | , | . | / | RCtrl |
12 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
13 * | ~Fn1 | ~Fn2 | Caps | LAlt | LGui | | Lft | Up | Dn | Rght | ~Fn4 |
14 * `----------------------------------' `----------------------------------'
15 * ,-------------. ,-------------.
16 * | +Fn2 | Home | | PgUp | Del |
17 * ,------|------|------| |------+------+------.
18 * | | | End | | PgDn | | |
19 * | BkSp | ESC |------| |------| Enter| Space|
20 * | | | Spc | | Ins | | |
21 * `--------------------' `--------------------'
24 KEYMAP( // layout: layer 0: default
26 GRV, 1, 2, 3, 4, 5, BSLS,
27 TAB, Q, W, E, R, T, FN1,
29 LCTL,Z, X, C, V, B, FN0,
30 FN1, FN6, CAPS,LALT,LGUI,
35 QUOT,6, 7, 8, 9, 0, EQL,
36 FN3, Y, U, I, O, P, LBRC,
37 FN16,J, K, L, SCLN,FN14,
38 FN4, N, M, COMM,DOT, SLSH,FN15,
39 LEFT,UP, DOWN,RGHT,FN4,
45 KEYMAP( // layout: layer 1: F-keys instead of numbers
47 TRNS,F1, F2, F3, F4, F5, F6,
48 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
49 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
50 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
51 TRNS,TRNS,TRNS,TRNS,TRNS,
56 F7, F8, F9, F10, F11, F12, TRNS,
57 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
58 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
59 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
60 TRNS,TRNS,TRNS,TRNS,TRNS,
66 KEYMAP( // layout: layer 2: mouse + numpad
68 TRNS,NO, NO, NO, NO, PAUS,PSCR,
69 TRNS,WH_L,WH_U,WH_D,WH_R,BTN2,TRNS,
70 TRNS,MS_L,MS_U,MS_D,MS_R,BTN1,
71 TRNS,NO, NO, NO, NO, BTN3,TRNS,
72 TRNS,TRNS,TRNS,TRNS,TRNS,
77 SLCK,NLCK,PSLS,PAST,PAST,PMNS,BSPC,
78 TRNS,NO, P7, P8, P9, PMNS,BSPC,
79 TRNS,P4, P5, P6, PPLS,PENT,
80 TRNS,NO, P1, P2, P3, PPLS,PENT,
81 P0, PDOT,SLSH,PENT,PENT,
87 KEYMAP( // layout: layer 3: F-keys only
89 TRNS,NO, NO, NO, NO, NO, NO,
90 TRNS,F13, F14, F15, F16, NO, TRNS,
91 TRNS,F17, F18, F19, F20, NO,
92 TRNS,F21, F22, F23, F24, NO, TRNS,
93 TRNS,TRNS,TRNS,TRNS,TRNS,
98 NO, NO, NO, NO, NO, NO, TRNS,
99 TRNS,NO, F1, F2, F3, F4, TRNS,
100 NO, F5, F6, F7, F8, TRNS,
101 TRNS,NO, F9, F10, F11, F12, TRNS,
102 TRNS,TRNS,TRNS,TRNS,TRNS,
108 KEYMAP( // layout: layer 4: F-keys + cursor
110 TRNS,F1, F2, F3, F4, F5, F6,
111 FN7, NO, PGUP,UP, PGDN,PGUP,TRNS,
112 TRNS,NO, LEFT,DOWN,RGHT,PGDN,
113 TRNS,NO, NO, END, HOME,NO, TRNS,
114 FN5, TRNS,TRNS,TRNS,TRNS,
119 F7, F8, F9, F10, F11, F12, MINS,
120 TRNS,PGUP,PGUP,UP, PGDN,NO, FN7,
121 PGDN,LEFT,DOWN,RGHT,NO, TRNS,
122 TRNS,NO, HOME,END, NO, NO, TRNS,
123 TRNS,TRNS,TRNS,TRNS,TRNS,
129 KEYMAP( // layout: layer 5: Workman layout
131 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
132 TRNS,Q, D, R, W, B, TRNS,
134 TRNS,Z, X, M, C, V, TRNS,
135 TRNS,TRNS,TRNS,TRNS,TRNS,
140 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
141 TRNS,J, F, U, P, 4, TRNS,
143 TRNS,K, L, TRNS,TRNS,TRNS,TRNS,
144 TRNS,TRNS,TRNS,TRNS,TRNS,
151 // templates to copy from
153 KEYMAP( // layout: layer N: transparent on edges, all others are empty
155 TRNS,NO, NO, NO, NO, NO, NO,
156 TRNS,NO, NO, NO, NO, NO, TRNS,
157 TRNS,NO, NO, NO, NO, NO,
158 TRNS,NO, NO, NO, NO, NO, TRNS,
159 TRNS,TRNS,TRNS,LALT,LGUI,
164 NO, NO, NO, NO, NO, NO, TRNS,
165 TRNS,NO, NO, NO, NO, NO, TRNS,
166 NO, NO, NO, NO, NO, TRNS,
167 TRNS,NO, NO, NO, NO, NO, TRNS,
168 RGUI,RALT,TRNS,TRNS,TRNS,
173 KEYMAP( // layout: layer N: fully transparent
175 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
176 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
177 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
178 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
179 TRNS,TRNS,TRNS,TRNS,TRNS,
184 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
185 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
186 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
187 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
188 TRNS,TRNS,TRNS,TRNS,TRNS,
197 /* id for user defined functions */
203 * Fn action definition
205 static const uint16_t PROGMEM fn_actions[] = {
206 ACTION_LAYER_SET(0, ON_BOTH), // FN0 - switch to Layer0
207 ACTION_LAYER_MOMENTARY(1), // FN1 - push Layer1
208 ACTION_LAYER_SET(2, ON_BOTH), // FN2 - switch to Layer2
209 ACTION_LAYER_MOMENTARY(3), // FN3 - push Layer3
210 ACTION_LAYER_MOMENTARY(4), // FN4 - push Layer4
211 ACTION_LAYER_SET(5, ON_BOTH), // FN5 - switch to Layer5
212 ACTION_LAYER_MOMENTARY(2), // FN6 - push Layer2
213 ACTION_FUNCTION(TEENSY_KEY), // FN7 - Teensy key
215 ACTION_MODS_TAP_KEY(MOD_LCTL, KC_BSPC), // FN8 = LShift with tap BackSpace
216 ACTION_MODS_TAP_KEY(MOD_LSFT, KC_ESC), // FN9 = LCtrl with tap Escape
217 ACTION_MODS_TAP_KEY(MOD_LALT, KC_SPC), // FN10 = LAlt with tap Space
218 ACTION_MODS_TAP_KEY(MOD_RALT, KC_INS), // FN11 = RAlt with tap Ins
219 ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // FN12 = RShift with tap Enter
220 ACTION_MODS_TAP_KEY(MOD_RCTL, KC_SPC), // FN13 = RCtrl with tap Space
221 ACTION_MODS_TAP_KEY(MOD_RSFT, KC_MINS), // FN14 = RShift with tap Enter
222 ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RBRC), // FN15 = RCtrl with tap Space
224 ACTION_LAYER_TAP_KEY(2, KC_H), // FN16 = L2 symbols on J key, to use with Mouse keys
227 void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
229 print("action_function called\n");
230 print("id = "); phex(id); print("\n");
231 print("opt = "); phex(opt); print("\n");
232 if (id == TEENSY_KEY) {
234 print("\n\nJump to bootloader... ");
236 bootloader_jump(); // should not return
237 print("not supported.\n");