1 #include QMK_KEYBOARD_H
3 #include "action_layer.h"
5 #include "process_keycode/process_tap_dance.h"
8 #include "keymap_german.h"
10 #include "keymap_nordic.h"
13 #define TLSLSH M(TIL_SLASH)
14 #define F1_F13 TD(F1F13)
15 #define F2_F14 TD(F2F14)
16 #define F5_F15 TD(F5F15)
17 #define F4_ALTF4 TD(ALTF4)
18 #define END_ESC TD(ENDESC)
19 #define SHF6_AF7 TD(F6F7)
20 #define F12_RUN TD(F12ETAPS)
21 #define COMMA_TD TD(COMMA)
23 enum custom_keycodes {
24 PLACEHOLDER = SAFE_RANGE, // can always be here
35 REFRESH, //send R, or Control+R if double tapped.
37 XESC, //'quad function'. x, control, escape, alt
38 ALY2, //'quad function': a, Hyper, ctrl+a, layer 2
40 F6F7, // Shift F6 or Alt F7
55 // Custom tapping terms for each key.
56 // Requires changes to action_taping.c
57 /* uint16_t get_tapping_term(keyevent_t* event) {
58 uint16_t keycode = keymap_key_to_keycode(layer_switch_get_layer(event->key), event->key);
59 if (keycode == LT(3,KC_E) ) {
60 return TAPPING_TERM + 50;
66 // Tap Dance Definitions
67 qk_tap_dance_action_t tap_dance_actions[] = {
69 [F12ETAPS] = ACTION_TAP_DANCE_DOUBLE(KC_F12,LSFT(LCTL(KC_F10))),
70 [REFRESH] = ACTION_TAP_DANCE_DOUBLE(KC_R,LCTL(KC_R)),
71 [ENDESC] = ACTION_TAP_DANCE_DOUBLE(KC_END, KC_ESC),
72 [CALCCOMP] = ACTION_TAP_DANCE_DOUBLE(KC_CALCULATOR, KC_MY_COMPUTER),
73 [ALTF4] = ACTION_TAP_DANCE_DOUBLE(KC_F4,LALT(KC_F4)),
74 [F6F7] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_F6), LALT(KC_F7)),
75 [F1F13] = ACTION_TAP_DANCE_DOUBLE(KC_F1, KC_F13),
76 [F2F14] = ACTION_TAP_DANCE_DOUBLE(KC_F2, KC_F14),
77 [F5F15] = ACTION_TAP_DANCE_DOUBLE(KC_F5, KC_F15),
78 [TABCOMBO] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tab_finished, tab_reset),
79 [F3D] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, bt_finished, bt_reset),
80 [COMMA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, comma_finished, comma_reset),
81 [HTAB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL,h_finished, h_reset)
84 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
87 //**************************FIRST LAYER - LAYER ZERO **************************************
90 SHF6_AF7, F1_F13, F2_F14, TD(F3D), F4_ALTF4, F5_F15, KC_F11,
91 ________, KC_Q, CTR_SH_W, NAV_E, CTR_AL_R, KC_T, PRINTSCR,
92 KC_TAB, KC_A, MEH_S, NUMPAD_D, CTRL_F, WIN_G,
93 ALT_SHFT, CTRL_Z, HYPER_X, MOUSE_C, ALT_V, KC_B, TT(_MOUSE),
94 KC_MINUS, KC_GRAVE, KC_DELETE, KC_LEFT, KC_RIGHT,
98 KC_LSHIFT, SYMB_BSP, END_ESC,
100 F12_RUN, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, TD(CALCCOMP),
101 ________, KC_Y, KC_U, KC_I, KC_O, KC_P, ________,
102 WIN_H, CTRL_J, KC_K, MEH_L, COL_MOUS, ________,
103 KC_LEAD, KC_N, ALT_M, COMMA_TD, HYPE_DOT, KC_SLASH, TD(TABCOMBO),
104 KC_UP, KC_DOWN, KC_ESC, KC_TILD, KC_UNDS,
106 KC_ESCAPE, KC_DELETE,
108 RCTL_T(KC_PGDOWN), LT(_NAV,KC_ENTER), SPAC_SYM),
111 //**************************SYMBOLS LAYER**************************
113 ________, ________, ________, ________, ________, ________, ________,
114 ________, TLSLSH, KC_AT, KC_LCBR, KC_RCBR, KC_CIRC, ________,
115 ________, KC_EXLM, KC_PIPE, KC_LPRN, KC_RPRN, M(DEREF),
116 ________,KC_DOLLAR, KC_PERC, LSQUIGLY, RSQUIGLY, ________, ________,
117 ________, M(TICK3), ________, ________, ________,
121 ________,________,________,
124 ________, ________, ________, ________, ________, ________, NUMLOCK,
125 ________, TLSLSH, KC_PIPE, KC_PLUS, KC_AMPR, ________, CAPLOCK,
126 M(EQRIGHT), KC_DQUO, KC_EQUAL, KC_QUOTE,KC_SCOLON, ________,
127 ________, KC_PIPE, BK_SLASH, ASTERSK, KC_DOT, KC_SLASH, ________,
128 ________,________,________,M(TILD3),________,
131 ________,________,________),
133 //**************************MOUSE MOVEMENT LAYER**************************
134 [_MOUSE] = KEYMAP(RESET,________,________,________,________,________,________,
135 RESET,________,________,KC_MS_UP,________,KC_MS_WH_UP,CALTDEL,
136 ________,________,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT,KC_MS_WH_DOWN,
137 KC_SECRET_1,________,HYPR(KC_F13),________,HYPR(KC_F14),KC_SECRET_2,________,
138 ________,________,HYPR(KC_F15),KC_MS_WH_LEFT,KC_MS_WH_RIGHT,
142 KC_MS_BTN1,KC_MS_BTN2,________,
145 ________,________,________,________,________,________,________,
146 KC_MS_WH_UP,________,________,KC_UP,________,________,________,
147 ________,KC_LEFT,KC_DOWN,KC_RIGHT,________,________,
148 KC_MS_WH_DOWN,________,KC_PGUP,KC_PGDOWN,KC_MEDIA_NEXT_TRACK,________,________,
149 KC_AUDIO_VOL_UP,KC_AUDIO_VOL_DOWN,KC_AUDIO_MUTE,KC_MEDIA_PLAY_PAUSE,________,
152 ________,________,KC_WWW_BACK),
157 //**************************WINDOWS NAVIGATION LAYER**************************
159 [_NAV] = KEYMAP(________,________,________,________,________,________,________,
160 ________,________,SNAPLEFT,________,SNAPRGHT,LALT(KC_LEFT),________,
161 ________,LCTL(KC_W),PREVTAB,LGUI(KC_D),NEXTTAB,________,
162 ________,________,WORKLEFT,________,WORKRIGHT,________,________,
163 ________,________,________,________,________,
167 ________,________,________,
170 ________,________,________,________,________,________,________,
171 ________,________,SNAPUP ,KC_UP ,SNAPDOWN,________,________,
172 ________,KC_LEFT ,KC_DOWN ,KC_RIGHT,________,________,
173 ________,________,________,________,________,________,________,
174 ________,________,________,________,________,
179 ________,________,________),
181 //****************************NUMPAD LAYER****************************
182 [_NUMPAD] = KEYMAP(________,________,________,________,________,________,________,
183 ________,________,________,________,________,________,________,
184 ________,________,________,________,________,________,
185 ________,________,________,________,________,________,________,
186 ________,________,________,________,________,
190 ________,________,________,
192 BL_TOGG ,BL_STEP ,________,________,________,________,________,
193 ________,________,KC_7 ,KC_8 ,KC_9 ,________,________,
194 ________,KC_4 ,KC_5 ,KC_6 ,________,________,
195 ________,________,KC_1 ,KC_2 ,KC_3 ,________,________,
196 KC_0 ,KC_0 , KC_DOT ,________,________,
200 ________,________,KC_0),
201 //****************************TEXT/INTELLIJ NAVIGATION LAYER****************************
202 [_TEXTNAV] = KEYMAP(________,________,________,________,________,________,________,
203 ________,MEH(KC_Q),LSFT(KC_ESCAPE),MEH(KC_D),MEH(KC_2),LALT(LSFT(KC_UP)),________,
204 ________,LALT(KC_F7),LCTL(KC_LEFT),LCTL(KC_B),LCTL(KC_RIGHT),LALT(LSFT(KC_DOWN)),
205 ________,________,________,LCTL(LSFT(KC_COMMA)),MEH(KC_DOT),LALT(KC_MS_WH_UP),________,________,________,________,________,________,________,________,________,________,LCTL(KC_DELETE),________,LALT(LSFT(KC_F9)),________,________,________,________,________,________,________,MEH(KC_5),LALT(LSFT(KC_Z)),________,LALT(KC_Z),________,________,________,LCTL(LSFT(KC_LEFT)),LALT(LCTL(KC_S)),LCTL(LSFT(KC_RIGHT)),LCTL(LSFT(KC_COMMA)),________,________,________,________,________,________,________,________,________,________,________,________,________,________,________,________,________,________,________)
208 const uint16_t PROGMEM fn_actions[] = {
209 [1] = ACTION_LAYER_TAP_TOGGLE(1)
212 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
216 if (record->event.pressed) {
217 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
223 if (record->event.pressed) {
230 if (record->event.pressed) {
237 if (record->event.pressed) {
244 if (record->event.pressed) {
251 if (record->event.pressed) {
258 register_code(KC_LALT);
263 unregister_code(KC_LALT);
273 void matrix_scan_user(void) {
275 uint8_t layer = biton32(layer_state);
277 ergodox_board_led_on();
278 ergodox_led_all_on();
280 ergodox_board_led_off();
281 ergodox_right_led_1_off();
282 ergodox_right_led_2_off();
283 ergodox_right_led_3_off();
286 ergodox_right_led_1_on();
289 ergodox_right_led_2_on();
292 ergodox_right_led_3_on();
295 ergodox_right_led_1_on();
296 ergodox_right_led_2_on();
299 ergodox_right_led_1_on();
300 ergodox_right_led_3_on();
303 ergodox_right_led_2_on();
304 ergodox_right_led_3_on();
307 ergodox_right_led_1_on();
308 ergodox_right_led_2_on();
309 ergodox_right_led_3_on();