diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json
index e9475fe9f1cb..e2badad4de4a 100644
--- a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json
+++ b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json
@@ -154,7 +154,8 @@
},
"S\n\n\n\n",
{
- "x": 1
+ "x": 1,
+ "c": "#c4bcbc"
},
"F\n\n\n\n",
{
@@ -162,7 +163,8 @@
},
"J",
{
- "x": 1
+ "x": 1,
+ "c": "#cccccc"
},
"L"
],
@@ -223,7 +225,7 @@
"y": -0.75,
"x": 3.5
},
- "C",
+ "C\n\n\n\n",
{
"x": 10.5,
"a": 4
@@ -236,11 +238,11 @@
"x": 2.5,
"a": 7
},
- "X",
+ "X\n\n\n\n",
{
"x": 1
},
- "V",
+ "V\n\n\n\n",
{
"x": 8.5
},
@@ -286,7 +288,7 @@
"x": 3.5,
"a": 7
},
- "Alt\n\n\n\n",
+ "Alt\n\n\n\n",
{
"x": 10.5
},
@@ -297,15 +299,15 @@
"y": -0.875,
"x": 2.5
},
- "",
+ "\n\n\n\n",
{
"x": 1
},
- "Alt\n\n\n\n",
+ "Alt\n\n\n\n",
{
"x": 8.5
},
- "",
+ "\n\n\n\n",
{
"x": 1
},
diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png
index d3ed928f6e13..740684461e06 100644
Binary files a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png and b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png differ
diff --git a/keyboards/ergodox_ez/keymaps/ab/keymap.c b/keyboards/ergodox_ez/keymaps/ab/keymap.c
index c3114d9ffd4a..df6f33460067 100644
--- a/keyboards/ergodox_ez/keymaps/ab/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/ab/keymap.c
@@ -8,6 +8,15 @@
#define CAPS_CTL CTL_T(KC_CAPS) // Caps on tap, Ctrl on hold.
#define COPY LCTL(KC_V) // C-c Copy
#define PASTE LCTL(KC_V) // C-v Paste
+#define ZM_NRM LCTL(KC_0) // C-0 Zoom Normal
+#define ZM_OUT LCTL(KC_MINS) // C-- Zoom Out
+#define ZM_IN LCTL(KC_PLUS) // C-+ Zoom In
+#define EM_UNDO LCTL(KC_UNDS) // C-_ Emacs Undo
+
+#define _MOB 1 // Mobile#
+#define _CUS1 2 // Custom macro 1
+#define _CUS2 3 // Custom macro 2
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
@@ -34,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
- // left hand
+ // Left hand
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_WBAK,
CAPS_CTL, KC_A, KC_S, KC_D, KC_F, KC_G,
@@ -43,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
COPY, KC_LCBR,
KC_LPRN,
KC_SPC, KC_DEL, KC_LBRC,
- // right hand
+ // Right hand
KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_WFWD, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
@@ -61,9 +70,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
+ * | | | LClk | MClk | RClk | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Teensy| | | Lclk | Rclk | | |VolDn |VolUp | Mute | |
+ * |Teensy| | ZmNrm| ZmOut| ZmIn | | Undo |VolDn |VolUp | Mute | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
@@ -75,20 +84,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
// FN1 Layer
[FN1] = KEYMAP(
+ // Left hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
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_BTN1, KC_BTN3, KC_BTN2, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, ZM_NRM, ZM_OUT, ZM_IN,
KC_TRNS, KC_TRNS,
KC_TRNS,
RESET, KC_TRNS, KC_TRNS,
- // right hand
+ // Right hand
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC,
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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS,
+ KC_TRNS, M(_MOB), KC_TRNS, M(_CUS1),M(_CUS2),KC_TRNS, KC_TRNS,
+ EM_UNDO, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
@@ -102,14 +112,16 @@ 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) {
- register_code(KC_RSFT);
- } else {
- unregister_code(KC_RSFT);
- }
- break;
- }
+ case _MOB: // Your mobile# here.
+ return MACRODOWN(T(1), T(2), T(3), T(MINS),
+ T(1), T(2), T(3), T(MINS),
+ T(1), T(2), T(3), T(4),
+ END);
+ case _CUS1: // Your custom macro 1
+ return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END);
+ case _CUS2: // Your custom macro 2
+ return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END);
+ };
return MACRO_NONE;
};