3 #include "action_layer.h"
6 * This section of macros is for tap or hold functionality. Keys will fire off the second symbol in the name if tapped
7 * or fire the first symbol in the name if held. For example
10 * - will fire z if tapped
11 * - will fire cmd/super/win if held
13 #define ALT_DOT ALT_T(KC_DOT)
14 #define ALT_X ALT_T(KC_X)
15 #define CTL_SLSH CTL_T(KC_SLSH)
16 #define CTL_Z CTL_T(KC_Z)
17 #define GUI_C GUI_T(KC_C)
18 #define GUI_COMM GUI_T(KC_COMM)
19 #define HPR_ESC ALL_T(KC_ESC)
20 #define HPR_QUO ALL_T(KC_QUOT)
28 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 /* Keymap 0: Basic layer
31 * ,--------------------------------------------------. ,--------------------------------------------------.
32 * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
33 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
34 * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
35 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
36 * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| '" |
37 * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
38 * | LShift |Z/Ctrl|X/Alt |C/GUI | V | B | | | | N | M |,/GUI |./ALT |//Ctrl| RShift |
39 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
40 * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
41 * `----------------------------------' `----------------------------------'
42 * ,-------------. ,------------.
43 * |MOUSE | Home | | PgDn | PgUp|
44 * ,------|------|------| |------+-----+------.
45 * | | | ESC | | ESC | | |
46 * | Space|Backsp|------| |------| Tab |Enter |
47 * | |ace | LGui | | LGui | | |
48 * `--------------------' `-------------------'
50 // If it accepts an argument (i.e, is a function), it doesn't need KC_.
51 // Otherwise, it needs KC_*
52 [BASE] = KEYMAP( // layer 0 : default
54 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
55 KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(DEV),
56 KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
57 KC_LSFT, CTL_T(KC_Z), ALT_T(KC_X), GUI_T(KC_C), KC_V, KC_B, ALL_T(KC_NO),
58 LT(SYMB,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
62 KC_SPC, KC_BSPC, KC_LGUI,
65 KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
66 TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
67 KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), KC_QUOT,
68 MEH_T(KC_NO), KC_N, KC_M, GUI_COMM, ALT_DOT, CTL_SLSH, KC_RSFT,
69 KC_DOWN, KC_UP, KC_LBRC, KC_RBRC, KC_FN1,
73 KC_LGUI, KC_TAB, KC_ENT
75 /* Keymap 1: Symbol Layer
77 * ,--------------------------------------------------. ,--------------------------------------------------.
78 * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
79 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
80 * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
81 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
82 * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
83 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
84 * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
85 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
86 * | | | | | | | | . | 0 | = | |
87 * `----------------------------------' `----------------------------------'
88 * ,-------------. ,-------------.
90 * ,------|------|------| |------+------+------.
92 * | | |------| |------| | |
94 * `--------------------' `--------------------'
99 KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
100 KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
101 KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
102 KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
103 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
106 KC_TRNS,KC_TRNS,KC_TRNS,
108 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
109 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
110 KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
111 KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
112 KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
115 KC_TRNS, KC_TRNS, KC_TRNS
117 /* Keymap 2: Media and mouse keys
119 * ,--------------------------------------------------. ,--------------------------------------------------.
120 * | | | | | | | | | | | | | | | |
121 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
122 * | | | | | | | | | | | | | | | |
123 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
124 * | | | | | | |------| |------| | Prev | Next | Mute | | Play |
125 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
126 * | | | | | | | | | | | VolDn| VolUp| | | |
127 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
128 * | | | | | | | | | | | |
129 * `----------------------------------' `----------------------------------'
130 * ,-------------. ,-------------.
132 * ,------|------|------| |------+------+------.
134 * | | |------| |------| | |
136 * `--------------------' `--------------------'
141 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
142 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
143 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
144 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
145 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
148 KC_TRNS, KC_TRNS, KC_TRNS,
150 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
151 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
152 KC_TRNS, KC_MPRV, KC_MNXT, KC_MUTE, KC_TRNS, KC_MPLY,
153 KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS,
154 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
157 KC_TRNS, KC_TRNS, KC_TRNS
161 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
162 KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
163 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
164 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
165 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
168 KC_TRNS, KC_TRNS, KC_TRNS,
170 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
171 KC_TRNS, KC_TRNS, KC_ACL2, KC_ACL1, KC_ACL0, KC_TRNS, KC_TRNS,
172 KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
173 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
174 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
177 KC_TRNS, KC_TRNS, KC_TRNS
181 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
182 KC_TRNS, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_TRNS,
183 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
184 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
185 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
188 KC_TRNS, KC_TRNS, KC_TRNS,
190 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
191 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
192 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
193 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
194 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
197 KC_TRNS, KC_TRNS, KC_TRNS
201 const uint16_t PROGMEM fn_actions[] = {
202 [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
205 // MACRODOWN only works in this function
206 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
210 if (record->event.pressed) {
211 register_code(KC_RSFT);
213 unregister_code(KC_RSFT);
220 // Runs just one time when the keyboard initializes.
221 void matrix_init_user(void) {
225 // Runs constantly in the background, in a loop.
226 void matrix_scan_user(void) {
227 uint8_t layer = biton32(layer_state);
229 ergodox_board_led_off();
230 ergodox_right_led_1_off();
231 ergodox_right_led_2_off();
232 ergodox_right_led_3_off();
235 // Binary 1 represented by the leds
237 ergodox_right_led_3_on();
240 // Binary 2 represented by the leds
242 ergodox_right_led_2_on();
245 // Binary 3 represented by the leds
247 ergodox_right_led_3_on();
248 ergodox_right_led_2_on();
251 // Binary 4 represented by the leds
253 ergodox_right_led_1_on();
261 //bool process_record_user(uint16_t keycode, keyrecord_t *record) {
262 // switch (keycode) {
267 // if (record->event.pressed) {
269 // update_tri_layer(_LOWER, _RAISE, _ADJUST);
271 // layer_off(_LOWER);
272 // update_tri_layer(_LOWER, _RAISE, _ADJUST);
277 // if (record->event.pressed) {
279 // update_tri_layer(_LOWER, _RAISE, _ADJUST);
281 // layer_off(_RAISE);
282 // update_tri_layer(_LOWER, _RAISE, _ADJUST);