From 57066b12464a7d1d7f12dec573f4691587d559a6 Mon Sep 17 00:00:00 2001 From: "Anand Babu (AB) Periasamy" Date: Mon, 27 Jun 2016 06:51:12 -0700 Subject: [PATCH] zoom and undo keys for ab's planck keymap (#446) --- .../planck/keymaps/ab/keyboard-layout.json | 38 +++++------ .../planck/keymaps/ab/keyboard-layout.png | Bin 25545 -> 26518 bytes keyboards/planck/keymaps/ab/keymap.c | 63 +++++++++++------- 3 files changed, 58 insertions(+), 43 deletions(-) diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.json b/keyboards/planck/keymaps/ab/keyboard-layout.json index 72dab2a7..4e631a34 100644 --- a/keyboards/planck/keymaps/ab/keyboard-layout.json +++ b/keyboards/planck/keymaps/ab/keyboard-layout.json @@ -44,11 +44,13 @@ }, "D", { + "c": "#c4bcbc", "a": 4, "f": 3 }, "\n(\n\n\n\n\n\n\n\nF", { + "c": "#cccccc", "f": 3 }, "\n)\n\n\n\n\n\n\n\nG", @@ -57,10 +59,12 @@ }, "\n{\n\n\n\n\n\n\n\nH", { + "c": "#c4bcbc", "f": 3 }, "\n}\n\n\n\n\n\n\n\nJ", { + "c": "#cccccc", "a": 7, "f": 3 }, @@ -136,26 +140,20 @@ ] }, "\n\n\n\n\n\n\n\n\nCtrl", + "\n\n\n\n\n\n\n\n\nEsc", + "\n\n\n\n\n\n\n\n\n", + "\n\n\n\n\n\n\n\n\nAlt", { "a": 7, "f": 3 }, - "Esc", - { - "f": 3 - }, - "", - { - "f": 3 - }, - "Alt", - { - "f": 3 - }, "", { "a": 4, - "f": 3, + "fa": [ + 1, + 1 + ], "w": 2 }, "PgUp\nPgDn\n\n\n\n\n\n\n\nSpace", @@ -165,21 +163,23 @@ }, "", { - "f": 3 + "a": 4, + "fa": [ + 2 + ] }, - "", + "\n\n\n\n\n\n\n\n\n", { - "a": 4, "f": 3 }, - "\n\n\n\n\n\n\n\n\n", + "\n\n\n\n\n\n\n\n\n", { "f": 3 }, - "\n\n\n\n\n\n\n\n\n", + "\n\n\n\n\n\n\n\n\n", { "f": 3 }, - "\n\n\n\n\n\n\n\n\n" + "\n\n\n\n\n\n\n\n\n" ] ] \ No newline at end of file diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.png b/keyboards/planck/keymaps/ab/keyboard-layout.png index e4c0e91b40805675409148b9ebc2f9f6be0d2d12..dcdbb726dfc056b478386a318ef39a79980d2e35 100644 GIT binary patch literal 26518 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 HJRkO7PThvt literal 25545 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 diff --git a/keyboards/planck/keymaps/ab/keymap.c b/keyboards/planck/keymaps/ab/keymap.c index c70e253f..8e1d28a6 100644 --- a/keyboards/planck/keymaps/ab/keymap.c +++ b/keyboards/planck/keymaps/ab/keymap.c @@ -14,57 +14,72 @@ extern keymap_config_t keymap_config; #define _QWERTY 0 // QUERTY layer #define _LOWER 1 // Lower layer #define _RAISE 2 // Raise layer -#define _CUSTOM 3 // Custom layer +#define _CUSTOM 3 // Custom layer (LOWER + RAISE) #define _BL 4 // Backlight -#define _MOBILE 5 // Mobile# -#define _CUSTOM1 6 // Custom macro 1 -#define _CUSTOM2 7 // Custom macro 2 +#define _MOB 5 // Mobile# +#define _CUS1 6 // Custom macro 1 +#define _CUS2 7 // Custom macro 2 // Macro shortcuts. +#define QWERTY M(_LOWER) #define LOWER M(_LOWER) #define RAISE M(_RAISE) -#define CUSTOM M(_CUSTOM) // RAISE + LOWER +#define CUSTOM M(_CUSTOM) #define BL M(_BL) -#define MOBILE M(_MOBILE) -#define CUSTOM1 M(_CUSTOM1) -#define CUSTOM2 M(_CUSTOM2) +#define MOB M(_MOB) +#define CUS1 M(_CUS1) +#define CUS2 M(_CUS2) + +// Func macro definitions. +#define LWR_PGDN FUNC(0) // Tap for PgDn, hold for LOWER +#define RSE_PGUP FUNC(1) // Tap for PgUp, hold for RAISE +#define CTL_CAPS FUNC(2) // Tap for Caps, hold for Ctrl (DOESN'T SEEM TO WORK) +#define SFT_ENT FUNC(3) // Tap for Enter, hold for Shift +#define ZM_NRM FUNC(4) // Zoom normal +#define ZM_IN FUNC(5) // Zoom out +#define ZM_OUT FUNC(6) // Zoom in +#define EM_UNDO FUNC(7) // Emacs Undo + +// Enable these functions using FUNC(n) macro. +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), + [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), + [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), + [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), + [4] = ACTION_MODS_KEY(MOD_LCTL, KC_0), + [5] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), + [6] = ACTION_MODS_KEY(MOD_LCTL, KC_PLUS), + [7] = ACTION_MODS_KEY(MOD_LCTL, KC_UNDS), + }; // This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = { /* QWERTY */ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, FUNC(3)}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, [_LOWER] = { /* LOWER */ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {BL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + {BL, ZM_NRM, ZM_IN, ZM_OUT, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} }, [_RAISE] = { /* RAISE */ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_LCBR, KC_BSLS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_PIPE, KC_GRV, KC_TILD, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS}, - {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE} + {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, EM_UNDO, KC_VOLD, KC_VOLU, KC_MUTE} }, [_CUSTOM] = { /* CUSTOM */ {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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MOBILE, KC_TRNS, CUSTOM1, CUSTOM2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MOB, KC_TRNS, CUS1, CUS2, 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} } }; -// Enable these functions using FUNC(n) macro. -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), // Tap for PgDn, hold for LOWER - [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), // Tap for PgUp, hold for RAISE - [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), // Tap for Caps, hold for Ctrl (DOESN'T SEEM TO WORK) - [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Tap for Enter, hold for Shift -}; - // Set a layer persistantly. void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); @@ -93,7 +108,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _CUSTOM); } break; - case _BL:// Backlight + case _BL: // Backlight if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE @@ -103,14 +118,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; - case _MOBILE:// Your mobile# here. + 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 _CUSTOM1:// Your custom macro 1 + case _CUS1: // Your custom macro 1 return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END); - case _CUSTOM2:// Your custom macro 2 + case _CUS2: // Your custom macro 2 return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END); }; return MACRO_NONE;