summaryrefslogtreecommitdiffstats
path: root/keyboards/ergodox_ez/keymaps
diff options
context:
space:
mode:
authorAlex Ong <the.onga@gmail.com>2019-01-04 19:43:45 +1100
committerAlex Ong <the.onga@gmail.com>2019-01-04 19:43:45 +1100
commit2bb2977c133646c4e056960e72029270d77cc1eb (patch)
tree235d491f992121ac1716c5bf2fafb80983748576 /keyboards/ergodox_ez/keymaps
parenta55c838961c89097ab849ed6cb1f261791e6b9b4 (diff)
parent47c91fc7f75ae0a477e55b687aa0fc30da0a283c (diff)
Merge branch 'master' into debounce_refactor
# Conflicts: # tmk_core/common/keyboard.c
Diffstat (limited to 'keyboards/ergodox_ez/keymaps')
-rw-r--r--keyboards/ergodox_ez/keymaps/default/keymap.c177
-rw-r--r--keyboards/ergodox_ez/keymaps/default_glow/keymap.c1
-rw-r--r--keyboards/ergodox_ez/keymaps/default_glow/rules.mk4
-rw-r--r--keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c2
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/.gitignore2
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h88
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js19
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c353
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/aliases_definitions.c5
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/custom_keycodes.c8
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c19
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/layers/layers_definitions.c12
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_dictionary.c14
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_setup.c14
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/package.json15
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/plover/plover_mode.c20
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/readme.md62
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk40
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/none_lead.c40
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c20
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_setup.c75
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dances.c74
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/user/eeconfig_init_user.c3
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c121
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/user/matrix_scan_user.c12
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/user/process_record_user.c75
-rw-r--r--keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk3
-rw-r--r--keyboards/ergodox_ez/keymaps/lukaus/config.h16
-rw-r--r--keyboards/ergodox_ez/keymaps/lukaus/keymap.c843
-rw-r--r--keyboards/ergodox_ez/keymaps/lukaus/readme.md3
-rw-r--r--keyboards/ergodox_ez/keymaps/lukaus/rules.mk1
-rw-r--r--keyboards/ergodox_ez/keymaps/rgb_layer/config.h24
-rw-r--r--keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c271
-rw-r--r--keyboards/ergodox_ez/keymaps/skug/config.h2
-rw-r--r--keyboards/ergodox_ez/keymaps/skug/keymap.c32
-rw-r--r--keyboards/ergodox_ez/keymaps/vim/vim.h1
36 files changed, 2344 insertions, 127 deletions
diff --git a/keyboards/ergodox_ez/keymaps/default/keymap.c b/keyboards/ergodox_ez/keymaps/default/keymap.c
index e400ffcd37..5834fa43af 100644
--- a/keyboards/ergodox_ez/keymaps/default/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/default/keymap.c
@@ -1,6 +1,4 @@
#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
#include "version.h"
#define BASE 0 // default layer
@@ -8,8 +6,7 @@
#define MDIA 2 // media keys
enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, // can always be here
- EPRM,
+ EPRM = SAFE_RANGE,
VRSN,
RGB_SLD
};
@@ -36,28 +33,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | |ace | End | | PgDn | | |
* `--------------------' `----------------------'
*/
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1,
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_TAB, KC_ENT
- ),
+[BASE] = LAYOUT_ergodox(
+ // left hand
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
+ LT(SYMB,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
+ ALT_T(KC_APP), KC_LGUI,
+ KC_HOME,
+ KC_SPC, KC_BSPC, KC_END,
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(KC_QUOT),
+ MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
+ KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1,
+ KC_LALT, CTL_T(KC_ESC),
+ KC_PGUP,
+ KC_PGDN, KC_TAB, KC_ENT
+),
/* Keymap 1: Symbol Layer
*
* ,---------------------------------------------------. ,--------------------------------------------------.
@@ -79,26 +74,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | |
* `--------------------' `--------------------'
*/
-// SYMBOLS
[SYMB] = LAYOUT_ergodox(
- // left hand
- VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- RGB_MOD,KC_TRNS,
- KC_TRNS,
- RGB_VAD,RGB_VAI,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- RGB_TOG, RGB_SLD,
- KC_TRNS,
- KC_TRNS, RGB_HUD, RGB_HUI
+ // left hand
+ VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
+ KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV,
+ KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS,
+ EPRM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ RGB_MOD, KC_TRNS,
+ KC_TRNS,
+ RGB_VAD, RGB_VAI, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS, KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ RGB_TOG, RGB_SLD,
+ KC_TRNS,
+ KC_TRNS, RGB_HUD, RGB_HUI
),
/* Keymap 2: Media and mouse keys
*
@@ -121,25 +115,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | |
* `--------------------' `--------------------'
*/
-// MEDIA AND MOUSE
[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
+ // left hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_WBAK
),
};
@@ -147,47 +141,21 @@ const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
};
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- // MACRODOWN only works in this function
- switch(id) {
- case 0:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- break;
- case 1:
- if (record->event.pressed) { // For resetting EEPROM
- eeconfig_init();
- }
- break;
- }
- return MACRO_NONE;
-};
-
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- // dynamically generate these.
- case EPRM:
- if (record->event.pressed) {
+ if (record->event.pressed) {
+ switch (keycode) {
+ case EPRM:
eeconfig_init();
- }
- return false;
- break;
- case VRSN:
- if (record->event.pressed) {
+ return false;
+ case VRSN:
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
- break;
- case RGB_SLD:
- if (record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_mode(1);
- #endif
- }
- return false;
- break;
+ return false;
+ #ifdef RGBLIGHT_ENABLE
+ case RGB_SLD:
+ rgblight_mode(1);
+ return false;
+ #endif
+ }
}
return true;
}
@@ -199,11 +167,6 @@ void matrix_init_user(void) {
#endif
};
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
-};
-
// Runs whenever there is a layer state change.
uint32_t layer_state_set_user(uint32_t state) {
ergodox_board_led_off();
@@ -266,7 +229,7 @@ uint32_t layer_state_set_user(uint32_t state) {
ergodox_right_led_2_on();
ergodox_right_led_3_on();
#ifdef RGBLIGHT_COLOR_LAYER_7
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6);
+ rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7);
#endif
break;
default:
diff --git a/keyboards/ergodox_ez/keymaps/default_glow/keymap.c b/keyboards/ergodox_ez/keymaps/default_glow/keymap.c
new file mode 100644
index 0000000000..526c364029
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/default_glow/keymap.c
@@ -0,0 +1 @@
+// Placeholder. See ../default/keymap.c for details
diff --git a/keyboards/ergodox_ez/keymaps/default_glow/rules.mk b/keyboards/ergodox_ez/keymaps/default_glow/rules.mk
new file mode 100644
index 0000000000..360c3c51b8
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/default_glow/rules.mk
@@ -0,0 +1,4 @@
+RGBLIGHT_ENABLE = no
+RGB_MATRIX_ENABLE = yes # enable later
+
+SRC += ../default/keymap.c
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c
index 94d035c6b9..dd5ee28979 100644
--- a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c
@@ -230,7 +230,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, SHELL_EXPAND_OE_TRANPATTERN,
RCTL(KC_L), RCTL(KC_W), KC_HOME, KC_UP, KC_END, KC_TRNS, SHELL_EXPAND_OE_LOGPATTERN,
LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), RCTL(KC_W),
- RCTL(KC_C), RCTL(KC_U), LALT(KC_DOT), RCTL(KC_R), MEH(KC_V), RCTL(KC_K), SHELL_DUMPTLOG,
+ RCTL(KC_C), RCTL(KC_U), LALT(KC_DOT), RCTL(KC_R), KC_BTN2, RCTL(KC_K), SHELL_DUMPTLOG,
// bottom row (match functionality of base layer)
KC_BSPC, RCTL(KC_W), KC_DELETE, LALT(KC_D), RCTL(KC_U),
// thumb cluster
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/.gitignore b/keyboards/ergodox_ez/keymaps/hacker_dvorak/.gitignore
new file mode 100644
index 0000000000..504afef81f
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/.gitignore
@@ -0,0 +1,2 @@
+node_modules/
+package-lock.json
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h b/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h
new file mode 100644
index 0000000000..e188d95d51
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h
@@ -0,0 +1,88 @@
+/*
+ Set any config.h overrides for your specific keymap here.
+ See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
+*/
+#pragma once
+
+
+#undef TAPPING_TERM
+#define TAPPING_TERM 200
+
+#undef DEBOUNCE
+#define DEBOUNCE 10
+
+#undef IGNORE_MOD_TAP_INTERRUPT
+
+#undef FORCE_NKRO
+#define FORCE_NKRO
+
+#undef TAPPING_TOGGLE
+#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
+#define ONESHOT_TIMEOUT 5000
+
+#define COMBO_COUNT 4
+#define COMBO_TERM 200
+
+
+#undef RGBLIGHT_HUE_STEP
+#define RGBLIGHT_HUE_STEP 24
+
+#undef RGBLIGHT_SAT_STEP
+#define RGBLIGHT_SAT_STEP 24
+
+#undef RGBLIGHT_VAL_STEP
+#define RGBLIGHT_VAL_STEP 24
+
+#undef RGBLIGHT_BRI_STEP
+#define RGBLIGHT_BRI_STEP 24
+
+#undef RGBLIGHT_LIMIT_VAL
+#define RGBLIGHT_LIMIT_VAL 255
+
+
+#undef MOUSEKEY_INTERVAL
+#define MOUSEKEY_INTERVAL 10
+
+#undef MOUSEKEY_DELAY
+#define MOUSEKEY_DELAY 15
+
+#undef MOUSEKEY_MAX_SPEED
+#define MOUSEKEY_MAX_SPEED 20
+
+#undef MOUSEKEY_TIME_TO_MAX
+#define MOUSEKEY_TIME_TO_MAX 200
+
+#undef MOUSEKEY_WHEEL_MAX_SPEED
+#define MOUSEKEY_WHEEL_MAX_SPEED 20
+
+#undef MOUSEKEY_WHEEL_TIME_TO_MAX
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 200
+
+
+// #undef NO_DEBUG
+// #define NO_DEBUG
+
+// #undef NO_PRINT
+// #define NO_PRINT
+
+// #define RETRO_TAPPING
+// #define TAPPING_FORCE_HOLD
+
+// #define AUTO_SHIFT_TIMEOUT 150
+// #define NO_AUTO_SHIFT_SPECIAL
+// #define NO_AUTO_SHIFT_NUMERIC
+// #define NO_AUTO_SHIFT_ALPHA
+
+// #define EXTRA_LONG_COMBOS
+// #define EXTRA_EXTRA_LONG_COMBOS
+// #define COMBO_ALLOW_ACTION_KEYS
+
+// #define RGBLIGHT_SLEEP
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js b/keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js
new file mode 100644
index 0000000000..23f19d18af
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js
@@ -0,0 +1,19 @@
+let gulp = require('gulp');
+let run = require('gulp-run-command').default;
+
+
+gulp.task('clean', run('rm -rf ../../../../.build'));
+
+gulp.task('build', ['clean'], run('make -C ../../../../ ergodox_ez:hacker_dvorak', {
+ ignoreErrors: true
+}));
+
+gulp.task('watch', ['build'], () => {
+ gulp.watch([
+ 'keymap.c',
+ 'config.h',
+ 'rules.mk',
+ ], ['build']);
+});
+
+gulp.task('default', ['watch']);
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c
new file mode 100644
index 0000000000..65878a67cb
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c
@@ -0,0 +1,353 @@
+// Keyboard keymap:
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [DVORAK] = LAYOUT_ergodox(
+
+ // HACKER DVORAK left hand
+
+ //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
+ // ESCAPE | | | | | | START RECORDING //
+ // | | | | | | //
+ KC_ESC, TD(GRV_TILD), TD(AT_DLR), TD(LCBR_LABK), TD(LPRN_LBRC), TD(EXLM_QUES), DYN_REC_START1, //
+ // | ~ | $ | < | [ | ? | //
+ // | TAP DANCE: ` | TAP DANCE: @ TAP DANCE: { | TAP DANCE: ( | TAP DANCE: ! | DYNAMIC MARCO 1 //
+ //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
+ // 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, //
+ // | LEAD | " | , | | | //
+ // | TAP DANCE: NONE | TAP DANCE: ' | TAP DANCE: . | MOD TAP: HYPER | MOD TAP: MEH | //
+ //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------| PLAY DYNAMIC MACRO 1 //
+ // | MOD TAP: ALT | MOD TAP: CTRL | LAYER TAP: SHIFT | LAYER TAP: ARROW KEYS | MOD TAP: GUI | //
+ // | | | | Ü | | //
+ TD(EQL_PLUS), ALT_T(KC_A), CTL_T(KC_O), SFT_T(KC_E), LT(ARROWS, KC_U), LGUI_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, //
+ // | : | | | | | //
+ // DYNAMIC MACRO | TAP DANCE: ; | MOD TAP: SHIFT+GUI | LAYER TAP: MEDIA/F-KEYS | LAYER TAP: ATM NUMPAD | MOD TAP: CTL+ALT+GUI | //
+ //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
+ // LAYERS SWITCHER | APPLICATION MENU | | | //
+ // | | | | SCROLL //
+ TG(LAYERS), KC_APP, KC_NLCK, KC_SLCK, KC_CAPS, //
+ // | | | | NUM //
+ // LAYER TOGGLE | | | | TAP DANCE: CAPS //
+ //------------------------+-------------------------+-------------------------+-------------------------+------------------------//
+
+ // HACKER DVORAK left thumb
+
+ //------------------------+------------------------//
+ // MOUSE WHEEL LEFT | MOUSE WHEEL RIGHT //
+ // | //
+ KC_WH_L, KC_WH_R, //
+ // | //
+ // | //
+ //-------------------------+-------------------------+------------------------//
+ // | | HOME //
+ // | | //
+ /* SPACE | BACKSPACE */ KC_HOME, //
+ // | | //
+ // | | //
+ KC_SPC, KC_BSPC, //-----------------------//
+ // | | END //
+ // | | //
+ /* | */ KC_END, //
+ // | | //
+ // | | //
+ //-------------------------+-------------------------+------------------------//
+
+ // HACKER DVORAK right hand
+
+ //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
+ // | | | | | | //
+ // | | | | | | //
+ DYN_REC_START2, TD(APMR_PIPE), TD(RPRN_RBRC), TD(RCBR_RABK), TD(HASH_PERC), TD(ASTR_CIRC), XXXXXXX, //
+ // | | | | | | //
+ // | | | | | | //
+ //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
+ // | | | | | | //
+ // | | | | | | //
+ 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), //
+ // | | | | | | //
+ // | | | | | | //
+ // |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
+ // | | | | | | //
+ // | | | | | | //
+ /*-----------------------*/ LGUI_T(KC_D), LT(MOUSE, KC_H), SFT_T(KC_T), CTL_T(KC_N), ALT_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, //
+ // | | | | | | //
+ // | | | | | | ⎄ //