]> git.donarmstrong.com Git - qmk_firmware.git/blob - layouts/community/ergodox/colemak_programmer/keymap.c
Creates a layouts/ folder for keymaps shared between keyboards (#1609)
[qmk_firmware.git] / layouts / community / ergodox / colemak_programmer / keymap.c
1 #include QMK_KEYBOARD_H
2
3 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 /* Keymap 0: Basic layer
5  * MEH:   Alt+Control+Shift
6  * HYPER: Alt+Control+Shift+Gui
7  * ,--------------------------------------------------.           ,--------------------------------------------------.
8  * |   ` ~  |  1 ! | 2 @  | 3 #  | 4 $  | 5 %  |  6 ^ |           | 7 &  |  8 * | 9 (  |  0 ) | - _  | = +  | Backsp |
9  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
10  * |   TAB  |   Q  |   W  |   F  |   P  |   G  |TG(3) |           |TG(4) |   J  |   L  |   U  |   Y  |  ; : |  ' "   |
11  * |--------+------+------+------+------+------|F-lck |           |N-lck |------+------+------+------+------+--------|
12  * |  CAPS  |   A  |   R  |   S  |   T  |   D  |------|           |------|   H  |   N  |   E  |   I  |   O  |  ENT   |
13  * |--------+------+------+------+------+------| MEH  |           | MEH  |------+------+------+------+------+--------|
14  * | Shift  |   Z  |   X  |   C  |   V  |   B  |      |           |      |   K  |   M  |  , < |  . > |  UP  | Shift  |
15  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
16  *   | LCTL | LCTL | LGUI | LALT | LGUI |                                       | RALT | RCTL | LEFT | DOWN | RIGHT|
17  *   `----------------------------------'                                       `----------------------------------'
18  *                                        ,--------------.       ,--------------.
19  *                                        |  Esc | App   |       | Ins  | Del   |
20  *                                 ,------|------|-------|       |------+-------+------.
21  *                                 |      |      | Home  |       | PgUp |       |      |
22  *                                 | MO(2)| MO(4)|-------|       |------| Space |Space |
23  *                                 |symbol|N-Lock| End   |       | PgDn |       |      |
24  *                                 `---------------------'       `---------------------'
25  */
26 [0] = LAYOUT_ergodox(  // layer 0 : default 
27         // left hand
28         KC_GRV,     KC_1,       KC_2,       KC_3,       KC_4,        KC_5,        KC_6,
29         KC_TAB,     KC_Q,       KC_W,       KC_F,       KC_P,        KC_G,        TG(3),
30         KC_CAPS,    KC_A,       KC_R,       KC_S,       KC_T,        KC_D,
31         KC_LSFT,    KC_Z,       KC_X,       KC_C,       KC_V,        KC_B,        KC_MEH,
32         KC_LCTL,    KC_LCTL,    KC_LGUI,    KC_LALT,    KC_LGUI,
33
34                     KC_ESC,     KC_APP,
35                     KC_HOME,
36         MO(2),      MO(4),      KC_END,
37
38         // right hand
39         KC_7,       KC_8,       KC_9,       KC_0,       KC_MINS,     KC_EQL,      KC_BSPC,
40         TG(4),      KC_J,       KC_L,       KC_U,       KC_Y,        KC_SCLN,     KC_QUOT,
41                     KC_H,       KC_N,       KC_E,       KC_I,        KC_O,        KC_ENT,
42         KC_MEH,     KC_K,       KC_M,       KC_COMM,    KC_DOT,      KC_UP,       KC_RSFT,
43                                 KC_RALT,    KC_RCTL,    KC_LEFT,     KC_DOWN,     KC_RIGHT,
44
45         KC_INS,     KC_DEL,
46         KC_PGUP,
47         KC_PGDN,    KC_SPC,     KC_SPC
48     ),
49
50 /* Keymap 1: QWERTY layer (games)
51  *
52  * ,--------------------------------------------------.           ,--------------------------------------------------.
53  * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
54  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
55  * |        |   Q  |   W  |   E  |   R  |   T  |      |           |      |   Y  |   U  |   I  |   O  |   P  |        |
56  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
57  * |        |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  |        |
58  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
59  * |        |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |      |      |      |        |
60  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
61  *   |      |      |      |      |      |                                       |      |      |      |      |      |
62  *   `----------------------------------'                                       `----------------------------------'
63  *                                        ,-------------.       ,-------------.
64  *                                        |      |      |       |      |      |
65  *                                 ,------|------|------|       |------+--------+------.
66  *                                 |      |      |      |       |      |        |      |
67  *                                 |      |      |------|       |------|        |      |
68  *                                 |      |      |      |       |      |        |      |
69  *                                 `--------------------'       `----------------------'
70  */
71 [1] = LAYOUT_ergodox(  // layer 1: QWERTY layer (games) 
72        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
73        KC_TRNS,        KC_Q,       KC_W,       KC_E,       KC_R,       KC_T,       KC_TRNS,
74        KC_TRNS,        KC_A,       KC_S,       KC_D,       KC_F,       KC_G,
75        KC_TRNS,        KC_Z,       KC_X,       KC_C,       KC_V,       KC_B,       KC_TRNS,
76        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
77
78                        KC_TRNS,    KC_TRNS,
79                                    KC_TRNS,
80        KC_TRNS,        KC_TRNS,    KC_TRNS,
81        
82     // right hand
83        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
84        KC_TRNS,        KC_Y,       KC_U,       KC_I,       KC_O,       KC_P,       KC_TRNS,
85                        KC_H,       KC_J,       KC_K,       KC_L,       KC_SCLN,    KC_TRNS,
86        KC_TRNS,        KC_N,       KC_M,       KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
87                                    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
88        KC_TRNS,        KC_TRNS,
89        KC_TRNS,
90        KC_TRNS,        KC_TRNS,    KC_TRNS
91     ),
92
93 /* Keymap 2: Symbol Layer
94 *
95 * ,--------------------------------------------------.           ,--------------------------------------------------.
96 * |        |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |           |  F7  |  F8  |  F9  | F10  | F11  | F12  |        |
97 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
98 * |        |   |  |   +  |  <   |   %  |  #   | DF(1)|           |      |  &   |   [  |   ]  |   \  |  :   |   "    |
99 * |--------+------+------+------+------+------|QWERTY|           |      |------+------+------+------+------+--------|
100 * |        |   !  |   -  |  >   |   =  |  @   |------|           |------|  *   |   {  |   }  |   /  |  ?   |        |
101 * |--------+------+------+------+------+------| DF(0)|           |      |------+------+------+------+------+--------|
102 * |        | NUBS | NUHS |  /   |   $  |  ^   |COLEMAK           |      |  |   |   (  |   )  |      |      |        |
103 * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
104 *   |      |      |      |      |      |                                       |      |      |      |      |      |
105 *   `----------------------------------'                                       `----------------------------------'
106 *                                        ,-------------.       ,-------------.
107 *                                        |      |      |       |      |      |
108 *                                 ,------|------|------|       |------+------+------.
109 *                                 |      |      |      |       |      |      |      |
110 *                                 |      |      |------|       |------|      |      |
111 *                                 |      |      |      |       |      |      |      |
112 *                                 `--------------------'       `--------------------'
113 */
114 // SYMBOLS
115 [2] = LAYOUT_ergodox(
116        // left hand
117        KC_TRNS,        KC_F1,        KC_F2,       KC_F3,      KC_F4,       KC_F5,      KC_F6,
118        KC_TRNS,        KC_PIPE,      KC_PLUS,     KC_LT,      KC_PERC,     KC_HASH,    DF(1),
119        KC_LBRC,        KC_EXCLAIM,   KC_MINUS,    KC_GT,      KC_EQUAL,    KC_AT,
120        KC_TRNS,        KC_NUBS,      KC_NUHS,     KC_SLSH,    KC_DOLLAR,   KC_CIRC,    DF(0),
121        KC_TRNS,        KC_TRNS,      KC_TRNS,     KC_TRNS,    KC_TRNS,
122
123                        KC_TRNS,      KC_TRNS,
124                                      KC_TRNS,
125        KC_TRNS,        KC_TRNS,      KC_TRNS,
126
127        // right hand
128        KC_F7,          KC_F8,        KC_F9,        KC_F10,     KC_F11,      KC_F12,     KC_TRNS,
129        KC_TRNS,        KC_AMPERSAND, KC_LBRC,      KC_RBRC,    KC_BSLS,     KC_COLN,    KC_DQT,
130                        KC_ASTERISK,  KC_LCBR,      KC_RCBR,    KC_SLSH,     KC_QUES,    KC_TRNS,
131        KC_TRNS,        KC_PIPE,      KC_LPRN,      KC_RPRN,    KC_TRNS,     KC_TRNS,    KC_TRNS,
132                                      KC_TRNS,      KC_TRNS,    KC_TRNS,     KC_TRNS,    KC_TRNS,
133
134        KC_TRNS,        KC_TRNS,
135        KC_TRNS,
136        KC_TRNS,        KC_TRNS,      KC_TRNS
137 ),
138
139 /* Keymap 3:
140  *
141  * ,--------------------------------------------------.           ,--------------------------------------------------.
142  * |        |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |           |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |        |
143  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
144  * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
145  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
146  * |        |      |      |      |      |      |------|           |------|      |      |      |      |      |        |
147  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
148  * |        |      |      |      |      |      | HYPR |           | HYPR |      |      |      |      |      |        |
149  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
150  *   |      |      |      |      |      |                                       |      |      |      |      |      |
151  *   `----------------------------------'                                       `----------------------------------'
152  *                                        ,-------------.       ,-------------.
153  *                                        |      |      |       |      |      |
154  *                                 ,------|------|------|       |------+------+------.
155  *                                 |      |      |      |       |      |      |      |
156  *                                 |      |      |------        |------|      |      |
157  *                                 |      |      |      |       |      |      |      |
158  *                                 `--------------------'       `--------------------'
159  */
160 // F-keys
161 [3] = LAYOUT_ergodox(
162        KC_TRNS,        KC_F1,      KC_F2,      KC_F3,      KC_F4,      KC_F5,      KC_F6,
163        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
164        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
165        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_HYPR,
166        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
167
168                        KC_TRNS,    KC_TRNS,
169                                    KC_TRNS,
170        KC_TRNS,        KC_TRNS,    KC_TRNS,
171
172        // right hand
173        KC_F7,          KC_F8,      KC_F9,      KC_F10,     KC_F11,     KC_F12,     KC_TRNS,
174        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
175                        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
176        KC_HYPR,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
177                                    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
178
179        KC_TRNS,        KC_TRNS,
180        KC_TRNS,
181        KC_TRNS,        KC_TRNS,    KC_TRNS
182 ),
183 /* Keymap 4: Numlock
184  *
185  * ,--------------------------------------------------.           ,--------------------------------------------------.
186  * | RESET  |      |      |      |P-SCRE|S-LOCK|PAUSE |           |NLOCK | CALC |  =   |  /   |  *   |      |        |
187  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
188  * |        |      |      |      |      |      |      |           |      | Vol+ |  7   |  8   |  9   |  -   |        |
189  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
190  * |        |      |      |      |      |      |------|           |------| Vol- |  4   |  5   |  6   |  +   |        |
191  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
192  * |        |      |      |      |      |      | HYPR |           | HYPR | Mute |  1   |  2   |  3   |Enter |        |
193  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
194  *   |      |      |      |      |      |                                       |      |  0   |  .   | RCTL | RCTL |
195  *   `----------------------------------'                                       `----------------------------------'
196  *                                        ,-------------.       ,-------------.
197  *                                        |      |      |       |      |      |
198  *                                 ,------|------|------|       |------+------+------.
199  *                                 |      |      |      |       |      |      |      |
200  *                                 |      |      |------        |------|      |      |
201  *                                 |      |      |      |       |      |      |      |
202  *                                 `--------------------'       `--------------------'
203  */
204 [4] = LAYOUT_ergodox(
205        RESET,          KC_LSFT,    KC_LSFT,    KC_SYSREQ,  KC_PSCR,    KC_SLCK,    KC_PAUSE,
206        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
207        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
208        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_HYPR,
209        KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
210
211                        KC_TRNS,    KC_TRNS,
212                                    KC_TRNS,
213        KC_TRNS,        KC_TRNS,    KC_TRNS,
214
215        // right hand
216        KC_NLCK,        KC_CALC,    KC_PEQL,    KC_PSLS,    KC_PAST,    KC_LSFT,    KC_TRNS,
217        KC_TRNS,        KC_VOLU,    KC_P7,      KC_P8,      KC_P9,      KC_PMNS,    KC_TRNS,
218                        KC_VOLD,    KC_P4,      KC_P5,      KC_P6,      KC_PPLS,    KC_TRNS,
219        KC_HYPR,        KC_MUTE,    KC_P1,      KC_P2,      KC_P3,      KC_PENT,    KC_TRNS,
220                                    KC_TRNS,    KC_P0,      KC_PDOT,    KC_RCTL,    KC_RCTL,
221
222        KC_TRNS,        KC_TRNS,
223        KC_TRNS,
224        KC_TRNS,        KC_TRNS,    KC_TRNS
225 ),
226
227 };
228
229
230 // Runs constantly in the background, in a loop.
231 void matrix_scan_user(void) {
232     static uint8_t state;
233
234     ergodox_board_led_off();
235     ergodox_right_led_1_off();
236     ergodox_right_led_2_off();
237     ergodox_right_led_3_off();
238
239     //reduce LED on time to 1/6th because LEDs are too strong
240     if (++state < 6) return;
241     state = 0;
242
243     //bit 1: default layer 1 - QWERTY
244     if (default_layer_state & (1UL << 1)) ergodox_right_led_1_on();
245
246     uint8_t layer = biton32(layer_state);
247
248     //layer 2 : Symbols (& Fs)
249     //if (layer == 2) ergodox_right_led_2_on();
250
251     //layer 3 : F-lock
252     if (layer == 3) ergodox_right_led_2_on();
253
254     //layer 4 : Num-lock
255     if (layer == 4) ergodox_right_led_3_on();
256 };