]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - keyboards/planck/keymaps/ajp10304/keymap.c
Adds support for Planck Rev 6 (#2666)
[qmk_firmware.git] / keyboards / planck / keymaps / ajp10304 / keymap.c
index 02ba8fff7661df667b9c22643124efc3062017b2..ebc4e0b97a7223abb593d0d81d102124a0e005a0 100644 (file)
@@ -1,3 +1,4 @@
+#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
 #include "planck.h"
 #include "action_layer.h"
 #include "eeconfig.h"
@@ -14,6 +15,8 @@ enum planck_layers {
   _MRSE,
   _FUNC,
   _MFNC,
+  _FUNC2,
+  _MFNC2,
   _ADJUST,
   _MOUSE
 };
@@ -23,6 +26,8 @@ enum planck_keycodes {
   MAC,
   FUNC,
   MFNC,
+  FUNC2,
+  MFNC2,
   LOWER,
   MLWR,
   RAISE,
@@ -47,14 +52,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |------+------+------+------+------+------|------+------+------+------+------+------|
  * | Shft |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
  * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn   |
+ * | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
  * `-----------------------------------------------------------------------------------'
  */
 [_QWERTY] = {
   {KC_ESC,                KC_Q,       KC_W,        KC_E,      KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,      KC_O,      KC_P,       KC_BSPC                 },
   {MT(MOD_LSFT, KC_TAB),  KC_A,       KC_S,        KC_D,      KC_F,    KC_G,    KC_H,    KC_J,    KC_K,      KC_L,      KC_SCLN,    MT(MOD_RSFT, KC_ENT)    },
   {KC_LSHIFT,             KC_Z,       KC_X,        KC_C,      KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM,   KC_DOT,    KC_SLSH,    KC_RSHIFT               },
-  {MO(_FUNC),             KC_LCTL,    KC_LALT,     KC_LGUI,   LOWER,   KC_BSPC, KC_SPC,  RAISE,   KC_LSHIFT, KC_BTN2,   KC_RCTL,    MO(_FUNC              }
+  {MO(_FUNC),             KC_LCTL,    KC_LALT,     KC_LGUI,   LOWER,   KC_BSPC, KC_SPC,  RAISE,   KC_LSHIFT, KC_BTN2,   KC_RCTL,    MO(_FUNC2)              }
 },
 
 /* Function
@@ -117,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |------+------+------+------+------+-------------+------+------+------+------+------|
  * | CAPS |      |      |      |      | PLAY1| PLAY2| Mute | Vol+ | Play |      |      |
  * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |      |      |      |      |      | STOP | STOP | Prev | Vol- | Next |      |      |
+ * | PC/MC|      |      |      |      | STOP | STOP | Prev | Vol- | Next |      |      |
  * |------+------+------+------+------+------+------+------+------+------+------+------|
  * |      |      |      |      |      |             |      |      |      |      |      |
  * `-----------------------------------------------------------------------------------'
@@ -147,32 +152,57 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     {_______,      _______,      _______,      _______, _______, _______,   _______, _______,     _______,    _______,      _______, _______ }
 },
 
-[_MAC]= {
+/* Function 2 (Right hand side)
+ * ,-----------------------------------------------------------------------------------.
+ * |      |      |WRDSEL|      |      |      | LNDEL|      |      |      |      |      |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |      |      | LNSEL| DUP  |      |      |      |      |LNJOIN|      |      |      |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |      | UNDO | CUT  | COPY | PASTE|      |      |      |      |      |      | MODE |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |      |      |      |      |      |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNC2] = {
+    {_______,  _______,    M(1),       _______,    _______,    _______, M(5),    _______, _______, _______, _______, _______},
+    {_______,  _______,    M(3),       M(7),       _______,    _______, _______, M(10),   _______, _______, _______, _______},
+    {_______,  LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M(98)  },
+    {_______,  _______,    _______,    _______,    _______,    _______, _______, _______, _______, _______, _______, _______}
+},
+
+[_MAC] = {
     {_______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
     {_______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
     {_______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
-    {_______,  _______, _______, _______, MLWR,    _______, _______, MRSE,    _______, _______, _______, _______}
+    {MFNC,     _______, _______, _______, MLWR,    _______, _______, MRSE,    _______, _______, _______, MFNC2  }
 },
 
 [_MLWR] = {
-    {_______,  _______,  _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______},
-    {_______,  _______,  _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______},
-    {_______,  KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______},
-    {_______,  _______,  _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______}
+    {_______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+    {_______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+    {_______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+    {_______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 },
 
 [_MRSE] = {
-    {_______,  _______,  M(2),    _______, _______, _______, _______,       _______, _______, _______, _______,        _______       },
-    {_______,  _______,  _______, _______, _______, _______, _______,       _______, _______, _______, _______,        LGUI(KC_EQL)  },
-    {_______,  _______,  _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) },
-    {_______,  _______,  _______, _______, _______, _______, _______,       _______, _______, _______, _______,        _______       }
+    {_______,  _______,  M(2),    _______, _______, _______, _______,       _______,    _______, _______,    _______,        _______       },
+    {_______,  _______,  _______, _______, _______, _______, _______,       LCTL(KC_A), _______, LCTL(KC_E), _______,        LGUI(KC_EQL)  },
+    {_______,  _______,  _______, _______, _______, _______, LALT(KC_LEFT), _______,    _______, _______,    LALT(KC_RIGHT), LGUI(KC_MINS) },
+    {_______,  _______,  _______, _______, _______, _______, _______,       _______,    _______, _______,    _______,        _______       }
 },
 
 [_MFNC]= {
-    {_______,  _______,  _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______             },
-    {_______,  _______,  _______,         _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT)       },
-    {_______,  KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______             },
-    {_______,  _______,  _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______             }
+    {_______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______       },
+    {_______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) },
+    {_______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______       },
+    {_______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______       }
+},
+
+[_MFNC2] = {
+    {_______,  _______,    M(2),       _______,    _______,    _______, M(6),    _______, _______, _______, _______, _______},
+    {_______,  _______,    M(4),       M(8),       _______,    _______, _______, M(10),   _______, _______, _______, _______},
+    {_______,  LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M(99)  },
+    {_______,  _______,    _______,    _______,    _______,    _______, _______, _______, _______, _______, _______, _______},
 },
 
 };
@@ -243,6 +273,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         layer_off(_MFNC);
       }
       return false;
+    case MFNC2:
+      if (record->event.pressed) {
+        layer_on(_FUNC2);
+        layer_on(_MFNC2);
+      } else {
+        layer_off(_FUNC2);
+        layer_off(_MFNC2);
+      }
+      return false;
     }
   return true;
 }
@@ -262,6 +301,48 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t op
       case 2: // Word Select Mac
         SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LALT));
         return false;
+
+      case 3: // Line Select
+        SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
+        return false;
+
+      case 4: // Line Select Mac
+        SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
+        return false;
+
+      case 5: // Line Delete
+        SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
+        SEND_STRING(SS_TAP(X_BSPACE));
+        return false;
+
+      case 6: // Line Delete Mac
+        SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
+        SEND_STRING(SS_TAP(X_BSPACE));
+        return false;
+
+      case 7: // Duplicate Selection
+        SEND_STRING(SS_LCTRL("c") SS_TAP(X_RIGHT) SS_LCTRL("v"));
+        return false;
+
+      case 8: // Duplicate Selection Mac
+        SEND_STRING(SS_LGUI("c") SS_TAP(X_RIGHT) SS_LGUI("v"));
+        return false;
+
+      case 9: // Join line
+        SEND_STRING(SS_TAP(X_END) SS_TAP(X_DELETE));
+        return false;
+
+      case 10: // Join line Mac
+        SEND_STRING(SS_LCTRL("e") SS_TAP(X_DELETE));
+        return false;
+
+      case 98: // Print mode
+        SEND_STRING("PC");
+        return false;
+
+      case 99: // Print mode
+        SEND_STRING("OSX");
+        return false;
     }
   }
   return MACRO_NONE;