From 4e2817eff18f868b6d62710b67f46808d6efd22d Mon Sep 17 00:00:00 2001 From: Max Rumpf Date: Mon, 15 Oct 2018 22:23:19 +0200 Subject: Keymap: Some tweaks to Maxr1998's Contra layout (#4144) * Make some keys more accessible, prevent mistypings * Add "Gaming" layer which maps L-Ctrl to space (left-handed jumping compatibility-mode for all games) --- keyboards/contra/keymaps/maxr1998/keymap.c | 70 +++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 15 deletions(-) (limited to 'keyboards/contra/keymaps/maxr1998') diff --git a/keyboards/contra/keymaps/maxr1998/keymap.c b/keyboards/contra/keymaps/maxr1998/keymap.c index afdd3d94ac..87bf338948 100644 --- a/keyboards/contra/keymaps/maxr1998/keymap.c +++ b/keyboards/contra/keymaps/maxr1998/keymap.c @@ -20,13 +20,17 @@ enum contra_layers { _QWERTZ, _FUNC, - _NUMROW + _NUMROW, + _NUMROW_L3, + _GAMING }; #define KC_I3 LM(_NUMROW, MOD_LALT) #define KC_NR MO(_NUMROW) #define NR_L3 SAFE_RANGE #define FUN MO(_FUNC) +#define G_1 TO(_GAMING) +#define G_0 TG(_GAMING) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -52,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | | | | | | | | Ü | | Ö | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Lock | Ä | ß | | | | | RGBS | RGBB | RGBS | | | + * | Lock | Ä | ß | | | GAME | | RGBS | RGBB | RGBS | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | | RGBH-| RGBT | RGBH+| PgUp | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -61,14 +65,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FUNC] = { {_______, _______, _______, _______, _______, _______, _______, DE_UE, _______, DE_OE, _______, KC_DEL }, - {KC_LOCK, DE_AE, DE_SS, _______, _______, _______, _______, RGB_M_P, RGB_M_B, RGB_M_SW,_______, _______}, + {KC_LOCK, DE_AE, DE_SS, _______, _______, G_1, _______, RGB_M_P, RGB_M_B, RGB_M_SW,_______, _______}, {_______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_TOG, RGB_HUI, KC_PGUP, _______}, {_______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_END } }, /* Numrow layer (special characters with Shift and ISO_L3_Shift) * ,-----------------------------------------------------------------------------------. - * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß | + * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | | | | | | | | | #' | | * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -78,25 +82,61 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_NUMROW] = { - {_______, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS }, + {_______, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DE_HASH, _______}, {_______, DE_LESS, _______, _______, _______, _______, _______, _______, _______, _______, DE_MINS, _______}, {_______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______} +}, +[_NUMROW_L3] = { + {_______, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, _______}, + {_______, DE_Q, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, DE_LESS, _______, _______, _______, _______, _______, _______, _______, _______, DE_MINS, _______}, + {_______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______} +}, + +/* Gaming + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Space| | | | | | | | Reset| | | | + * `-----------------------------------------------------------------------------------' + */ +[_GAMING] = { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_SPC, _______, _______, _______, _______, _______, _______, _______, G_0, _______, _______, _______} } }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (keycode == NR_L3) { - if (record->event.pressed) { - register_code(DE_ALGR); - layer_on(_NUMROW); - } else { - layer_off(_NUMROW); - unregister_code(DE_ALGR); - } - return false; + switch(keycode) { + case KC_BSPC: + if (record->event.pressed) { + if (get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) { + register_code(DE_SS); + return false; + } + } else { + unregister_code(DE_SS); + } + return true; + case NR_L3: + if (record->event.pressed) { + register_code(DE_ALGR); + layer_on(_NUMROW_L3); + } else { + layer_off(_NUMROW_L3); + unregister_code(DE_ALGR); + } + return false; + default: + return true; } - return true; } void led_set_user(uint8_t usb_led) { -- cgit v1.2.3