aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornathanvercaemert <50712356+nathanvercaemert@users.noreply.github.com>2020-05-26 14:46:02 -0400
committerGitHub <noreply@github.com>2020-05-26 11:46:02 -0700
commit5d3bf8a050f3c0beb1f91147dc1ab54de36cbb05 (patch)
treef8af457fcfc0168c253cdcfb2d9e1244dd2b77a9
parent6501377070ff20bd061ea85c7ae5517652b6478b (diff)
downloadqmk_firmware-5d3bf8a050f3c0beb1f91147dc1ab54de36cbb05.tar.gz
qmk_firmware-5d3bf8a050f3c0beb1f91147dc1ab54de36cbb05.zip
[Keymap] Contributing Home-Row-Centric-Mousekey Layout (#9195)
* adding personal keymap to repository * starting to customize documentation to keymap * updated readme * updated readme
-rw-r--r--keyboards/ergodox_ez/keymaps/nathanvercaemert/config.h29
-rw-r--r--keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c351
-rw-r--r--keyboards/ergodox_ez/keymaps/nathanvercaemert/readme.md26
-rw-r--r--keyboards/ergodox_ez/keymaps/nathanvercaemert/rules.mk10
4 files changed, 416 insertions, 0 deletions
diff --git a/keyboards/ergodox_ez/keymaps/nathanvercaemert/config.h b/keyboards/ergodox_ez/keymaps/nathanvercaemert/config.h
new file mode 100644
index 000000000..6d69b0011
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/nathanvercaemert/config.h
@@ -0,0 +1,29 @@
1/*
2 Set any config.h overrides for your specific keymap here.
3 See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
4*/
5#define ORYX_CONFIGURATOR
6#undef TAPPING_TERM
7#define TAPPING_TERM 175
8
9#undef MOUSEKEY_DELAY
10#define MOUSEKEY_DELAY 20
11
12#undef MOUSEKEY_MAX_SPEED
13#define MOUSEKEY_MAX_SPEED 14
14
15#undef MOUSEKEY_TIME_TO_MAX
16#define MOUSEKEY_TIME_TO_MAX 30
17
18#undef MOUSEKEY_WHEEL_INTERVAL
19#define MOUSEKEY_WHEEL_INTERVAL 50
20
21// /* Temporarily defining a tapping term that is ridiculous to see if i can tell if lt is working. */
22// #undef TAPPING_TERM
23// #define TAPPING_TERM 499
24
25/* Turning permissive hold and ignore mod tap interrupt off in order to test the tapping term. */
26#undef PERMISSIVE_HOLD
27#define PERMISSIVE_HOLD
28#undef IGNORE_MOD_TAP_INTERRUPT
29#define IGNORE_MOD_TAP_INTERRUPT
diff --git a/keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c b/keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c
new file mode 100644
index 000000000..c2960cfa1
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c
@@ -0,0 +1,351 @@
1#include QMK_KEYBOARD_H
2#include "version.h"
3#include "keymap_german.h"
4#include "keymap_nordic.h"
5#include "keymap_french.h"
6#include "keymap_spanish.h"
7#include "keymap_hungarian.h"
8#include "keymap_swedish.h"
9#include "keymap_br_abnt2.h"
10#include "keymap_canadian_multilingual.h"
11#include "keymap_german_ch.h"
12#include "keymap_jp.h"
13#include "keymap_bepo.h"
14
15#define KC_MAC_UNDO LGUI(KC_Z)
16#define KC_MAC_CUT LGUI(KC_X)
17#define KC_MAC_COPY LGUI(KC_C)
18#define KC_MAC_PASTE LGUI(KC_V)
19#define KC_PC_UNDO LCTL(KC_Z)
20#define KC_PC_CUT LCTL(KC_X)
21#define KC_PC_COPY LCTL(KC_C)
22#define KC_PC_PASTE LCTL(KC_V)
23#define ES_LESS_MAC KC_GRAVE
24#define ES_GRTR_MAC LSFT(KC_GRAVE)
25#define ES_BSLS_MAC ALGR(KC_6)
26#define NO_PIPE_ALT KC_GRAVE
27#define NO_BSLS_ALT KC_EQUAL
28
29enum custom_keycodes {
30 RGB_SLD = EZ_SAFE_RANGE,
31};
32
33// tapdance keycodes
34enum td_keycodes {
35 CTRL_TO12,
36 SHIFT_TO13,
37 ALT_TO11
38};
39
40// define a type containing as many tapdance states as you need
41typedef enum {
42 SINGLE_TAP,
43 SINGLE_HOLD,
44} td_state_t;
45
46// create a global instance of the tapdance state type
47static td_state_t td_state;
48
49// declare your tapdance functions:
50
51// function to determine the current tapdance state
52int cur_dance (qk_tap_dance_state_t *state);
53
54// `finished` and `reset` functions for each tapdance keycode
55void ctrlto12_finished (qk_tap_dance_state_t *state, void *user_data);
56void ctrlto12_reset (qk_tap_dance_state_t *state, void *user_data);
57void altto11_finished (qk_tap_dance_state_t *state, void *user_data);
58void altto11_reset (qk_tap_dance_state_t *state, void *user_data);
59void shiftto13_finished (qk_tap_dance_state_t *state, void *user_data);
60void shiftto13_reset (qk_tap_dance_state_t *state, void *user_data);
61
62const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
63 [0] = LAYOUT_ergodox_pretty(
64 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
65 KC_INSERT, KC_Q, LGUI_T(KC_W), MT(MOD_HYPR, KC_E),LT(5,KC_R), KC_T, KC_NO, KC_NO, KC_Y, LT(6,KC_U), MT(MOD_HYPR, KC_I),RGUI_T(KC_O), KC_P, KC_PSCREEN,
66 KC_ESCAPE, LSFT_T(KC_A), LCTL_T(KC_S), LALT_T(KC_D), LT(1,KC_F), KC_G, KC_H, LT(2,KC_J), RALT_T(KC_K), RCTL_T(KC_L), RSFT_T(KC_SCOLON),KC_CAPSLOCK,
67 KC_HOME, LT(9,KC_Z), MT(MOD_LGUI | MOD_LCTL,KC_X), LT(7,KC_C), LT(3,KC_V), KC_B, KC_NO, KC_NO, KC_N, LT(4,KC_M), LT(8,KC_COMMA), MT(MOD_RGUI | MOD_RCTL, KC_DOT), KC_QUOTE, KC_END,
68 KC_NO, KC_NO, KC_NO, KC_NO, KC_DELETE, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO,
69 KC_NO, KC_NO, KC_NO, KC_NO,
70 KC_NO, KC_NO,
71 TO(10), KC_BSPACE, KC_NO, KC_NO, KC_ENTER, KC_SPACE
72 ),
73 [1] = LAYOUT_ergodox_pretty(
74 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
75 KC_TRANSPARENT, KC_NO, KC_LGUI, KC_HYPR, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_7, KC_8, KC_9, KC_NO, KC_TRANSPARENT,
76 KC_TRANSPARENT, KC_LSHIFT, KC_LCTRL, KC_LALT, KC_TRANSPARENT, KC_NO, KC_NO, KC_4, KC_5, KC_6, KC_0, KC_TRANSPARENT,
77 KC_TRANSPARENT, KC_NO, MT(MOD_LGUI | MOD_LCTL,KC_NO), KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_1, KC_2, KC_3, KC_NO, KC_TRANSPARENT,
78 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
79 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
80 KC_TRANSPARENT, KC_TRANSPARENT,
81 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
82 ),
83 [2] = LAYOUT_ergodox_pretty(
84 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
85 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_HYPR, KC_RGUI, KC_NO, KC_TRANSPARENT,
86 KC_TRANSPARENT, KC_LPRN, KC_RPRN, KC_ASTR, KC_SLASH, KC_NO, KC_NO, KC_TRANSPARENT, KC_RALT, KC_RCTRL, KC_RSHIFT, KC_TRANSPARENT,
87 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, MT(MOD_RGUI | MOD_RCTL, KC_NO), KC_NO, KC_TRANSPARENT,
88 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
89 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
90 KC_TRANSPARENT, KC_TRANSPARENT,
91 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
92 ),
93 [3] = LAYOUT_ergodox_pretty(
94 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
95 KC_TRANSPARENT, KC_NO, KC_LGUI, KC_HYPR, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRANSPARENT,
96 KC_TRANSPARENT, KC_LSHIFT, KC_LCTRL, KC_LALT, KC_NO, KC_NO, KC_NO, KC_F5, KC_F6, KC_F7, KC_F8, KC_TRANSPARENT,
97 KC_TRANSPARENT, KC_NO, MT(MOD_LGUI | MOD_LCTL,KC_NO), KC_NO, KC_TRANSPARENT, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRANSPARENT,
98 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
99 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
100 KC_TRANSPARENT, KC_TRANSPARENT,
101 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
102 ),
103 [4] = LAYOUT_ergodox_pretty(
104 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
105 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_HYPR, KC_RGUI, KC_NO, KC_TRANSPARENT,
106 KC_TRANSPARENT, KC_LBRACKET, KC_RBRACKET, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RCTRL, KC_RSHIFT, KC_TRANSPARENT,
107 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_TRANSPARENT, KC_NO, MT(MOD_RGUI | MOD_RCTL, KC_NO), KC_NO, KC_TRANSPARENT,
108 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
109 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
110 KC_TRANSPARENT, KC_TRANSPARENT,
111 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
112 ),
113 [5] = LAYOUT_ergodox_pretty(
114 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
115 KC_TRANSPARENT, KC_NO, KC_LGUI, KC_HYPR, KC_TRANSPARENT, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT,
116 KC_TRANSPARENT, KC_LSHIFT, KC_LCTRL, KC_LALT, KC_NO, KC_NO, KC_NO, KC_HASH, KC_BSLASH, KC_GRAVE, KC_TILD, KC_TRANSPARENT,
117 KC_TRANSPARENT, KC_NO, MT(MOD_LGUI | MOD_LCTL,KC_NO), KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT,
118 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
119 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
120 KC_TRANSPARENT, KC_TRANSPARENT,
121 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
122 ),
123 [6] = LAYOUT_ergodox_pretty(
124 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
125 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_TRANSPARENT, KC_HYPR, KC_RGUI, KC_NO, KC_TRANSPARENT,
126 KC_TRANSPARENT, KC_UNDS, KC_EQUAL, KC_MINUS, KC_PLUS, KC_NO, KC_NO, KC_NO, KC_RALT, KC_RCTRL, KC_RSHIFT, KC_TRANSPARENT,
127 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, MT(MOD_RGUI | MOD_RCTL, KC_NO), KC_NO, KC_TRANSPARENT,
128 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
129 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
130 KC_TRANSPARENT, KC_TRANSPARENT,
131 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
132 ),
133 [7] = LAYOUT_ergodox_pretty(
134 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
135 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT,
136 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_AT, KC_DLR, KC_PERC, KC_CIRC, KC_TRANSPARENT,
137 KC_TRANSPARENT, KC_NO, KC_NO, KC_TRANSPARENT, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT,
138 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
139 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
140 KC_TRANSPARENT, KC_TRANSPARENT,
141 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
142 ),
143 [8] = LAYOUT_ergodox_pretty(
144 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
145 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT,
146 KC_TRANSPARENT, KC_LCBR, KC_RCBR, KC_AMPR, KC_PIPE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT,
147 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_TRANSPARENT, KC_NO, KC_NO, KC_TRANSPARENT,
148 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
149 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
150 KC_TRANSPARENT, KC_TRANSPARENT,
151 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
152 ),
153 [9] = LAYOUT_ergodox_pretty(
154 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
155 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_AUDIO_VOL_UP,KC_NO, KC_NO, KC_TRANSPARENT,
156 KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MEDIA_PREV_TRACK,KC_AUDIO_VOL_DOWN,KC_MEDIA_NEXT_TRACK,KC_MEDIA_PLAY_PAUSE,KC_TRANSPARENT,
157 KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT,
158 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
159 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
160 KC_TRANSPARENT, KC_TRANSPARENT,
161 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
162 ),
163 [10] = LAYOUT_ergodox_pretty(
164 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
165 KC_TRANSPARENT, KC_NO, KC_LGUI, KC_MS_BTN2, KC_NO, KC_NO, KC_TRANSPARENT, MT(MOD_RCTL, KC_A), KC_NO, KC_NO, KC_MS_UP, KC_NO, KC_NO, KC_TRANSPARENT,
166 KC_TRANSPARENT, TD(SHIFT_TO13), TD(CTRL_TO12), TD(ALT_TO11), KC_MS_BTN1, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_NO, KC_TRANSPARENT,
167 KC_TRANSPARENT, KC_NO, MT(MOD_LGUI | MOD_LCTL,KC_NO), KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT,
168 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
169 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
170 KC_TRANSPARENT, KC_TRANSPARENT,
171 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, TO(0)
172 ),
173 [11] = LAYOUT_ergodox_pretty(
174 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
175 KC_TRANSPARENT, KC_NO, KC_LGUI, KC_HYPR, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRANSPARENT,
176 KC_TRANSPARENT, KC_LSHIFT, KC_LCTRL, KC_LALT, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_TRANSPARENT,
177 KC_TRANSPARENT, KC_NO, MT(MOD_LGUI | MOD_LCTL,KC_NO), KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT,
178 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
179 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
180 KC_TRANSPARENT, KC_TRANSPARENT,
181 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, TO(0)
182 ),
183 [12] = LAYOUT_ergodox_pretty(
184 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
185 KC_TRANSPARENT, KC_NO, KC_LGUI, KC_HYPR, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_MS_WH_UP, KC_NO, KC_NO, KC_TRANSPARENT,
186 KC_TRANSPARENT, KC_LSHIFT, KC_LCTRL, KC_LALT, KC_NO, KC_NO, KC_NO, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_NO, KC_TRANSPARENT,
187 KC_TRANSPARENT, KC_NO, MT(MOD_LGUI | MOD_LCTL,KC_NO), KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT,
188 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
189 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
190 KC_TRANSPARENT, KC_TRANSPARENT,
191 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, TO(0)
192 ),
193 [13] = LAYOUT_ergodox_pretty(
194 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
195 KC_TRANSPARENT, KC_NO, KC_LGUI, KC_HYPR, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_TRANSPARENT,
196 KC_TRANSPARENT, KC_LSHIFT, KC_LCTRL, KC_LALT, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGDOWN, KC_NO, KC_NO, KC_TRANSPARENT,
197 KC_TRANSPARENT, KC_NO, MT(MOD_LGUI | MOD_LCTL,KC_NO), KC_NO, KC_NO, KC_NO, KC_TRANSPARENT, KC_TRANSPARENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRANSPARENT,
198 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
199 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
200 KC_TRANSPARENT, KC_TRANSPARENT,
201 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, TO(0)
202 ),
203};
204
205
206/* Commenting out for debug purposes */
207// bool process_record_user(uint16_t keycode, keyrecord_t *record) {
208// switch (keycode) {
209// }
210// return true;
211// }
212
213uint32_t layer_state_set_user(uint32_t state) {
214 uint8_t layer = biton32(state);
215 ergodox_board_led_off();
216 ergodox_right_led_1_off();
217 ergodox_right_led_2_off();
218 ergodox_right_led_3_off();
219 switch (layer) {
220 case 1:
221 ergodox_right_led_1_on();
222 break;
223 case 2:
224 ergodox_right_led_2_on();
225 break;
226 case 3:
227 ergodox_right_led_3_on();
228 break;
229 case 4:
230 ergodox_right_led_1_on();
231 ergodox_right_led_2_on();
232 break;
233 case 5:
234 ergodox_right_led_1_on();
235 ergodox_right_led_3_on();
236 break;
237 case 6:
238 ergodox_right_led_2_on();
239 ergodox_right_led_3_on();
240 break;
241 case 7:
242 ergodox_right_led_1_on();
243 ergodox_right_led_2_on();
244 ergodox_right_led_3_on();
245 break;
246 default:
247 break;
248 }
249 return state;
250};
251
252// determine the tapdance state to return
253int cur_dance (qk_tap_dance_state_t *state) {
254 if (state->count == 1) {
255 if (state->interrupted || !state->pressed) { return SINGLE_TAP; }
256 else { return SINGLE_HOLD; }
257 }
258 else { return 2; } // any number higher than the maximum state value you return above
259}
260
261void ctrlto12_finished (qk_tap_dance_state_t *state, void *user_data) {
262 td_state = cur_dance(state);
263 switch (td_state) {
264 case SINGLE_TAP:
265 layer_on(12);
266 break;
267 case SINGLE_HOLD:
268 register_mods(MOD_BIT(KC_LCTRL)); // for a layer-tap key, use `layer_on(_MY_LAYER)` here
269 break;
270 }
271}
272
273void ctrlto12_reset (qk_tap_dance_state_t *state, void *user_data) {
274 switch (td_state) {
275 case SINGLE_TAP:
276 break;
277 case SINGLE_HOLD:
278 unregister_mods(MOD_BIT(KC_LCTRL)); // for a layer-tap key, use `layer_off(_MY_LAYER)` here
279 break;
280 }
281}
282
283void shiftto13_finished (qk_tap_dance_state_t *state, void *user_data) {
284 td_state = cur_dance(state);
285 switch (td_state) {
286 case SINGLE_TAP:
287 layer_on(13);
288 break;
289 case SINGLE_HOLD:
290 register_mods(MOD_BIT(KC_LSHIFT)); // for a layer-tap key, use `layer_on(_MY_LAYER)` here
291 break;
292 }
293}
294
295void shiftto13_reset (qk_tap_dance_state_t *state, void *user_data) {
296 switch (td_state) {
297 case SINGLE_TAP:
298 break;
299 case SINGLE_HOLD:
300 unregister_mods(MOD_BIT(KC_LSHIFT)); // for a layer-tap key, use `layer_off(_MY_LAYER)` here
301 break;
302 }
303}
304
305void altto11_finished (qk_tap_dance_state_t *state, void *user_data) {
306 td_state = cur_dance(state);
307 switch (td_state) {
308 case SINGLE_TAP:
309 layer_on(11);
310 break;
311 case SINGLE_HOLD:
312 register_mods(MOD_BIT(KC_LALT)); // for a layer-tap key, use `layer_on(_MY_LAYER)` here
313 break;
314 }
315}
316
317void altto11_reset (qk_tap_dance_state_t *state, void *user_data) {
318 switch (td_state) {
319 case SINGLE_TAP:
320 break;
321 case SINGLE_HOLD:
322 unregister_mods(MOD_BIT(KC_LALT)); // for a layer-tap key, use `layer_off(_MY_LAYER)` here
323 break;
324 }
325}
326
327// define `ACTION_TAP_DANCE_FN_ADVANCED()` for each tapdance keycode, passing in `finished` and `reset` functions
328qk_tap_dance_action_t tap_dance_actions[] = {
329 [CTRL_TO12] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctrlto12_finished, ctrlto12_reset),
330 [SHIFT_TO13] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shiftto13_finished, shiftto13_reset),
331 [ALT_TO11] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altto11_finished, altto11_reset)
332};
333
334/* Debugging functions */
335
336void keyboard_post_init_user(void) {
337 // Customise these values to desired behaviour
338// debug_enable=true;
339// debug_matrix=true;
340// debug_keyboard=true;
341// debug_mouse=true;
342}
343
344bool process_record_user(uint16_t keycode, keyrecord_t *record) {
345 // If console is enabled, it will print the matrix position and status of each key pressed
346// #ifdef CONSOLE_ENABLE
347// uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
348// #endif
349 return true;
350}
351
diff --git a/keyboards/ergodox_ez/keymaps/nathanvercaemert/readme.md b/keyboards/ergodox_ez/keymaps/nathanvercaemert/readme.md
new file mode 100644
index 000000000..5570d9881
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/nathanvercaemert/readme.md
@@ -0,0 +1,26 @@
1# The nathanvercaemert ErgoDox EZ configuration
2
3Centered around the home row and the use of mouse keys, this configuration focuses
4on minimal finger movement. No key is more than one unit away from a finger on the home row.
5
6## Layers
7
8* Base Layer
9 * The two main thumb keys provide a loop to the mouse key layer. Pressing the left followed by the right always guarantees that you are on the base layer.
10 * There are a lot of dual function keys on the base layer.
11 * The layout of the letters is qwerty.
12 * Pinkys, ring fingers, and middle fingers apply dual function modifiers (along with the keys above and below the ring fingers.)
13* Numbers, Symbols, and Function Keys.
14 * From the base layer, many keys are dual function layer switches.
15 * The switch on one hand changes the home row of the other hand to a row of symbols in most cases.
16 * The left index finger, and the key below it, change the right hand to the numbers and function keys
17 respectfully.
18* Mouse Layer
19 * Clicking the main left thumb key navigates to the mouse layer (10.) Some dual function keys (technically tap dance functions) allow the left hand to apply modifiers to mouse clicks while tapping switches to
20 navigation layers.
21* Navigation Layers
22 * From the Mouse Layer, taps to the left home row navigate to scroll keys, arrow keys, and page keys.
23
24Here is the image of my keymap:
25
26![Default](https://i.imgur.com/kXywQIq.png) \ No newline at end of file
diff --git a/keyboards/ergodox_ez/keymaps/nathanvercaemert/rules.mk b/keyboards/ergodox_ez/keymaps/nathanvercaemert/rules.mk
new file mode 100644
index 000000000..b41c275dd
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/nathanvercaemert/rules.mk
@@ -0,0 +1,10 @@
1# Set any rules.mk overrides for your specific keymap here.
2# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
3LINK_TIME_OPTIMIZATION_ENABLE = yes
4COMMAND_ENABLE = no
5RGBLIGHT_ENABLE = no
6TAP_DANCE_ENABLE=yes
7
8
9#Beginning debugging process for LT() and permissive hold
10CONSOLE_ENABLE = yes