1 #include "bootloader.h"
2 #include "keymap_common.h"
4 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
6 * Keymap: Default Layer in Dvorak (Layer 0)
8 * ,--------------------------------------------------. ,--------------------------------------------------.
9 * | + | 1 | 2 | 3 | 4 | 5 | Esc | | ESC | 6 | 7 | 8 | 9 | 0 | - |
10 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
11 * | Tab | ' | , | . | Y | Y |(Null)| |(Null)| F | G | C | R | L | / |
12 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
13 * | CapsLk | A | O | E | U | I |------| |------| D | H | T | N | S | \ |
14 * |--------+------+------+------+------+------| FN1 | | FN2 |------+------+------+------+------+--------|
15 * | LShift | Z | X | C | V | X | | | | B | M | W | V | Z | RShift |
16 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
17 * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI |
18 * `----------------------------------' `----------------------------------'
19 * ,-------------. ,-------------.
20 * | LCtr | LAlt | | Ralt | RCtr |
21 * ,------|------|------| |------+------+------.
22 * | | | Home | | PgUp | | |
23 * | BkSp | Del |------| |------| Enter| Space|
24 * | | | End | | PgDn | | |
25 * `--------------------' `--------------------'
28 *****************************************************************************************************
29 * This Dvorak keyboard layout stems from my early Kinesis years, using the Contour PS/2 with a Dvorak
30 * software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the cor-
31 * ner keys. I've decided to continue using this layout with my ErgoDox.
34 KEYMAP( // layer 0 : default
36 EQL, 1, 2, 3, 4, 5, ESC,
37 TAB, QUOT, COMM, DOT, P, Y, NO,
39 LSFT, SCLN, Q, J, K, X, FN1,
40 LGUI, GRV, INS,LEFT,RGHT,
45 ESC, 6, 7, 8, 9, 0, MINS,
46 NO, F, G, C, R, L, SLSH,
48 FN2, B, M, W, V, Z, RSFT,
49 UP,DOWN,RBRC,LBRC, RGUI,
57 * Keymap: Function and Media Keys Layer (Layer 1)
59 * ,--------------------------------------------------. ,--------------------------------------------------.
60 * | TEENSY | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | Mute |
61 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
62 * | | | | | | | FN4 | | FN6 | | PrSc | ScLk | Paus | | Vol Up |
63 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
64 * | | | | | | |------| |------| Stop | Prev | Play | Next | Sel | Vol Dn |
65 * |--------+------+------+------+------+------| FN4 | | FN7 |------+------+------+------+------+--------|
66 * | | | | | | | | | | | | | | | |
67 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
68 * | | | | | | | | | | | |
69 * `----------------------------------' `----------------------------------'
70 * ,-------------. ,-------------.
72 * ,------|------|------| |------+------+------.
74 * | | |------| |------| | |
76 * `--------------------' `--------------------'
81 KEYMAP( // layer 1 : function and media keys
83 FN0, F1, F2, F3, F4, F5, F11,
84 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN4,
85 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
86 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN4,
87 TRNS,TRNS,TRNS,TRNS,TRNS,
92 F12, F6, F7, F8, F9, F10, MUTE,
93 FN6, TRNS,PSCR,SLCK,PAUS,TRNS,VOLU,
94 MSTP,MPRV,MPLY,MNXT,MSEL,VOLD,
95 FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
96 TRNS,TRNS,TRNS,TRNS,TRNS,
104 * Keymap: Numpad Layer (Layer 2)
106 * ,--------------------------------------------------. ,--------------------------------------------------.
107 * | Power | | | | | | | | | | NmLk | KP / | KP * | KP - | |
108 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
109 * | Sleep | | | | | | FN5 | | FN4 | | KP 7 | KP 8 | KP 9 | KP + | |
110 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
111 * | Wake | | | | | |------| |------| | KP 4 | KP 5 | KP 6 | KP + | |
112 * |--------+------+------+------+------+------| FN7 | | FN4 |------+------+------+------+------+--------|
113 * | | | | | | | | | | | KP 1 | KP 2 | KP 3 |KP Ent| |
114 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
115 * | | | | | | | KP 0 | | KP . |KP Ent| |
116 * `----------------------------------' `----------------------------------'
117 * ,-------------. ,-------------.
119 * ,------|------|------| |------+------+------.
121 * | | |------| |------| | |
123 * `--------------------' `--------------------'
127 KEYMAP( // layer 2: numpad
129 PWR, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
130 SLEP,TRNS,TRNS,TRNS,TRNS,TRNS, FN5,
131 WAKE,TRNS,TRNS,TRNS,TRNS,TRNS,
132 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, FN7,
133 TRNS,TRNS,TRNS,TRNS,TRNS,
138 TRNS,TRNS,NLCK,PSLS,PAST,PMNS,TRNS,
139 FN4,NO, P7, P8, P9, PPLS,TRNS,
140 NO, P4, P5, P6, PPLS,TRNS,
141 FN4,NO, P1, P2, P3, PENT,TRNS,
142 P0, TRNS,PDOT,PENT,TRNS,
150 * Keymap: QWERTY Gaming Layer (Layer 3)
152 * ,--------------------------------------------------. ,--------------------------------------------------.
153 * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | - |
154 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
155 * | Tab | Q | W | E | R | T | Fn4 | | Fn4 | Y | U | I | O | P | [ |
156 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
157 * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
158 * |--------+------+------+------+------+------| Fn1 | | Fn2 |------+------+------+------+------+--------|
159 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
160 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
161 * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI |
162 * `----------------------------------' `----------------------------------'
163 * ,-------------. ,-------------.
164 * | LCtr | LAlt | | Ralt | RCtr |
165 * ,------|------|------| |------+------+------.
166 * | | | Home | | PgUp | | |
167 * | BkSp | Del |------| |------| Enter| Space|
168 * | | | End | | PgDn | | |
169 * `--------------------' `--------------------'
173 KEYMAP( // layer 3 : QWERTY Gaming
175 EQL, 1, 2, 3, 4, 5, ESC,
176 TAB, Q, W, E, R, T, FN4,
178 LSFT,Z, X, C, V, B, FN1,
179 LGUI,GRV, INS,LEFT,RGHT,
184 ESC, 6, 7, 8, 9, 0, MINS,
185 FN4, Y, U, I, O, P, BSLS,
186 H, J, K, L, SCLN,QUOT,
187 FN2, N, M, COMM,DOT, SLSH,RSFT,
188 UP,DOWN,LBRC,RBRC,RGUI,
196 /* id for user defined functions & macros */
202 * Fn action definition
204 const action_t PROGMEM fn_actions[] = {
205 ACTION_FUNCTION(TEENSY_KEY), // FN0 - Teensy key
206 ACTION_LAYER_MOMENTARY(1), // FN1 - switch to Layer1
207 ACTION_LAYER_MOMENTARY(2), // FN2 - switch to Layer2
208 ACTION_LAYER_MOMENTARY(3), // FN3 - switch to Layer3
209 ACTION_LAYER_SET_CLEAR(0), // FN4 - set Layer0
210 ACTION_LAYER_SET(1, ON_PRESS), // FN5 - set Layer1
211 ACTION_LAYER_SET(2, ON_PRESS), // FN6 - set Layer2
212 ACTION_LAYER_SET(3, ON_PRESS), // FN7 - set Layer3
216 * Defining the Teensy Key action_function
218 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
220 // print("action_function called\n");
221 // print("id = "); phex(id); print("\n");
222 // print("opt = "); phex(opt); print("\n");
224 if (id == TEENSY_KEY) {
226 print("\n\nJump to bootloader... ");
228 bootloader_jump(); // should not return
229 print("not supported.\n");