summaryrefslogtreecommitdiff
path: root/keyboards/ergodox_ez
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/ergodox_ez')
-rw-r--r--keyboards/ergodox_ez/config.h2
-rw-r--r--keyboards/ergodox_ez/ergodox_ez.c10
-rw-r--r--keyboards/ergodox_ez/info.json2
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h10
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js31
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c26
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/aliases_definitions.c14
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/custom_keycodes.c1
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c9
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/layers/layers_definitions.c2
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_setup.c13
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/package.json2
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk1
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/dot_comm.c41
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/h_mouse_gui.c39
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/j_media_meh.c43
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/k_numpad_hyper.c45
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/m_chords_hyper.c45
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/none_lead.c4
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/quot_dquot.c41
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/scln_coln.c43
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/u_arrows_gui.c39
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/w_media_meh.c43
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c40
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dances.c58
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c2
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/keymap.c330
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/readme.md65
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/rules.mk1
-rw-r--r--keyboards/ergodox_ez/matrix.c12
-rw-r--r--keyboards/ergodox_ez/rules.mk6
31 files changed, 919 insertions, 101 deletions
diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h
index cbf7f8aaa2..d22836bd86 100644
--- a/keyboards/ergodox_ez/config.h
+++ b/keyboards/ergodox_ez/config.h
@@ -107,7 +107,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 24
#define DRIVER_2_LED_TOTAL 24
-#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL
+#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
// #define RGBLIGHT_COLOR_LAYER_0 0x00, 0x00, 0xFF
/* #define RGBLIGHT_COLOR_LAYER_1 0x00, 0x00, 0xFF */
diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c
index 09443cf725..947a173e36 100644
--- a/keyboards/ergodox_ez/ergodox_ez.c
+++ b/keyboards/ergodox_ez/ergodox_ez.c
@@ -304,4 +304,14 @@ led_config_t g_led_config = { {
4, 4, 1, 1, 1, 1
} };
+void suspend_power_down_kb(void) {
+ rgb_matrix_set_suspend_state(true);
+ suspend_power_down_user();
+}
+
+ void suspend_wakeup_init_kb(void) {
+ rgb_matrix_set_suspend_state(false);
+ suspend_wakeup_init_user();
+}
+
#endif
diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json
index 6f7a941574..e543206fed 100644
--- a/keyboards/ergodox_ez/info.json
+++ b/keyboards/ergodox_ez/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "ErgoDox EZ",
"url": "ergodox-ez.com",
- "maintainer": "erez",
+ "maintainer": "ZSA",
"width": 17,
"height": 8,
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h b/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h
index e188d95d51..a0ba655ede 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h
@@ -6,12 +6,15 @@
#undef TAPPING_TERM
-#define TAPPING_TERM 200
+#define TAPPING_TERM 175
#undef DEBOUNCE
-#define DEBOUNCE 10
+#define DEBOUNCE 15
#undef IGNORE_MOD_TAP_INTERRUPT
+#define IGNORE_MOD_TAP_INTERRUPT
+
+#define RGB_DISABLE_WHEN_USB_SUSPENDED true
#undef FORCE_NKRO
#define FORCE_NKRO
@@ -20,12 +23,13 @@
#define TAPPING_TOGGLE 5
#define LEADER_TIMEOUT 1000
-#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD
#define QMK_KEYS_PER_SCAN 4
#define DANCING_TERM 175
#define ONESHOT_TAP_TOGGLE 5
+
+#undef ONESHOT_TIMEOUT
#define ONESHOT_TIMEOUT 5000
#define COMBO_COUNT 4
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js b/keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js
index 23f19d18af..81a4e93fda 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js
@@ -1,19 +1,22 @@
-let gulp = require('gulp');
-let run = require('gulp-run-command').default;
+const gulp = require('gulp');
+const run = require('gulp-run-command').default;
-gulp.task('clean', run('rm -rf ../../../../.build'));
+const ROOT_DIR = '../../../../';
+const BUILD_DIR = `${ROOT_DIR}.build`;
+const HACKER_DVORAK_DIR = './**/*';
-gulp.task('build', ['clean'], run('make -C ../../../../ ergodox_ez:hacker_dvorak', {
- ignoreErrors: true
-}));
+const CLEAN_CMD = `rm -rf ${BUILD_DIR}`;
+const BUILD_CMD = `make -C ${ROOT_DIR} ergodox_ez:hacker_dvorak`;
+
+gulp.task('clean', run(CLEAN_CMD));
-gulp.task('watch', ['build'], () => {
- gulp.watch([
- 'keymap.c',
- 'config.h',
- 'rules.mk',
- ], ['build']);
-});
+gulp.task('build', gulp.series('clean', run(BUILD_CMD, {
+ ignoreErrors: true
+})));
+
+gulp.task('watch', gulp.series('build', () => {
+ gulp.watch(HACKER_DVORAK_DIR, gulp.series('build'));
+}));
-gulp.task('default', ['watch']);
+gulp.task('default', gulp.series('watch'));
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c
index 65878a67cb..71cf1053aa 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c
@@ -13,21 +13,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
// TAB | MOD TAP: ALT+SHIFT | MOD TAP: CTRL+ALT | MOD TAP: CTRL+SHIFT | P | Y | //
// | | | | | | //
- KC_TAB, TD(NONE_LEAD), TD(QUOT_DQUO), TD(DOT_COMM), ALL_T(KC_P), MEH_T(KC_Y), DYN_MACRO_PLAY1, //
+ KC_TAB, TD(NONE_LEAD), TD(QUOT_DQUO), TD(DOT_COMM), LCG_T(KC_P), LAG_T(KC_Y), DYN_MACRO_PLAY1, //
// | LEAD | " | , | | | //
- // | TAP DANCE: NONE | TAP DANCE: ' | TAP DANCE: . | MOD TAP: HYPER | MOD TAP: MEH | //
+ // | TAP DANCE: NONE | TAP DANCE: ' | TAP DANCE: . | MOD TAP: CTRL+GUI | MOD TAP: ALT+GUI | //
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------| PLAY DYNAMIC MACRO 1 //
- // | MOD TAP: ALT | MOD TAP: CTRL | LAYER TAP: SHIFT | LAYER TAP: ARROW KEYS | MOD TAP: GUI | //
+ // | MOD TAP: ALT | MOD TAP: CTRL | LAYER TAP: SHIFT | M TAP DANCE: ARROWS/GUI | MOD TAP: SHIFT+GUI | //
// | | | | Ü | | //
- TD(EQL_PLUS), ALT_T(KC_A), CTL_T(KC_O), SFT_T(KC_E), LT(ARROWS, KC_U), LGUI_T(KC_I), //-----------------------//
+ TD(EQL_PLUS), LALT_T(KC_A), LCTL_T(KC_O), LSFT_T(KC_E), TD(U_ARR_GUI), SGUI_T(KC_I), //-----------------------//
// + | Á | Ó | É | Ú | Í | //
// TAP DANCE: = | TAP DANCE: A | TAP DANCE: O | TAP DANCE: E | TAP DANCE: U | TAP DANCE: I | //
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------| META //
// STOP RECORDING | MOD TAP: GUI+SHIFT+ALT | Q | J | K | X | //
// | | | | | | //
- DYN_REC_STOP, TD(SCLN_COLN), SGUI_T(KC_Q), LT(MEDIA_FN, KC_J), LT(NUMPAD, KC_K), LCAG_T(KC_X), KC_LGUI, //
+ DYN_REC_STOP, TD(SCLN_COLN), LCAG_T(KC_Q), TD(J_MED_MEH), TD(K_NUM_HYP), LCSG_T(KC_X), KC_LGUI, //
// | : | | | | | //
- // DYNAMIC MACRO | TAP DANCE: ; | MOD TAP: SHIFT+GUI | LAYER TAP: MEDIA/F-KEYS | LAYER TAP: ATM NUMPAD | MOD TAP: CTL+ALT+GUI | //
+ // DYNAMIC MACRO | TAP DANCE: ; | MOD TAP: SHIFT+GUI | M TAP DANCE: MEDIA/MEH | M TAP DANCE: ATM/HYPER | MOD TAP: CTL+SHIFT+GUI | //
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
// LAYERS SWITCHER | APPLICATION MENU | | | //
// | | | | SCROLL //
@@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//-------------------------+-------------------------+------------------------//
// | | HOME //
// | | //
- /* SPACE | BACKSPACE */ KC_HOME, //
+ /* SPACE | BACKSPACE */ KC_HOME, //
// | | //
// | | //
KC_SPC, KC_BSPC, //-----------------------//
@@ -69,19 +69,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
// | | | | | | //
// | | | | | | //
- DYN_MACRO_PLAY2, MEH_T(KC_F), ALL_T(KC_G), C_S_T(KC_C), LCA_T(KC_R), LAS_T(KC_L), TD(SLSH_BSLS), //
+ DYN_MACRO_PLAY2, LAG_T(KC_F), LCG_T(KC_G), C_S_T(KC_C), LCA_T(KC_R), LAS_T(KC_L), TD(SLSH_BSLS), //
// | | | | | | //
// | | | | | | //
// |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
// | | | | | | //
// | | | | | | //
- /*-----------------------*/ LGUI_T(KC_D), LT(MOUSE, KC_H), SFT_T(KC_T), CTL_T(KC_N), ALT_T(KC_S), TD(MINS_UNDS), //
+ /*-----------------------*/ SGUI_T(KC_D), TD(H_MOU_GUI), LSFT_T(KC_T), LCTL_T(KC_N), LALT_T(KC_S), TD(MINS_UNDS), //
// | | | | | | //
// | | | | | | //
// |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
// | | | | | | //
// | | | | | | //
- KC_LGUI, LCAG_T(KC_B), LT(HYPER, KC_M), LT(MEDIA_FN, KC_W), SGUI_T(KC_V), LGAS_T(KC_Z), COMPOSE, //
+ KC_LGUI, LCSG_T(KC_B), TD(M_CHO_HYP), TD(W_MED_MEH), LCAG_T(KC_V), LASG_T(KC_Z), COMPOSE, //
// | | | | | | //
// | | | | | | ⎄ //
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
@@ -163,7 +163,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_RBRC, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX,
// right thumb
- KC_MS_BTN5, MO(HYPER),
+ KC_MS_BTN5, MO(CHORD),
KC_MS_BTN4,
KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1
),
@@ -295,10 +295,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// right thumb
XXXXXXX, XXXXXXX,
XXXXXXX,
- RGB_GREEN, XXXXXXX, XXXXXXX
+ XXXXXXX, XXXXXXX, XXXXXXX
),
- [HYPER] = LAYOUT_ergodox(
+ [CHORD] = LAYOUT_ergodox(
// left hand
XXXXXXX, HYPR(KC_F1), HYPR(KC_F2), HYPR(KC_F3), HYPR(KC_F4), HYPR(KC_F5), XXXXXXX,
XXXXXXX, HYPR(KC_F6), HYPR(KC_F7), HYPR(KC_F8), HYPR(KC_F9), HYPR(KC_F10), XXXXXXX,
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/aliases_definitions.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/aliases_definitions.c
index e5eba18202..323358357a 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/aliases_definitions.c
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/aliases_definitions.c
@@ -1,5 +1,13 @@
-// Keycode aliases
+// Compound keycode aliases
#define SCTL(kc) LSFT(LCTL(kc)) // Modifier keys: SHIFT+CTRL+kc combination.
-#define LGAS_T(kc) MT(MOD_LGUI | MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, GUI+ALT+SHIFT when held.
-#define LAS_T(kc) MT(MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, ALT+SHIFT whin held.
+
+// Tap
+#define LASG_T(kc) MT(MOD_LGUI | MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, GUI+ALT+SHIFT when held.
+#define LCSG_T(kc) MT(MOD_LGUI | MOD_LSFT | MOD_LCTL, kc) // Mod tap: kc when tapped, GUI+CTL+SHIFT when held.
+
+#define LCG_T(kc) MT(MOD_LCTL | MOD_LGUI, kc) // Mod tap: kc when tapped, CTL+GUI when held.
+#define LAS_T(kc) MT(MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, ALT+SHIFT when held.
+#define LAG_T(kc) MT(MOD_LALT | MOD_LGUI, kc) // Mod tap: kc when tapped, ALT+GUI when held.
+
+// Others
#define COMPOSE KC_RALT // Compose key (used to input characters like á, ñ, ü).
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/custom_keycodes.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/custom_keycodes.c
index 368062172b..338910b53f 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/custom_keycodes.c
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/custom_keycodes.c
@@ -1,7 +1,6 @@
// Define custom user keycodes:
enum custom_keycodes {
PLACEHOLDER = SAFE_RANGE, // Can always be here.
- RGB_GREEN, // To set default RGB layer as green once.
MY_CUSTOM_MACRO, // Custom macro example.
MY_OTHER_MACRO, // Custom macro example.
DYNAMIC_MACRO_RANGE // Should always be the last.
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c
index af06d2bd81..e953f06de8 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c
@@ -9,6 +9,15 @@
#include "tap_dance/tap_dances.c"
#include "user/matrix_scan_user.c"
#include "tap_dance/mod_tap_layer_dances/none_lead.c"
+#include "tap_dance/mod_tap_layer_dances/dot_comm.c"
+#include "tap_dance/mod_tap_layer_dances/quot_dquot.c"
+#include "tap_dance/mod_tap_layer_dances/scln_coln.c"
+#include "tap_dance/mod_tap_layer_dances/u_arrows_gui.c"
+#include "tap_dance/mod_tap_layer_dances/h_mouse_gui.c"
+#include "tap_dance/mod_tap_layer_dances/j_media_meh.c"
+#include "tap_dance/mod_tap_layer_dances/w_media_meh.c"
+#include "tap_dance/mod_tap_layer_dances/k_numpad_hyper.c"
+#include "tap_dance/mod_tap_layer_dances/m_chords_hyper.c"
#include "tap_dance/tap_dance_actions.c"
#include "keycodes/custom_keycodes.c"
#include "dynamic_macro.h" // Includes dynamic macro definitions, needed *after* the custom keycodes.
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/layers/layers_definitions.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/layers/layers_definitions.c
index f190e4f6f9..f252bc802b 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/layers/layers_definitions.c
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/layers/layers_definitions.c
@@ -7,6 +7,6 @@ enum layers { // Hacker Dvorak keyboard layers:
NUMPAD = 5, // * ATM style numpad with symbols and letters that should suffice to input any numeric literal.
LAYERS = 6, // * Layer switcher used to change between DVORAK, PLOVER and GAMING layers.
MEDIA_FN = 7, // * Media, RGB and function keys from F1 to F24 in symmetric fashion.
- HYPER = 8, // * Hot keys layer (uses hyper + F1 .. F24) suitable for global shortcut tasks.
+ CHORD = 8, // * Hot keys layer (uses hyper + F1 .. F24) suitable for global shortcut tasks.
FIRMWARE = 9 // * Layer with firmware related functionality, like the reset and EEPROM keys.
};
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_setup.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_setup.c
index 1e89c4bfca..c22670a05a 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_setup.c
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_setup.c
@@ -1,14 +1 @@
LEADER_EXTERNS();
-
-void qk_leader_start(void) {
- if (!leading) {
- leading = true;
- leader_time = timer_read();
- leader_sequence_size = 0;
- leader_sequence[0] = 0;
- leader_sequence[1] = 0;
- leader_sequence[2] = 0;
- leader_sequence[3] = 0;
- leader_sequence[4] = 0;
- }
-}
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/package.json b/keyboards/ergodox_ez/keymaps/hacker_dvorak/package.json
index 116911e46b..173bcd5a86 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/package.json
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/package.json
@@ -9,7 +9,7 @@
"author": "SalchiPapa",
"license": "GPL-2.0",
"dependencies": {
- "gulp": "^3.9.1",
+ "gulp": "^4.0.0",
"gulp-run-command": "0.0.9"
}
}
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk b/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk
index 51a9ff0d49..aa13f98bd6 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk
@@ -1,6 +1,7 @@
# Set any rules.mk overrides for your specific keymap here.
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
+LINK_TIME_OPTIMIZATION_ENABLE = yes
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
TAP_DANCE_ENABLE = yes
MOUSEKEY_ENABLE = yes # Mouse keys(+4700b).
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/dot_comm.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/dot_comm.c
new file mode 100644
index 0000000000..cbfbcdaf9f
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/dot_comm.c
@@ -0,0 +1,41 @@
+//instanalize an instance of 'tap' for the Dot - Comma tap dance.
+static tap dot_comm_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void dot_comm_finished(qk_tap_dance_state_t *state, void *user_data) {
+ dot_comm_state.state = current_dance(state);
+ switch (dot_comm_state.state) {
+ case SINGLE_TAP:
+ register_code(KC_DOT);
+ break;
+
+ case SINGLE_HOLD:
+ register_code(KC_LCTL);
+ register_code(KC_LSFT);
+ break;
+
+ case DOUBLE_TAP:
+ register_code(KC_COMM);
+ break;
+ }
+}
+
+void dot_comm_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (dot_comm_state.state) {
+ case SINGLE_TAP:
+ unregister_code(KC_DOT);
+ break;
+
+ case SINGLE_HOLD:
+ unregister_code(KC_LCTL);
+ unregister_code(KC_LSFT);
+ break;
+
+ case DOUBLE_TAP:
+ unregister_code(KC_COMM);
+ break;
+ }
+ dot_comm_state.state = 0;
+}
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/h_mouse_gui.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/h_mouse_gui.c
new file mode 100644
index 0000000000..76dda6eb32
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/h_mouse_gui.c
@@ -0,0 +1,39 @@
+//instanalize an instance of 'tap' for the H - Mouse - Gui tap dance.
+static tap h_mouse_gui_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void h_mouse_gui_finished(qk_tap_dance_state_t *state, void *user_data) {
+ h_mouse_gui_state.state = current_dance(state);
+ switch (h_mouse_gui_state.state) {
+ case SINGLE_TAP:
+ register_code(KC_H);
+ break;
+
+ case SINGLE_HOLD:
+ layer_on(MOUSE);
+ break;
+
+ case DOUBLE_HOLD:
+ register_code(KC_LGUI);
+ break;
+ }
+}
+
+void h_mouse_gui_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (h_mouse_gui_state.state) {
+ case SINGLE_TAP:
+ unregister_code(KC_H);
+ break;
+
+ case SINGLE_HOLD:
+ layer_off(MOUSE);
+ break;
+
+ case DOUBLE_HOLD:
+ unregister_code(KC_LGUI);
+ break;
+ }
+ h_mouse_gui_state.state = 0;
+}
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/j_media_meh.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/j_media_meh.c
new file mode 100644
index 0000000000..daf7be1f6f
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/j_media_meh.c
@@ -0,0 +1,43 @@
+//instanalize an instance of 'tap' for the J - Media - Meh tap dance.
+static tap j_media_meh_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void j_media_meh_finished(qk_tap_dance_state_t *state, void *user_data) {
+ j_media_meh_state.state = current_dance(state);
+ switch (j_media_meh_state.state) {
+ case SINGLE_TAP:
+ register_code(KC_J);
+ break;
+
+ case SINGLE_HOLD:
+ layer_on(MEDIA_FN);
+ break;
+
+ case DOUBLE_HOLD:
+ register_code(KC_LCTL);
+ register_code(KC_LSFT);
+ register_code(KC_LALT);
+ break;
+ }
+}
+
+void j_media_meh_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (j_media_meh_state.state) {
+ case SINGLE_TAP:
+ unregister_code(KC_J);
+ break;
+
+ case SINGLE_HOLD:
+ layer_off(MEDIA_FN);
+ break;
+
+ case DOUBLE_HOLD:
+ unregister_code(KC_LCTL);
+ unregister_code(KC_LSFT);
+ unregister_code(KC_LALT);
+ break;
+ }
+ j_media_meh_state.state = 0;
+}
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/k_numpad_hyper.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/k_numpad_hyper.c
new file mode 100644
index 0000000000..609e9f5539
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/k_numpad_hyper.c
@@ -0,0 +1,45 @@
+//instanalize an instance of 'tap' for the K - Numpad - Hyper tap dance.
+static tap k_numpad_hyper_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void k_numpad_hyper_finished(qk_tap_dance_state_t *state, void *user_data) {
+ k_numpad_hyper_state.state = current_dance(state);
+ switch (k_numpad_hyper_state.state) {
+ case SINGLE_TAP:
+ register_code(KC_K);
+ break;
+
+ case SINGLE_HOLD:
+ layer_on(NUMPAD);
+ break;
+
+ case DOUBLE_HOLD:
+ register_code(KC_LCTL);
+ register_code(KC_LSFT);
+ register_code(KC_LALT);
+ register_code(KC_LGUI);
+ break;
+ }
+}
+
+void k_numpad_hyper_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (k_numpad_hyper_state.state) {
+ case SINGLE_TAP:
+ unregister_code(KC_K);
+ break;
+
+ case SINGLE_HOLD:
+ layer_off(NUMPAD);
+ break;
+
+ case DOUBLE_HOLD:
+ unregister_code(KC_LCTL);
+ unregister_code(KC_LSFT);
+ unregister_code(KC_LALT);
+ unregister_code(KC_LGUI);
+ break;
+ }
+ k_numpad_hyper_state.state = 0;
+}
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/m_chords_hyper.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/m_chords_hyper.c
new file mode 100644
index 0000000000..e7df3aef14
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/m_chords_hyper.c
@@ -0,0 +1,45 @@
+//instanalize an instance of 'tap' for the M - Chords - Hyper tap dance.
+static tap m_chords_hyper_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void m_chords_hyper_finished(qk_tap_dance_state_t *state, void *user_data) {
+ m_chords_hyper_state.state = current_dance(state);
+ switch (m_chords_hyper_state.state) {
+ case SINGLE_TAP:
+ register_code(KC_M);
+ break;
+
+ case SINGLE_HOLD:
+ layer_on(CHORD);
+ break;
+
+ case DOUBLE_HOLD:
+ register_code(KC_LCTL);
+ register_code(KC_LSFT);
+ register_code(KC_LALT);
+ register_code(KC_LGUI);
+ break;
+ }
+}
+
+void m_chords_hyper_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (m_chords_hyper_state.state) {
+ case SINGLE_TAP:
+ unregister_code(KC_M);
+ break;
+
+ case SINGLE_HOLD:
+ layer_off(CHORD);
+ break;
+
+ case DOUBLE_HOLD:
+ unregister_code(KC_LCTL);
+ unregister_code(KC_LSFT);
+ unregister_code(KC_LALT);
+ unregister_code(KC_LGUI);
+ break;
+ }
+ m_chords_hyper_state.state = 0;
+}
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/none_lead.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/none_lead.c
index 6debc1ce45..0ba31cec81 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/none_lead.c
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/none_lead.c
@@ -1,7 +1,7 @@
//instanalize an instance of 'tap' for the None - Lead tap dance.
static tap none_lead_state = {
- .is_press_action = true,
- .state = 0
+ .is_press_action = true,
+ .state = 0
};
void none_lead_finished(qk_tap_dance_state_t *state, void *user_data) {
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/quot_dquot.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/quot_dquot.c
new file mode 100644
index 0000000000..ac6da9e00e
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/quot_dquot.c
@@ -0,0 +1,41 @@
+//instanalize an instance of 'tap' for the Quote - Double Quote tap dance.
+static tap quot_dquot_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void quot_dquot_finished(qk_tap_dance_state_t *state, void *user_data) {
+ quot_dquot_state.state = current_dance(state);
+ switch (quot_dquot_state.state) {
+ case SINGLE_TAP:
+ register_code(KC_QUOT);
+ break;
+
+ case SINGLE_HOLD:
+ register_code(KC_LCTL);
+ register_code(KC_LALT);
+ break;
+
+ case DOUBLE_TAP:
+ register_code16(KC_DQUO);
+ break;
+ }
+}
+
+void quot_dquot_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (quot_dquot_state.state) {
+ case SINGLE_TAP:
+ unregister_code(KC_QUOT);
+ break;
+
+ case SINGLE_HOLD:
+ unregister_code(KC_LCTL);
+ unregister_code(KC_LALT);
+ break;
+
+ case DOUBLE_TAP:
+ unregister_code16(KC_DQUO);
+ break;
+ }
+ quot_dquot_state.state = 0;
+}
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/scln_coln.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/scln_coln.c
new file mode 100644
index 0000000000..513c932663
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/scln_coln.c
@@ -0,0 +1,43 @@
+//instanalize an instance of 'tap' for the Semicolon - Colon tap dance.
+static tap scln_coln_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void scln_coln_finished(qk_tap_dance_state_t *state, void *user_data) {
+ scln_coln_state.state = current_dance(state);
+ switch (scln_coln_state.state) {
+ case SINGLE_TAP:
+ register_code(KC_SCLN);
+ break;
+
+ case SINGLE_HOLD:
+ register_code(KC_LALT);
+ register_code(KC_LSFT);
+ register_code(KC_LGUI);
+ break;
+
+ case DOUBLE_TAP:
+ register_code16(KC_COLN);
+ break;
+ }
+}
+
+void scln_coln_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (scln_coln_state.state) {
+ case SINGLE_TAP:
+ unregister_code(KC_SCLN);
+ break;
+
+ case SINGLE_HOLD:
+ unregister_code(KC_LALT);
+ unregister_code(KC_LSFT);
+ unregister_code(KC_LGUI);
+ break;
+
+ case DOUBLE_TAP:
+ unregister_code16(KC_COLN);
+ break;
+ }
+ scln_coln_state.state = 0;
+}
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/u_arrows_gui.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/u_arrows_gui.c
new file mode 100644
index 0000000000..e57502a790
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/u_arrows_gui.c
@@ -0,0 +1,39 @@
+//instanalize an instance of 'tap' for the U - Arrows - Gui tap dance.
+static tap u_arrows_gui_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void u_arrows_gui_finished(qk_tap_dance_state_t *state, void *user_data) {
+ u_arrows_gui_state.state = current_dance(state);
+ switch (u_arrows_gui_state.state) {
+ case SINGLE_TAP:
+ register_code(KC_U);
+ break;
+
+ case SINGLE_HOLD:
+ layer_on(ARROWS);
+ break;
+
+ case DOUBLE_HOLD:
+ register_code(KC_LGUI);
+ break;
+ }
+}
+
+void u_arrows_gui_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (u_arrows_gui_state.state) {
+ case SINGLE_TAP:
+ unregister_code(KC_U);
+ break;
+
+ case SINGLE_HOLD:
+ layer_off(ARROWS);
+ break;
+
+ case DOUBLE_HOLD:
+ unregister_code(KC_LGUI);
+ break;
+ }
+ u_arrows_gui_state.state = 0;
+}
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/w_media_meh.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/w_media_meh.c
new file mode 100644
index 0000000000..c26980526c
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/w_media_meh.c
@@ -0,0 +1,43 @@
+//instanalize an instance of 'tap' for the W - Media - Meh tap dance.
+static tap w_media_meh_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void w_media_meh_finished(qk_tap_dance_state_t *state, void *user_data) {
+ w_media_meh_state.state = current_dance(state);
+ switch (w_media_meh_state.state) {
+ case SINGLE_TAP:
+ register_code(KC_W);
+ break;
+
+ case SINGLE_HOLD:
+ layer_on(MEDIA_FN);
+ break;
+
+ case DOUBLE_HOLD:
+ register_code(KC_LCTL);
+ register_code(KC_LSFT);
+ register_code(KC_LALT);
+ break;
+ }
+}
+
+void w_media_meh_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (w_media_meh_state.state) {
+ case SINGLE_TAP:
+ unregister_code(KC_W);
+ break;
+
+ case SINGLE_HOLD:
+ layer_off(MEDIA_FN);
+ break;
+
+ case DOUBLE_HOLD:
+ unregister_code(KC_LCTL);
+ unregister_code(KC_LSFT);
+ unregister_code(KC_LALT);
+ break;
+ }
+ w_media_meh_state.state = 0;
+}
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c
index 550e1f7c84..59e3e2b0dc 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c
@@ -1,20 +1,26 @@
// Register the double tap dances:
qk_tap_dance_action_t tap_dance_actions[] = {
- [EQL_PLUS] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS),
- [MINS_UNDS] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS),
- [SLSH_BSLS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS),
- [GRV_TILD] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD),
- [QUOT_DQUO] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, KC_DQUO),
- [SCLN_COLN] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_COLN),
- [ASTR_CIRC] = ACTION_TAP_DANCE_DOUBLE(KC_ASTR, KC_CIRC),
- [APMR_PIPE] = ACTION_TAP_DANCE_DOUBLE(KC_AMPR, KC_PIPE),
- [EXLM_QUES] = ACTION_TAP_DANCE_DOUBLE(KC_EXLM, KC_QUES),
- [HASH_PERC] = ACTION_TAP_DANCE_DOUBLE(KC_HASH, KC_PERC),
- [AT_DLR] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_DLR),
- [LPRN_LBRC] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_LBRC),
- [RPRN_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_RBRC),
- [LCBR_LABK] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_LABK),
- [RCBR_RABK] = ACTION_TAP_DANCE_DOUBLE(KC_RCBR, KC_RABK),
- [DOT_COMM] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_COMM),
- [NONE_LEAD] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, none_lead_finished, none_lead_reset, DANCING_TERM)
+ [EQL_PLUS] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS),
+ [MINS_UNDS] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS),
+ [SLSH_BSLS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS),
+ [GRV_TILD] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD),
+ [ASTR_CIRC] = ACTION_TAP_DANCE_DOUBLE(KC_ASTR, KC_CIRC),
+ [APMR_PIPE] = ACTION_TAP_DANCE_DOUBLE(KC_AMPR, KC_PIPE),
+ [EXLM_QUES] = ACTION_TAP_DANCE_DOUBLE(KC_EXLM, KC_QUES),
+ [HASH_PERC] = ACTION_TAP_DANCE_DOUBLE(KC_HASH, KC_PERC),
+ [AT_DLR] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_DLR),
+ [LPRN_LBRC] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_LBRC),
+ [RPRN_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_RBRC),
+ [LCBR_LABK] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_LABK),
+ [RCBR_RABK] = ACTION_TAP_DANCE_DOUBLE(KC_RCBR, KC_RABK),
+ [SCLN_COLN] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, scln_coln_finished, scln_coln_reset, DANCING_TERM),
+ [QUOT_DQUO] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, quot_dquot_finished, quot_dquot_reset, DANCING_TERM),
+ [DOT_COMM] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, dot_comm_finished, dot_comm_reset, DANCING_TERM),
+ [NONE_LEAD] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, none_lead_finished, none_lead_reset, DANCING_TERM),
+ [U_ARR_GUI] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, u_arrows_gui_finished, u_arrows_gui_reset, DANCING_TERM),
+ [H_MOU_GUI] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, h_mouse_gui_finished, h_mouse_gui_reset, DANCING_TERM),
+ [J_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, j_media_meh_finished, j_media_meh_reset, DANCING_TERM),
+ [W_MED_MEH] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, w_media_meh_finished, w_media_meh_reset, DANCING_TERM),
+ [K_NUM_HYP] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, k_numpad_hyper_finished, k_numpad_hyper_reset, DANCING_TERM),
+ [M_CHO_HYP] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, m_chords_hyper_finished, m_chords_hyper_reset, DANCING_TERM),
};
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dances.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dances.c
index 3d44698729..d05a71d7e5 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dances.c
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dances.c
@@ -4,71 +4,95 @@
// Mod tap dances: // | | | | | //
enum tap_dances { //--------------------------------------------------------------------------------------------//
// | | | | | //
- EQL_PLUS = 0, // = | + | | | | //
+ EQL_PLUS = 0, // = | | + | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- MINS_UNDS = 1, // - | _ | | | | //
+ MINS_UNDS = 1, // - | | _ | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- SLSH_BSLS = 2, // / | \ | | | | //
+ SLSH_BSLS = 2, // / | | \ | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- GRV_TILD = 3, // ` | ~ | | | | //
+ GRV_TILD = 3, // ` | | ~ | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- QUOT_DQUO = 4, // ' | " | | | | //
+ QUOT_DQUO = 4, // ' | CTRL+ALT | " | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- SCLN_COLN = 5, // ; | : | | | | //
+ SCLN_COLN = 5, // ; |ALT+SHIFT+META | : | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- ASTR_CIRC = 6, // * | ^ | | | | //
+ ASTR_CIRC = 6, // * | | ^ | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- APMR_PIPE = 7, // & | | | | | | //
+ APMR_PIPE = 7, // & | | | | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- EXLM_QUES = 8, // ! | ? | | | | //
+ EXLM_QUES = 8, // ! | | ? | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- HASH_PERC = 9, // # | % | | | | //
+ HASH_PERC = 9, // # | | % | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- AT_DLR = 10, // @ | $ | | | | //
+ AT_DLR = 10, // @ | | $ | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- LPRN_LBRC = 11, // ( | [ | | | | //
+ LPRN_LBRC = 11, // ( | | [ | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- RPRN_RBRC = 12, // ) | ] | | | | //
+ RPRN_RBRC = 12, // ) | | ] | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- LCBR_LABK = 13, // { | < | | | | //
+ LCBR_LABK = 13, // { | | < | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- RCBR_RABK = 14, // } | > | | | | //
+ RCBR_RABK = 14, // } | | > | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- DOT_COMM = 15, // . | , | | | | //
+ DOT_COMM = 15, // . | CTRL+SHIFT | , | | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
// | | | | | //
- NONE_LEAD = 16, // NONE | ALT+SHIFT | LEAD | | | //
+ NONE_LEAD = 16, // NONE | ALT+SHIFT | LEAD | | | //
+ // | | | | | //
+ //--------------------------------------------------------------------------------------------//
+ // | | | | | //
+ U_ARR_GUI = 17, // U | ARROWS | | GUI | | //
+ // | | | | | //
+ //--------------------------------------------------------------------------------------------//
+ // | | | | | //
+ H_MOU_GUI = 18, // H | MOUSE | | GUI | | //
+ // | | | | | //
+ //--------------------------------------------------------------------------------------------//
+ // | | | | | //
+ J_MED_MEH = 19, // J | MEDIA_FN | | MEH | | //
+ // | | | | | //
+ //--------------------------------------------------------------------------------------------//
+ // | | | | | //
+ W_MED_MEH = 20, // W | MEDIA_FN | | MEH | | //
+ // | | | | | //
+ //--------------------------------------------------------------------------------------------//
+ // | | | | | //
+ K_NUM_HYP = 21, // K | NUMPAD | | HYPER | | //
+ // | | | | | //
+ //--------------------------------------------------------------------------------------------//
+ // | | | | | //
+ M_CHO_HYP = 22, // M | CHORD | | HYPER | | //
// | | | | | //
//--------------------------------------------------------------------------------------------//
};
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c
index e2eeed6fa9..c0b3b9c995 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c
@@ -91,7 +91,7 @@ uint32_t layer_state_set_user(uint32_t state) {
break;
- case HYPER:
+ case CHORD:
rgblight_sethsv_noeeprom_magenta();
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c
new file mode 100644
index 0000000000..dc804d632c
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c
@@ -0,0 +1,330 @@
+// pvinis ergodox ez
+// ,------------------------------------. ,------------------------------------.
+// | | | | | | | | | | | | | | | |
+// |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
+// | | | | | | | | | | | | | | | |
+// |------+----+----+----x----x----| | | |----x----x----+----+----+------|
+// | | | | | | |----| |----| | | | | | |
+// |------+----+----+----x----x----| | | |----x----x----+----+----+------|
+// | | | | | | | | | | | | | | | |
+// `------+----+----+----+----+---------' `---------+----+----+----+----+------'
+// | | | | | | | | | | | |
+// `------------------------' `------------------------'
+// ,---------. ,---------.
+// | | | | | |
+// ,----+----+----| |----+----+----.
+// | | | | | | | |
+// | | |----| |----| | |
+// | | | | | | | |
+// `--------------' `--------------'
+
+
+#include QMK_KEYBOARD_H
+#include "pvinis.h"
+#include "mousekey.h"
+
+
+// layers
+enum {
+ MOUSE = 8,
+};
+
+// extra keys
+enum {
+ NONE = 30,
+ TD_LAYR, // SYSCTL and MOUSE layer switch
+};
+
+// application selection
+// this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon
+#define AP_SLCK ALLM(KC_S)
+#define AP_XCOD ALLM(KC_X)
+#define AP_MSGR ALLM(KC_M)
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // ,------------------------------------. ,------------------------------------.
+ // |4xFLSH| | | | | |Opt | | | | | | | | |
+ // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
+ // | Tab | | | | | | | | | | | | | | |
+ // |------+----+----+----x----x----| | | |----x----x----+----+----+------|
+ // |EscCtl| | | | | |----| |----| | | | | | Ent |
+ // |------+----+----+----x----x----| | | |----x----x----+----+----+------|
+ // |LShift| | | | | | | | | | | | | |RShift|
+ // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
+ // | | | | |Cmd | | | | | | |
+ // `------------------------' `------------------------'
+ // ,---------. ,---------.
+ // |QWER| | | | |
+ // ,----+----+----| |----+----+----.
+ // | Ba | L | | | | | |
+ // | ck |Shi |----| |----| |Spc |
+ // | spc| ft | | | | | |
+ // `--------------' `--------------'
+ [LR_BASE] = LAYOUT_ergodox_pretty_wrapper(
+ TD_3FLS, _______, _______, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______,
+ KC_TAB , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ PV_ESCC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT ,
+ KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
+ _______, _______, _______, KC_LGUI, SYMBOL , SYSCTL , KC_RALT, _______, _______, _______,
+ QWERTY , CARPALX, _______, _______,
+ _______, _______,
+ KC_BSPC, _______, _______, _______, _______, KC_SPC
+ ),
+
+ // ,------------------------------------. ,------------------------------------.
+ // | | NUMBERS_L | | | - | NUMBERS_R | = |
+ // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
+ // | | | [ | | ] | | |
+ // |------+ | | | | +------|
+ // | | QWERTY_L |----| |----| QWERTY_R | |
+ // |------+ | ( | | ) | +------|
+ // | | | | | | | |
+ // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
+ // | | ` | | | | | | | | ' | |
+ // `------------------------' `------------------------'
+ // ,---------. ,---------.
+ // | | | | | |
+ // ,----+----+----| |----+----+----.
+ // | | | | | | | |
+ // | | |----| |----| | |
+ // | | | | | | | |
+ // `--------------' `--------------'
+ // See `users/pvinis/pvinis.h`
+ [LR_QWERTY] = LAYOUT_ergodox_pretty_wrapper(
+ _______, ________________NUMBERS_L__________________, _______, KC_MINS, ________________NUMBERS_R__________________, KC_EQL ,
+ _______, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R1_________________, _______,
+ _______, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, _______,
+ _______, _________________QWERTY_L3_________________, KC_LPRN, KC_RPRN, _________________QWERTY_R3_________________, _______,
+ _______, KC_GRV, _______, _______, _______, _______, _______, _______, KC_QUOT , _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ // ,------------------------------------. ,------------------------------------.
+ // | | NUMBERS_L | | | | NUMBERS_R | |
+ // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
+ // | | | | | | | |
+ // |------+ | | | | +------|
+ // | | CARPALX_L |----| |----| CARPALX_R | |
+ // |------+ | | | | +------|
+ // | | | | | | | |
+ // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
+ // | | | | | | | | | | | |
+ // `------------------------' `------------------------'
+ // ,---------. ,---------.
+ // | | | | | |
+ // ,----+----+----| |----+----+----.
+ // | | | | | | | |
+ // | | |----| |----| | |
+ // | | | | | | | |
+ // `--------------' `--------------'
+ // See `users/pvinis/pvinis.h`
+ [LR_CARPALX] = LAYOUT_ergodox_pretty_wrapper(
+ _______, ________________NUMBERS_L__________________, _______, _______, ________________NUMBERS_R__________________, _______,
+ _______, ________________CARPALX_L1_________________, _______, _______, ________________CARPALX_R1_________________, _______,
+ _______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______,
+ _______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ // See `users/pvinis/pvinis.h`
+ [LR_SYMBOL] = LAYOUT_ergodox_pretty_wrapper(
+ _______, ______________________F_L__________________, KC_F11 , KC_F12 , ______________________F_R__________________, _______,
+ _______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______,
+ _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______,
+ _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ // See `users/pvinis/pvinis.h`
+ [LR_SYSCTL] = LAYOUT_ergodox_pretty_wrapper(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R1_________________, _______,
+ _______, _______, _______, _______, _______, _______, _________________SYSCTL_R2_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R3_________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
+ ),
+
+ // See `users/pvinis/pvinis.h`
+ [LR_KBCTL] = LAYOUT_ergodox_pretty_wrapper(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R1_________________, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R2_________________, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ ),
+
+/* MOUSE
+ * a keymap to control my system.
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ^ | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | MsUp | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | |MidClk|
+ * ,------|------|------| |------+------+------.
+ * | | | | | |Left |Right |
+ * | | |------| |------| Click| Click|
+ * | | | ^ | | | | |
+ * `--------------------' `--------------------'
+ */
+ [MOUSE] = LAYOUT_ergodox_pretty(
+ KC_TRNS ,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 ,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 ,KC_NO ,KC_NO ,KC_NO
+
+ ,KC_NO ,KC_NO
+ ,KC_NO
+ ,KC_NO ,KC_NO ,KC_TRNS
+
+ ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_NO
+ ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,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
+
+ ,KC_NO ,KC_NO
+ ,KC_NO
+ ,KC_NO ,KC_NO ,KC_NO
+ ),
+};
+
+
+// keyboard initialization
+void keyboard_post_init_user_local(void) {
+ ergodox_led_all_on();
+ for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
+ ergodox_led_all_set(i);
+ wait_ms(5);
+ }
+ wait_ms(1000);
+ for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
+ ergodox_led_all_set(i);
+ wait_ms(10);
+ }
+ ergodox_led_all_off();
+
+ // restore default brightness for future use
+ ergodox_led_all_set(LED_BRIGHTNESS_HI);
+}
+
+// light up leds based on the layer
+uint32_t layer_state_set_user_local(uint32_t state) {
+ ergodox_right_led_1_off();
+ ergodox_right_led_2_off();
+ ergodox_right_led_3_off();
+ switch (biton32(state)) {
+ case LR_SYSCTL:
+ ergodox_right_led_3_on(); // blue
+ break;
+ case LR_KBCTL:
+ ergodox_right_led_1_on(); // red
+ break;
+ case LR_SYMBOL:
+ ergodox_right_led_2_on(); // green
+ break;
+ default: break;
+ }
+ return state;
+}
+
+// extra keys
+// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+ // switch (id) {
+ // }
+ // return MACRO_NONE;
+// }
+
+// tap dances
+
+// flash keyboard on 4x tap, with leds
+// void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) {
+// switch (state->count) {
+// case 1:
+// ergodox_right_led_3_on();
+// break;
+// case 2:
+// ergodox_right_led_2_on();
+// break;
+// case 3:
+// ergodox_right_led_1_on();
+// break;
+// case 4:
+// ergodox_right_led_3_off();
+// wait_ms(50);
+// ergodox_right_led_2_off();
+// wait_ms(50);
+// ergodox_right_led_1_off();
+// break;
+// }
+// }
+
+// void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
+// if (state->count >= 4) {
+// reset_keyboard();
+// reset_tap_dance(state);
+// }
+// }
+
+// void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
+// ergodox_right_led_1_off();
+// wait_ms(50);
+// ergodox_right_led_2_off();
+// wait_ms(50);
+// ergodox_right_led_3_off();
+// }
+
+// SYSCTL on first tap, MOUSE ON second tap
+// void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
+// uint8_t layer = biton32(layer_state);
+
+// switch(state->count) {
+// case 1:
+// switch(layer) {
+// case LR_SYSCTL:
+// layer_off(LR_SYSCTL);
+// break;
+// case MOUSE:
+// layer_off(MOUSE);
+// break;
+// default:
+// layer_on(LR_SYSCTL);
+// break;
+// }
+// break;
+// case 2:
+// layer_on(MOUSE);
+// break;
+// }
+// }
+
+// qk_tap_dance_action_t tap_dance_actions[] = {
+ // [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ),
+ // [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ),
+// };
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/readme.md b/keyboards/ergodox_ez/keymaps/pvinis/readme.md
new file mode 100644
index 0000000000..af27210541
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/pvinis/readme.md
@@ -0,0 +1,65 @@
+pvinis' keymap
+==============
+
+This is a getting-used-to keymap for the [ErgoDox EZ][ez]. It's very much a work in progress.
+
+[ez]: https://ergodox-ez.com/
+
+## Table of Contents
+
+* [Todo](#todo)
+* [Layouts](#layouts)
+ - [Base layer](#base-layer)
+ - [Beginner layer](#beginner-layer)
+ - [QWERTY layer](#qwerty-layer)
+ - [CARPALX layer](#carpalx-layer)
+ - [System Control layer](#system-control-layer)
+ - [Template layers](#template-layers)
+* [Building](#building)
+
+# Todo
+
+- [ ] Generate images from keymap
+- [ ] Implement algernon's heatmap
+- [ ] Implement `KC_POP`
+
+# Layouts
+
+## Base layer
+
+This is the base layer that contains the common buttons of all keymaps. Right now, it has the top left button as a `flash` button when it's tapped 4 times, and the two thumb islands. The islands contain the `space` and `enter` keys on the right, the `backspace` and `shift` on the left, and all the 1x1 keys are just layer switches.
+Every time I connect the keyboard, I press the `BEGIN` layer switch, and then start typing.
+Recently, I added a few application "shortcuts", that basically call `ctrl`+`alt`+`cmd`+`<key>`, and `<key>` is `S` for Slack, `X` for Xcode, `M` for Messenger. Using [Hammerspoon][hammerspoon], I show/hide the application.
+
+[hammerspoon]: http://www.hammerspoon.org/
+
+## Beginner layer
+
+This is a basic keymap I use right now until I'm comfortable typing on the Ergodox. Currently uses a QWERTY layout, and the `([{}])` on the middle keys. Not a perfect layout, and its going to go away at some point, but for now thats my daily driver.
+
+## QWERTY layer
+
+This is basically the same as the `BEGIN` layer, but it might go away. I'm not using it, but I should have a QWERTY layout on the keyboard, in case someone else wants to try it out, or if I completely forget how keyboards work! At some point, this and the `BEGIN` layer will become one.
+
+## CARPALX layer
+
+This is here as a placeholder. I want to transition to [Carpalx QGMLWY][carpalx] or [White][white] at some point. They both look very interesting and more comfortable to type on, but after I'm confident with typing on the Ergodox.
+
+[carpalx]: http://mkweb.bcgsc.ca/carpalx/?full_optimization
+[white]: https://github.com/mw8/white_keyboard_layout
+
+## System Control layer
+
+This one is a layer that, in time, will have controls like mouse movement, volume up/down, mute, sleep, restart, shutdown, etc.
+
+## Template layers
+
+I have two commented out layers that are just templates, so I can easily create a new layer.
+
+# Building
+
+```
+$ git clone https://github.com/qmk/qmk_firmware.git
+$ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis
+$ make
+```
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/rules.mk b/keyboards/ergodox_ez/keymaps/pvinis/rules.mk
new file mode 100644
index 0000000000..e5ddcae8d9
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/pvinis/rules.mk
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = yes
diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox_ez/matrix.c
index 6f604ae2b9..2bfe27b9a3 100644
--- a/keyboards/ergodox_ez/matrix.c
+++ b/keyboards/ergodox_ez/matrix.c
@@ -1,9 +1,5 @@
/*
-Note for ErgoDox EZ customizers: Here be dragons!
-This is not a file you want to be messing with.
-All of the interesting stuff for you is under keymaps/ :)
-Love, Erez
Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
@@ -95,7 +91,7 @@ void matrix_init(void) {
// initialize matrix state: all keys off
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
matrix[i] = 0;
- raw_matrix[i] = 0;
+ raw_matrix[i] = 0;
}
#ifdef DEBUG_MATRIX_SCAN_RATE
@@ -168,7 +164,7 @@ uint8_t matrix_scan(void) {
#ifdef LEFT_LEDS
mcp23018_status = ergodox_left_leds_update();
#endif // LEFT_LEDS
- bool changed = false;
+ bool changed = false;
for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) {
// select rows from left and right hands
uint8_t left_index = i;
@@ -178,13 +174,13 @@ uint8_t matrix_scan(void) {
// we don't need a 30us delay anymore, because selecting a
// left-hand row requires more than 30us for i2c.
-
+
changed |= store_raw_matrix_row(left_index);
changed |= store_raw_matrix_row(right_index);
unselect_rows();
}
-
+
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_quantum();
diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk
index e96cd20825..2882072a62 100644
--- a/keyboards/ergodox_ez/rules.mk
+++ b/keyboards/ergodox_ez/rules.mk
@@ -16,6 +16,7 @@
# # project specific files
SRC += matrix.c
+QUANTUM_LIB_SRC += i2c_master.c
# MCU name
MCU = atmega32u4
@@ -85,9 +86,4 @@ RGBLIGHT_ENABLE = yes
RGB_MATRIX_ENABLE = no # enable later
DEBOUNCE_TYPE = eager_pr
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), no)
- SRC += i2c_master.c
-endif
-
-
LAYOUTS = ergodox