]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Keymap: Some tweaks to Maxr1998's Contra layout (#4144)
authorMax Rumpf <max.rumpf1998@gmail.com>
Mon, 15 Oct 2018 20:23:19 +0000 (22:23 +0200)
committerDrashna Jaelre <drashna@live.com>
Mon, 15 Oct 2018 20:23:19 +0000 (13:23 -0700)
* 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

index afdd3d94accbd3f93834bcb58c9771fe08b1a6a2..87bf33894891f76f4dfcd5ece0eafa9b5bd91739 100644 (file)
 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) {