From f5ec585ed821bd791a3080439937b0030d858a8a Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 10 Nov 2015 04:14:59 +0200 Subject: [PATCH] [Erez & Jack] Adds Meh key (Hyper without Win/Cmd) --- README.md | 3 +++ keyboard/ergodox_ez/keymaps/keymap_default.c | 10 +++++----- quantum/keymap_common.h | 4 ++++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f9d7ffea..55fb7679 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,8 @@ Your keymap can include shortcuts to common operations (called "function actions * `RALT(kc)` - applies right Alt to *kc* * `LGUI(kc)` - applies left GUI (command/win) to *kc* * `RGUI(kc)` - applies right GUI (command/win) to *kc* +* `HYPR(kc)` - applies Hyper (all modifiers) to *kc* +* `MEH(kc)` - applies Meh (all modifiers except Win/Cmd) to *kc* You can also chain these, like this: @@ -87,6 +89,7 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac * `ALT_T(kc)` - is LALT when held and *kc* when tapped * `GUI_T(kc)` - is LGUI when held and *kc* when tapped * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) + * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift. ### Temporarily setting the default layer diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.c b/keyboard/ergodox_ez/keymaps/keymap_default.c index aba7783f..4c210f72 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_default.c +++ b/keyboard/ergodox_ez/keymaps/keymap_default.c @@ -16,10 +16,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | - * |--------+------+------+------+------+------| Hypr | | Hypr |------+------+------+------+------+--------| + * |--------+------+------+------+------+------| Meh | | Meh |------+------+------+------+------+--------| * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1|AltSft| TAB | Left | Right| | Up | Down | [ | ] | ~L1 | + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | App | LGui | | Alt |Ctrl/Esc| @@ -36,8 +36,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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(1), 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),LALT(KC_LSFT),KC_TAB, KC_LEFT,KC_RGHT, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, MEH_T(KC_NO), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, KC_APP, KC_LGUI, KC_HOME, KC_SPC,KC_BSPC,KC_END, @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOT, - ALL_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + 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, diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h index 550b1528..e543e7e6 100644 --- a/quantum/keymap_common.h +++ b/quantum/keymap_common.h @@ -66,6 +66,9 @@ extern const uint16_t fn_actions[]; #define LSFT(kc) kc | 0x0200 #define LALT(kc) kc | 0x0400 #define LGUI(kc) kc | 0x0800 +#define HYPR(kc) kc | 0x0F00 +#define MEH(kc) kc | 0x0700 + #define RCTL(kc) kc | 0x1100 #define RSFT(kc) kc | 0x1200 #define RALT(kc) kc | 0x1400 @@ -188,6 +191,7 @@ extern const uint16_t fn_actions[]; #define SFT_T(kc) MT(0x2, kc) #define ALT_T(kc) MT(0x4, kc) #define GUI_T(kc) MT(0x8, kc) +#define MEH_T(kc) MT(0x7, kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl #define ALL_T(kc) MT(0xF, kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ // L-ayer, T-ap - 256 keycode max, 16 layer max