Jelajahi Sumber

Create ajp10304 userspace and ortho_4x12 layout. (#9304)

ajp10304 4 tahun lalu
induk
melakukan
c5e255a417

+ 118 - 0
keyboards/acheron/shark/keymaps/ajp10304/readme.md

@@ -0,0 +1,118 @@
+# AJP10304 Custom Shark Layout
+# Also available for the Planck, JJ40 and Atreus50
+
+**Note:** In the tables below where there are two characters on a key,
+the second is the output when shift is applied.
+
+**Note:** The below tables assume a UK layout.
+
+#### Flashing
+
+`make acheron/shark:ajp10304:flash`
+
+##### Main Qwerty Layer
+
+* Tab: when held, operates as shift.
+* Enter: when held, operates as shift.
+* MENU: perform right-click
+
+|      |      |      |      |      |      |      |      |      |      |      |      |
+| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
+| Esc  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | Bksp |
+| Tab  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |  ;:  | Enter|
+| Shft |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
+| Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
+
+##### Function Layer
+Activated when `fn` held in the above `qwerty` layer.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|  F1   |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |
+|  1!   |  2"  |  3£  |  4$  |  5%  |  6^  |  7&  |  8*  |  9(  |  0)  |  ~   |INSERT|
+| Shift |  \|  |  `¬  |  #~  |   *  |  -_  |  =+  |  \|  |  [{  |  ]}  |  '@  |Shift |
+| Fn    | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Mouse | MENU | Alt  | Ctrl | Fn2  |
+
+##### Lower Layer
+Activated when `Lower` is held in the above `qwerty` layer.
+
+* Numbers are along the top row, their shifted counterparts are on row 2.
+* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
+* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|  1!   |  2"  |  3£  |  4$  |  5%  |  6^  |  7&  |  8*  |  9(  |  0)  | DEL  | Bksp |
+|  !    |   "  |   £  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  |WrdDel|WrdBks|
+| Shift |  \|  |  `¬  |  #~  |  '@  |  -_  |  =+  |  #~  |  [{  |  ]}  |  '@  |Shift |
+|       |      |      |      |Lower | Del  |Space |      | Next | Vol- | Vol+ | Play |
+
+##### Raise Layer
+Activated when `Raise` is held in the above `qwerty` layer.
+
+* Preferred layer for typing brackets.
+* Allows for cursor navigation to be used solely with the right hand.
+* WRDSEL: Select the word where the cursor is.
+* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
+
+|       |      |      |      |      |      |       |      |      |      |       |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
+|   `   |      |WRDSEL|  [   |   ]  |      |       | PGUP | HOME |PGDOWN|       |PRNTSC|
+|   `   |      |      |  (   |   )  |      |       | HOME |  UP  | END  |       |ZOOM +|
+|       |      |      |  {   |   }  |      |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
+| Mouse |      |      |      |      |  Alt | Enter |Raise |      |      |       |      |
+
+##### Lower + Raise
+Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
+
+* Audio controls in the same position as cursor keys from the `Raise` layer.
+* ????: Runs a macro for outputting a text string.  Do not use this store passwords.
+* Reset: Enter bootloader for flashing firmware to the keyboard.
+* CAPS: Toggle caps lock.
+* Macro functions: Allows recording of macros.  To start recording the macro, press either REC1 or REC2. 
+To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
+* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
+MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| ????  | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |  Del |
+| CAPS  |      |      |      |      | PLAY1|PLAY2 | Mute | Vol+ | Play |      |      |
+| MAC   |      |      |      |      | STOP1|STOP2 | Prev | Vol- | Next |      |      |
+|       |      |      |      |      |      |      |      | DYN  |      |      |      |
+
+##### Function 2 Layer
+Activated when `fn` held in the above `qwerty` layer.
+* WRDSEL: Select the word where the cursor is.
+* LNDEL: Delete the line where the cursor is.
+* LNSEL: Select the line where the cursor is.
+* DUP: Duplicate the selected text.
+* LNJOIN: Join the line where the cursor is with the following line.
+* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|       |      |WRDSEL|      |      |      | LNDEL|      |      |      |      |      |
+|       |      | LNSEL| DUP  |      |      |      |      |LNJOIN|      |      |      |
+|       | UNDO | CUT  | COPY | PASTE|      |      |      |      |      |      | MODE |
+|       |      |      |      |      |      |      |      |      |      |      |      |
+
+##### Mouse Layer
+Activated when `fn` and `raise` held together.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| ESC   |      |      |      |      |      |      |      | BTN3 |      |      |      |
+| ACC0  | ACC1 | ACC2 |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
+| ACC0  | ACC1 | ACC2 |      |      |      |      | LEFT | DOWN | RIGHT|      |      |
+|       |      |      |      |      |      |      |      |      |      |      |      |
+
+##### Number Pad Layout
+Activated when holding `Esc` key.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|       |      |      |      |      |      |NMLOCK|   7  |   8  |   9  |   /  |      |
+|       |      |      |      |      |      |      |   4  |   5  |   6  |   *  |      |
+|       |      |      |      |      |      |      |   1  |   2  |   3  |   +  |      |
+|       |      |      |      |      |      |      |   0  |   .  |   ,  |   -  |      |

+ 1 - 1
keyboards/handwired/atreus50/atreus50.h

@@ -3,7 +3,7 @@
 
 
 #include "quantum.h"
 #include "quantum.h"
 
 
-// The first section contains all of the arguements
+// The first section contains all of the arguments
 // The second converts the arguments into a two-dimensional array
 // The second converts the arguments into a two-dimensional array
 #define LAYOUT( \
 #define LAYOUT( \
   k00, k01, k02, k03, k04, k05,           k06, k07, k08, k09, k0a, k0b, \
   k00, k01, k02, k03, k04, k05,           k06, k07, k08, k09, k0a, k0b, \

+ 41 - 195
keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c

@@ -1,39 +1,6 @@
 #include QMK_KEYBOARD_H
 #include QMK_KEYBOARD_H
 #include "keymap_uk.h"
 #include "keymap_uk.h"
-
-extern keymap_config_t keymap_config;
-
-enum planck_layers {
-  _QWERTY,
-  _MAC,
-  _LOWER,
-  _MLWR,
-  _RAISE,
-  _MRSE,
-  _FUNC,
-  _MFNC,
-  _FUNC2,
-  _MFNC2,
-  _ADJUST,
-  _MOUSE
-};
-
-enum planck_keycodes {
-  QWERTY = SAFE_RANGE,
-  MAC,
-  FUNC,
-  MFNC,
-  FUNC2,
-  MFNC2,
-  LOWER,
-  MLWR,
-  RAISE,
-  MRSE,
-  MOUSE,
-  DYNAMIC_MACRO_RANGE
-};
-
-#include "dynamic_macro.h"
+#include "ajp10304.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 
@@ -49,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * `-------------------------------------------------------------------------------------------------'
  * `-------------------------------------------------------------------------------------------------'
  */
  */
 [_QWERTY] = LAYOUT(
 [_QWERTY] = LAYOUT(
-  KC_ESC,                KC_Q,       KC_W,        KC_E,      KC_R,    KC_T,                      KC_Y,    KC_U,    KC_I,      KC_O,      KC_P,       KC_BSPC              ,
+  LT(_NUMPAD, 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) ,
   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            ,
   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_LCTL, KC_LALT, KC_SPC,  RAISE,   KC_LSHIFT, KC_BTN2,   KC_RCTL,    MO(_FUNC2)
   MO(_FUNC),             KC_LCTL,    KC_LALT,     KC_LGUI,   LOWER,   KC_BSPC, KC_LCTL, KC_LALT, KC_SPC,  RAISE,   KC_LSHIFT, KC_BTN2,   KC_RCTL,    MO(_FUNC2)
@@ -103,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * `-------------------------------------------------------------------------------------------------'
  * `-------------------------------------------------------------------------------------------------'
  */
  */
 [_RAISE] = LAYOUT(
 [_RAISE] = LAYOUT(
-  KC_GRV,     XXXXXXX, M(1),    KC_LBRC,       KC_RBRC,       XXXXXXX,                   XXXXXXX,       KC_PGUP,  KC_HOME,  KC_PGDOWN,  XXXXXXX,        KC_PSCREEN         ,
-  KC_GRV,     XXXXXXX, XXXXXXX, LSFT(KC_9),    LSFT(KC_0),    XXXXXXX,                   XXXXXXX,       KC_HOME,  KC_UP,    KC_END,     XXXXXXX,        LCTL(LSFT(KC_EQL)) ,
-  _______,    XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX,                   LCTL(KC_LEFT), KC_LEFT,  KC_DOWN,  KC_RIGHT,   LCTL(KC_RIGHT), LCTL(KC_MINS)      ,
-  MO(_MOUSE), _______, _______, _______,       _______,       KC_LALT, _______, _______, KC_ENT,        _______,  XXXXXXX,  _______,    _______,        _______
+  KC_GRV,     XXXXXXX, M_WORD_SEL, KC_LBRC,       KC_RBRC,       XXXXXXX,                   XXXXXXX,       KC_PGUP,  KC_HOME,  KC_PGDOWN,  XXXXXXX,        KC_PSCREEN         ,
+  KC_GRV,     XXXXXXX, XXXXXXX,    LSFT(KC_9),    LSFT(KC_0),    XXXXXXX,                   XXXXXXX,       KC_HOME,  KC_UP,    KC_END,     XXXXXXX,        LCTL(LSFT(KC_EQL)) ,
+  _______,    XXXXXXX, XXXXXXX,    LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX,                   LCTL(KC_LEFT), KC_LEFT,  KC_DOWN,  KC_RIGHT,   LCTL(KC_RIGHT), LCTL(KC_MINS)      ,
+  MO(_MOUSE), _______, _______,    _______,       _______,       KC_LALT, _______, _______, KC_ENT,        _______,  XXXXXXX,  _______,    _______,        _______
 ),
 ),
 
 
 /* Adjust (Lower + Raise)
 /* Adjust (Lower + Raise)
@@ -121,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * `-------------------------------------------------------------------------------------------------'
  * `-------------------------------------------------------------------------------------------------'
  */
  */
 [_ADJUST] = LAYOUT(
 [_ADJUST] = LAYOUT(
-  M(0),     RESET,   QWERTY,  _______, _______, DYN_REC_START1,                    DYN_REC_START2,  _______,             _______,           _______,              _______,  KC_DEL  ,
+  M_CUSTOM, RESET,   QWERTY,  _______, _______, DYN_REC_START1,                    DYN_REC_START2,  _______,             _______,           _______,              _______,  KC_DEL  ,
   KC_CAPS,  _______, _______, _______, _______, DYN_MACRO_PLAY1,                   DYN_MACRO_PLAY2, KC_AUDIO_MUTE,       KC_AUDIO_VOL_UP,   KC_MEDIA_PLAY_PAUSE,  _______,  _______ ,
   KC_CAPS,  _______, _______, _______, _______, DYN_MACRO_PLAY1,                   DYN_MACRO_PLAY2, KC_AUDIO_MUTE,       KC_AUDIO_VOL_UP,   KC_MEDIA_PLAY_PAUSE,  _______,  _______ ,
   TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP,                      DYN_REC_STOP,    KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK,  _______,  _______ ,
   TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP,                      DYN_REC_STOP,    KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK,  _______,  _______ ,
   _______,  _______, _______, _______, _______, _______,         _______, _______, _______,         _______,             _______,           _______,              _______,  _______
   _______,  _______, _______, _______, _______, _______,         _______, _______, _______,         _______,             _______,           _______,              _______,  _______
@@ -129,7 +96,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 
 /* Mouse
 /* Mouse
  * ,------------------------------------------             |-----------------------------------------.
  * ,------------------------------------------             |-----------------------------------------.
- * | ESC  |      |      |      |      |      |             |      |      |      |      |      |      |
+ * | ESC  |      |      |      |      |      |             |      |      | BTN3 |      |      |      |
  * |------+------+------+------+------+-------             |------+------+------+------+------+------|
  * |------+------+------+------+------+-------             |------+------+------+------+------+------|
  * | ACC0 | ACC1 | ACC2 |      |      |      |             |      | BTN1 |  UP  | BTN2 |      |      |
  * | ACC0 | ACC1 | ACC2 |      |      |      |             |      | BTN1 |  UP  | BTN2 |      |      |
  * |------+------+------+------+------+------|             |------+------+------+------+------+------|
  * |------+------+------+------+------+------|             |------+------+------+------+------+------|
@@ -139,12 +106,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * `-------------------------------------------------------------------------------------------------'
  * `-------------------------------------------------------------------------------------------------'
  */
  */
 [_MOUSE] = LAYOUT(
 [_MOUSE] = LAYOUT(
-    KC_ESC ,      _______,      _______,      _______, _______, _______,                   _______, _______,    _______,     _______,    _______, _______ ,
+    KC_ESC ,      _______,      _______,      _______, _______, _______,                   _______, _______,    KC_MS_BTN3, _______,    _______, _______ ,
     KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______,                   _______, KC_MS_BTN1, KC_MS_UP,   KC_MS_BTN2,  _______, _______ ,
     KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______,                   _______, KC_MS_BTN1, KC_MS_UP,   KC_MS_BTN2,  _______, _______ ,
     KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______,                   _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______ ,
     KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______,                   _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______ ,
     _______,      _______,      _______,      _______, _______, _______, _______, _______, _______, _______,    _______,    _______,     _______, _______
     _______,      _______,      _______,      _______, _______, _______, _______, _______, _______, _______,    _______,    _______,     _______, _______
 ),
 ),
 
 
+
+/* Num Pad
+ * ,------------------------------------------             |-----------------------------------------.
+ * | ESC  |      |      |      |      |      |             |NMLOCK|   7  |   8  |   9  |   /  |      |
+ * |------+------+------+------+------+-------             |------+------+------+------+------+------|
+ * |      |      |      |      |      |      |             |      |   4  |   5  |   6  |   *  |      |
+ * |------+------+------+------+------+------|             |------+------+------+------+------+------|
+ * |      |      |      |      |      |      |             |      |   1  |   2  |   3  |   +  |      |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |      |      |   0  |   .  |   ,  |   -  |      |
+ * `-------------------------------------------------------------------------------------------------'
+ */
+[_NUMPAD] = LAYOUT(
+    _______, _______, _______, _______, _______, _______,                   KC_NLCK, KC_KP_7, KC_KP_8,   KC_KP_9,     KC_KP_SLASH,    _______,
+    _______, _______, _______, _______, _______, _______,                   _______, KC_KP_4, KC_KP_5,   KC_KP_6,     KC_KP_ASTERISK, _______,
+    _______, _______, _______, _______, _______, _______,                   _______, KC_KP_1, KC_KP_2,   KC_KP_3,     KC_KP_PLUS,     _______,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, KC_COMM,     KC_KP_MINUS,    _______
+),
+
+
 /* Function 2 (Right hand side)
 /* Function 2 (Right hand side)
  * ,------------------------------------------             |-----------------------------------------.
  * ,------------------------------------------             |-----------------------------------------.
  * |      |      |WRDSEL|      |      |      |             | LNDEL|      |      |      |      |      |
  * |      |      |WRDSEL|      |      |      |             | LNDEL|      |      |      |      |      |
@@ -157,10 +144,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * `-------------------------------------------------------------------------------------------------'
  * `-------------------------------------------------------------------------------------------------'
  */
  */
 [_FUNC2] = LAYOUT(
 [_FUNC2] = LAYOUT(
-    _______,  _______,    M(1),       _______,    _______,    _______,                   M(5),    _______, _______, _______, _______, _______,
-    _______,  _______,    M(3),       M(7),       _______,    _______,                   _______, M(10),   _______, _______, _______, _______,
-    _______,  LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______,                   _______, _______, _______, _______, _______, M(98)  ,
-    _______,  _______,    _______,    _______,    _______,    _______, _______, _______, _______, _______, _______, _______, _______, _______
+    _______,  _______,    M_WORD_SEL, _______,    _______,    _______,                   M_LINE_DEL,  _______, _______, _______, _______, _______,
+    _______,  _______,    M_LINE_SEL, M_DUP,      _______,    _______,                   _______,     M_JOIN,  _______, _______, _______, _______,
+    _______,  LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______,                   _______,     _______, _______, _______, _______, M_MODE,
+    _______,  _______,    _______,    _______,    _______,    _______, _______, _______, _______,     _______, _______, _______, _______, _______
 ),
 ),
 
 
 [_MAC] = LAYOUT(
 [_MAC] = LAYOUT(
@@ -178,10 +165,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 ),
 ),
 
 
 [_MRSE] = LAYOUT(
 [_MRSE] = LAYOUT(
-    _______,  _______,  M(2),    _______, _______, _______,                   _______,       _______,    _______, _______,    _______,        _______       ,
-    _______,  _______,  _______, _______, _______, _______,                   _______,       LCTL(KC_A), _______, LCTL(KC_E), _______,        LGUI(KC_EQL)  ,
-    _______,  _______,  _______, _______, _______, _______,                   LALT(KC_LEFT), _______,    _______, _______,    LALT(KC_RIGHT), LGUI(KC_MINS) ,
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______,       _______,    _______, _______,    _______,        _______
+    _______,  _______,  M_WORD_SEL_MAC, _______, _______, _______,                   _______,       _______,    _______, _______,    _______,        _______       ,
+    _______,  _______,  _______,        _______, _______, _______,                   _______,       LCTL(KC_A), _______, LCTL(KC_E), _______,        LGUI(KC_EQL)  ,
+    _______,  _______,  _______,        _______, _______, _______,                   LALT(KC_LEFT), _______,    _______, _______,    LALT(KC_RIGHT), LGUI(KC_MINS) ,
+    _______,  _______,  _______,        _______, _______, _______, _______, _______, _______,       _______,    _______, _______,    _______,        _______
 ),
 ),
 
 
 [_MFNC] = LAYOUT(
 [_MFNC] = LAYOUT(
@@ -192,151 +179,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 ),
 ),
 
 
 [_MFNC2] = LAYOUT(
 [_MFNC2] = LAYOUT(
-    _______,  _______,    M(2),       _______,    _______,    _______,                   M(6),    _______, _______, _______, _______, _______,
-    _______,  _______,    M(4),       M(8),       _______,    _______,                   _______, M(10),   _______, _______, _______, _______,
-    _______,  LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______,                   _______, _______, _______, _______, _______, M(99)  ,
-    _______,  _______,    _______,    _______,    _______,    _______, _______, _______, _______, _______, _______, _______, _______, _______
+    _______,  _______,    M_WORD_SEL_MAC, _______,    _______,    _______,                   M_LINE_DEL_MAC, _______,    _______, _______, _______, _______,
+    _______,  _______,    M_LINE_SEL_MAC, M_DUP_MAC,  _______,    _______,                   _______,        M_JOIN_MAC, _______, _______, _______, _______,
+    _______,  LGUI(KC_Z), LGUI(KC_X),     LGUI(KC_C), LGUI(KC_V), _______,                   _______,        _______,    _______, _______, _______, M_MODE_MAC,
+    _______,  _______,    _______,        _______,    _______,    _______, _______, _______, _______,        _______,    _______, _______, _______, _______
 )
 )
 
 
 };
 };
-
-void persistant_default_layer_set(uint16_t default_layer) {
-  eeconfig_update_default_layer(default_layer);
-  default_layer_set(default_layer);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
-  if (!process_record_dynamic_macro(keycode, record)) {
-      return false;
-  }
-
-   switch (keycode) {
-    case QWERTY:
-      if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_QWERTY);
-      }
-      return false;
-    case LOWER:
-      if (record->event.pressed) {
-        layer_on(_LOWER);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_LOWER);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case RAISE:
-      if (record->event.pressed) {
-        layer_on(_RAISE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_RAISE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case MLWR:
-      if (record->event.pressed) {
-        layer_on(_LOWER);
-        layer_on(_MLWR);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_LOWER);
-        layer_off(_MLWR);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case MRSE:
-      if (record->event.pressed) {
-        layer_on(_RAISE);
-        layer_on(_MRSE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_RAISE);
-        layer_off(_MRSE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case MFNC:
-      if (record->event.pressed) {
-        layer_on(_FUNC);
-        layer_on(_MFNC);
-      } else {
-        layer_off(_FUNC);
-        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;
-}
-
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
-  // These would trigger when you hit a key mapped as M(0)
-  if (record->event.pressed) {
-    switch(keycode) {
-      case 0: // Some custom string here
-        SEND_STRING("");
-        return false;
-
-      case 1: // Word Select
-        SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LCTRL));
-        return false;
-
-      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;
-};

+ 23 - 10
keyboards/handwired/atreus50/keymaps/ajp10304/readme.md

@@ -1,11 +1,15 @@
 # AJP10304 Custom Atreus50 Layout
 # AJP10304 Custom Atreus50 Layout
-# Also available for the Planck and JJ40
+# Also available for the Planck, Shark and JJ40
 
 
 **Note:** In the tables below where there are two characters on a key,
 **Note:** In the tables below where there are two characters on a key,
 the second is the output when shift is applied.
 the second is the output when shift is applied.
 
 
 **Note:** The below tables assume a UK layout.
 **Note:** The below tables assume a UK layout.
 
 
+#### Flashing
+
+`make handwired/atreus50:ajp10304:flash`
+
 ##### Main Qwerty Layer
 ##### Main Qwerty Layer
 
 
 * Tab: when held, operates as shift.
 * Tab: when held, operates as shift.
@@ -43,13 +47,13 @@ Activated when `Lower` is held in the above `qwerty` layer.
 | Shift |  \|  |  `¬  |  #~  |  '@  |  -_  |      |      |  =+  |  #~  |  [{  |  ]}  |  '@  |Shift |
 | Shift |  \|  |  `¬  |  #~  |  '@  |  -_  |      |      |  =+  |  #~  |  [{  |  ]}  |  '@  |Shift |
 |       |      |      |      |Lower | Del  | Ctrl | Alt  |Space |      | Next | Vol- | Vol+ | Play |
 |       |      |      |      |Lower | Del  | Ctrl | Alt  |Space |      | Next | Vol- | Vol+ | Play |
 
 
- ##### Raise Layer
- Activated when `Raise` is held in the above `qwerty` layer.
+##### Raise Layer
+Activated when `Raise` is held in the above `qwerty` layer.
 
 
- * Preferred layer for typing brackets.
- * Allows for cursor navigation to be used solely with the right hand.
- * WRDSEL: Select the word where the cursor is.
- * |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
+* Preferred layer for typing brackets.
+* Allows for cursor navigation to be used solely with the right hand.
+* WRDSEL: Select the word where the cursor is.
+* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
 
 
 |       |      |      |      |      |      |      |      |       |      |      |      |       |      |
 |       |      |      |      |      |      |      |      |       |      |      |      |       |      |
 | :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
 | :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
@@ -98,11 +102,20 @@ Activated when `fn` and `raise` held together.
 
 
 |       |      |      |      |      |      |      |      |      |      |      |      |      |      |
 |       |      |      |      |      |      |      |      |      |      |      |      |      |      |
 | :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
 | :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| ESC   |      |      |      |      |      |      |      |      |      |      |      |      |      |
+| ESC   |      |      |      |      |      |      |      |      |      | BTN3 |      |      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      |      |      | LEFT | DOWN | RIGHT|      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      |      |      | LEFT | DOWN | RIGHT|      |      |
 |       |      |      |      |      |      | Ctrl | Alt  |      |      |      |      |      |      |
 |       |      |      |      |      |      | Ctrl | Alt  |      |      |      |      |      |      |
 
 
+##### Number Pad Layout
+Activated when holding `Esc` key.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|       |      |      |      |      |      |      |      |NMLOCK|   7  |   8  |   9  |   /  |      |
+|       |      |      |      |      |      |      |      |      |   4  |   5  |   6  |   *  |      |
+|       |      |      |      |      |      |      |      |      |   1  |   2  |   3  |   +  |      |
+|       |      |      |      |      |      | Ctrl | Alt  |      |   0  |   .  |   ,  |   -  |      |
+
+
 
 
-##Program Command
-teensy_loader_cli -w -mmcu=atmega32u4 handwired_atreus50_ajp10304.hex

+ 0 - 5
keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk

@@ -1,8 +1,3 @@
 AUDIO_ENABLE = no
 AUDIO_ENABLE = no
 MOUSEKEY_ENABLE = yes
 MOUSEKEY_ENABLE = yes
-
-TEMP := $(OPT_DEFS)
-OPT_DEFS = $(filter-out -DBOOTLOADER_SIZE=4096,$(TEMP))
-OPT_DEFS += -DBOOTLOADER_SIZE=512
-
 BOOTLOADER = halfkay
 BOOTLOADER = halfkay

+ 0 - 342
keyboards/jj40/keymaps/ajp10304/keymap.c

@@ -1,342 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "keymap_uk.h"
-
-extern keymap_config_t keymap_config;
-
-enum jj40_layers {
-  _QWERTY,
-  _MAC,
-  _LOWER,
-  _MLWR,
-  _RAISE,
-  _MRSE,
-  _FUNC,
-  _MFNC,
-  _FUNC2,
-  _MFNC2,
-  _ADJUST,
-  _MOUSE
-};
-
-enum jj40_keycodes {
-  QWERTY = SAFE_RANGE,
-  MAC,
-  FUNC,
-  MFNC,
-  FUNC2,
-  MFNC2,
-  LOWER,
-  MLWR,
-  RAISE,
-  MRSE,
-  MOUSE,
-  DYNAMIC_MACRO_RANGE
-};
-
-#include "dynamic_macro.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Esc  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Tab  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |  ;:  | Enter|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shft |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12(\
-  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(_FUNC2)              \
-),
-
-/* Function
- * ,-----------------------------------------------------------------------------------.
- * |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |  1!  |  2"  |  3£  |  4$  |  5%  |  6^  |  7&  |  8*  |  9(  |  0)  |  ~   |INSERT|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift|  \|  |  `¬  |  #~  |   *  |  -_  |  =+  |  \|  |  [{  |  ]}  |  '@  |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Mouse | MENU | Alt  | Ctrl | Fn   |
- * `-----------------------------------------------------------------------------------'
- */
-[_FUNC] = LAYOUT_ortho_4x12(\
-  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_1,      KC_2,            KC_3,     KC_4,          KC_5,    KC_6,    KC_7,    KC_8,       KC_9,     KC_0,    UK_TILD, KC_INSERT              ,\
-  KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL,  KC_BSLASH,  KC_LBRC,  KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT)   ,\
-  _______,   _______,         _______,  _______,       _______, _______, _______, MO(_MOUSE), _______,  _______, _______, _______                \
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * |  1!  |  2"  |  3£  |  4$  |  5%  |  6^  |  7&  |  8*  |  9(  |  0)  | DEL  | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |  !   |   "  |   £  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  |WrdDel|WrdBks|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift|  \|  |  `¬  |  #~  |  '@  |  -_  |  =+  |  #~  |  [{  |  ]}  |  '@  |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |      |      |      |      |Lower | Del  |Space |      | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(\
-  KC_1,        KC_2,            KC_3,           KC_4,           KC_5,          KC_6,          KC_7,           KC_8,            KC_9,           KC_0,          KC_DEL,          KC_BSPC                ,\
-  LSFT(KC_1),  LSFT(KC_2),      LSFT(KC_3),     LSFT(KC_4),     LSFT(KC_5),    LSFT(KC_6),    LSFT(KC_7),     LSFT(KC_8),      LSFT(KC_9),     LSFT(KC_0),    LCTL(KC_DEL),    LCTL(KC_BSPC)          ,\
-  KC_LSPO,     KC_NONUS_BSLASH, KC_GRAVE,       KC_NONUS_HASH,  KC_QUOT,       KC_MINS,       KC_EQL,         KC_NONUS_HASH,   KC_LBRC,        KC_RBRC,       KC_QUOT,         MT(MOD_RSFT, KC_ENT)   ,\
-  _______,     _______,         _______,        _______,        _______,       KC_DEL,        _______,        _______,         KC_MNXT,        KC_VOLD,       KC_VOLU,         KC_MPLY                \
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * |   `  |      |WRDSEL|  [   |   ]  |      |      | PGUP | HOME |PGDOWN|      |PRNTSC|
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |   `  |      |      |  (   |   )  |      |      | HOME |  UP  | END  |      |ZOOM +|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |      |      |      |  {   |   }  |      |  |<  | LEFT | DOWN |RIGHT |  >|  |ZOOM -|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Mouse|      |      |      |      |  Alt | Enter|Raise |      |      |      |      |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(\
-  KC_GRV,     XXXXXXX, M(1),    KC_LBRC,       KC_RBRC,       XXXXXXX,   XXXXXXX,       KC_PGUP,  KC_HOME,  KC_PGDOWN,  XXXXXXX,        KC_PSCREEN            ,\
-  KC_GRV,     XXXXXXX, XXXXXXX, LSFT(KC_9),    LSFT(KC_0),    XXXXXXX,   XXXXXXX,       KC_HOME,  KC_UP,    KC_END,     XXXXXXX,        LCTL(LSFT(KC_EQL))    ,\
-  _______,    XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX,   LCTL(KC_LEFT), KC_LEFT,  KC_DOWN,  KC_RIGHT,   LCTL(KC_RIGHT), LCTL(KC_MINS)         ,\
-  MO(_MOUSE), _______, _______, _______,       _______,       KC_LALT,   KC_ENT,        _______,  XXXXXXX,  _______,    _______,        _______               \
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | ???? | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |  Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | CAPS |      |      |      |      | PLAY1| PLAY2| Mute | Vol+ | Play |      |      |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | PC/MC|      |      |      |      | STOP | STOP | Prev | Vol- | Next |      |      |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |      |      |      |      |      |             |      |      |      |      |      |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12(\
-  M(0),     RESET,   QWERTY,  BL_ON,   BL_OFF,  DYN_REC_START1,  DYN_REC_START2,  _______,             _______,           _______,              _______,  KC_DEL  ,\
-  KC_CAPS,  RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE,       KC_AUDIO_VOL_UP,   KC_MEDIA_PLAY_PAUSE,  _______,  _______ ,\
-  TG(_MAC), RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, DYN_REC_STOP,    DYN_REC_STOP,    KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK,  _______,  _______ ,\
-  _______,  _______, _______, _______, _______, _______,         _______,         _______,             _______,           _______,              _______,  _______ \
-),
-
-/* Mouse
- * ,-----------------------------------------------------------------------------------.
- * | ESC  |      |      |      |      |      |      |      |      |      |      |      |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ACC0 | ACC1 | ACC2 |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | ACC0 | ACC1 | ACC2 |      |      |      |      | LEFT | DOWN |RIGHT |      |      |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |      |      |      |      |      |      |      |      |      |      |      |      |
- * `-----------------------------------------------------------------------------------'
- */
-[_MOUSE] = LAYOUT_ortho_4x12(\
-    KC_ESC ,      _______,      _______,      _______, _______, _______,   _______, _______,     _______,     _______,     _______, _______,\
-    KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______,   _______, KC_MS_BTN1,  KC_MS_UP,   KC_MS_BTN2,   _______, _______,\
-    KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______,   _______, KC_MS_LEFT,  KC_MS_DOWN, KC_MS_RIGHT,  _______, _______,\
-    _______,      _______,      _______,      _______, _______, _______,   _______, _______,     _______,    _______,      _______, _______\
-),
-
-/* Function 2 (Right hand side)
- * ,-----------------------------------------------------------------------------------.
- * |      |      |WRDSEL|      |      |      | LNDEL|      |      |      |      |      |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |      |      | LNSEL| DUP  |      |      |      |      |LNJOIN|      |      |      |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |      | UNDO | CUT  | COPY | PASTE|      |      |      |      |      |      | MODE |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |      |      |      |      |      |      |      |      |      |      |      |      |
- * `-----------------------------------------------------------------------------------'
- */
-[_FUNC2] = LAYOUT_ortho_4x12(\
-    _______,  _______,    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]= LAYOUT_ortho_4x12(\
-    _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
-    _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
-    _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
-    MFNC,     _______, _______, _______, MLWR,    _______, _______, MRSE,    _______, _______, _______, MFNC2   \
-),
-
-[_MLWR] = LAYOUT_ortho_4x12(\
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
-),
-
-[_MRSE] = LAYOUT_ortho_4x12(\
-    _______,  _______,  M(2),    _______, _______, _______, _______,       _______,    _______, _______,    _______,        _______       ,\
-    _______,  _______,  _______, _______, _______, _______, _______,       LCTL(KC_A), _______, LCTL(KC_E), _______,        LGUI(KC_EQL)  ,\
-    _______,  _______,  _______, _______, _______, _______, LALT(KC_LEFT), _______,    _______, _______,    LALT(KC_RIGHT), LGUI(KC_MINS) ,\
-    _______,  _______,  _______, _______, _______, _______, _______,       _______,    _______, _______,    _______,        _______        \
-),
-
-[_MFNC]= LAYOUT_ortho_4x12(\
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______       ,\
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,\
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______       ,\
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______        \
-),
-
-[_MFNC2] = LAYOUT_ortho_4x12(\
-    _______,  _______,    M(2),       _______,    _______,    _______, M(6),    _______, _______, _______, _______, _______,\
-    _______,  _______,    M(4),       M(8),       _______,    _______, _______, M(10),   _______, _______, _______, _______,\
-    _______,  LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M(99),  \
-    _______,  _______,    _______,    _______,    _______,    _______, _______, _______, _______, _______, _______, _______ \
-)
-
-};
-
-void persistant_default_layer_set(uint16_t default_layer) {
-  eeconfig_update_default_layer(default_layer);
-  default_layer_set(default_layer);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
-  if (!process_record_dynamic_macro(keycode, record)) {
-      return false;
-  }
-
-   switch (keycode) {
-    case QWERTY:
-      if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_QWERTY);
-      }
-      return false;
-    case LOWER:
-      if (record->event.pressed) {
-        layer_on(_LOWER);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_LOWER);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case RAISE:
-      if (record->event.pressed) {
-        layer_on(_RAISE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_RAISE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case MLWR:
-      if (record->event.pressed) {
-        layer_on(_LOWER);
-        layer_on(_MLWR);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_LOWER);
-        layer_off(_MLWR);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case MRSE:
-      if (record->event.pressed) {
-        layer_on(_RAISE);
-        layer_on(_MRSE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_RAISE);
-        layer_off(_MRSE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case MFNC:
-      if (record->event.pressed) {
-        layer_on(_FUNC);
-        layer_on(_MFNC);
-      } else {
-        layer_off(_FUNC);
-        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;
-}
-
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
-  // These would trigger when you hit a key mapped as M(0)
-  if (record->event.pressed) {
-    switch(keycode) {
-      case 0: // Some custom string here
-        SEND_STRING("");
-        return false;
-
-      case 1: // Word Select
-        SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LCTRL));
-        return false;
-
-      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;
-};

+ 22 - 11
keyboards/jj40/keymaps/ajp10304/readme.md

@@ -1,11 +1,16 @@
 # AJP10304 Custom JJ40 Layout
 # AJP10304 Custom JJ40 Layout
-# Also available for the Atreus50 and Planck
+# Also available for the Planck, Shark and Atreus50
 
 
 **Note:** In the tables below where there are two characters on a key,
 **Note:** In the tables below where there are two characters on a key,
 the second is the output when shift is applied.
 the second is the output when shift is applied.
 
 
 **Note:** The below tables assume a UK layout.
 **Note:** The below tables assume a UK layout.
 
 
+#### Flashing
+Use sleep to get a chance to get into boot mode.
+
+`make jj40:ajp10304:flash`
+
 ##### Main Qwerty Layer
 ##### Main Qwerty Layer
 
 
 * Tab: when held, operates as shift.
 * Tab: when held, operates as shift.
@@ -43,13 +48,13 @@ Activated when `Lower` is held in the above `qwerty` layer.
 | Shift |  \|  |  `¬  |  #~  |  '@  |  -_  |  =+  |  #~  |  [{  |  ]}  |  '@  |Shift |
 | Shift |  \|  |  `¬  |  #~  |  '@  |  -_  |  =+  |  #~  |  [{  |  ]}  |  '@  |Shift |
 |       |      |      |      |Lower | Del  |Space |      | Next | Vol- | Vol+ | Play |
 |       |      |      |      |Lower | Del  |Space |      | Next | Vol- | Vol+ | Play |
 
 
- ##### Raise Layer
- Activated when `Raise` is held in the above `qwerty` layer.
+##### Raise Layer
+Activated when `Raise` is held in the above `qwerty` layer.
 
 
- * Preferred layer for typing brackets.
- * Allows for cursor navigation to be used solely with the right hand.
- * WRDSEL: Select the word where the cursor is.
- * |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
+* Preferred layer for typing brackets.
+* Allows for cursor navigation to be used solely with the right hand.
+* WRDSEL: Select the word where the cursor is.
+* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
 
 
 |       |      |      |      |      |      |       |      |      |      |       |      |
 |       |      |      |      |      |      |       |      |      |      |       |      |
 | :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
 | :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
@@ -98,11 +103,17 @@ Activated when `fn` and `raise` held together.
 
 
 |       |      |      |      |      |      |      |      |      |      |      |      |
 |       |      |      |      |      |      |      |      |      |      |      |      |
 | :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
 | :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| ESC   |      |      |      |      |      |      |      |      |      |      |      |
+| ESC   |      |      |      |      |      |      |      | BTN3 |      |      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      | LEFT | DOWN | RIGHT|      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      | LEFT | DOWN | RIGHT|      |      |
 |       |      |      |      |      |      |      |      |      |      |      |      |
 |       |      |      |      |      |      |      |      |      |      |      |      |
 
 
-####Manual Flashing of hex file
-Use sleep to get a chance to get into boot mode.
-`sleep 5; bootloadHID -r .build/jj40_ajp10304.hex`
+##### Number Pad Layout
+Activated when holding `Esc` key.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|       |      |      |      |      |      |NMLOCK|   7  |   8  |   9  |   /  |      |
+|       |      |      |      |      |      |      |   4  |   5  |   6  |   *  |      |
+|       |      |      |      |      |      |      |   1  |   2  |   3  |   +  |      |
+|       |      |      |      |      |      |      |   0  |   .  |   ,  |   -  |      |

+ 22 - 11
keyboards/planck/keymaps/ajp10304/readme.md

@@ -1,14 +1,15 @@
 # AJP10304 Custom Planck Layout
 # AJP10304 Custom Planck Layout
-# Also available for the Atreus50 and JJ40
+# Also available for the Shark, JJ40 and Atreus50
 
 
 **Note:** In the tables below where there are two characters on a key,
 **Note:** In the tables below where there are two characters on a key,
 the second is the output when shift is applied.
 the second is the output when shift is applied.
 
 
 **Note:** The below tables assume a UK layout.
 **Note:** The below tables assume a UK layout.
 
 
-####Flashing
-Rev <=5: sudo make planck:ajp10304:dfu
-Rev 6: sudo make planck/rev6:ajp10304:dfu-util
+#### Flashing
+Rev <=5: `make planck:ajp10304:flash`
+
+Rev 6: `make planck/rev6:ajp10304:flash`
 
 
 ##### Main Qwerty Layer
 ##### Main Qwerty Layer
 
 
@@ -47,13 +48,13 @@ Activated when `Lower` is held in the above `qwerty` layer.
 | Shift |  \|  |  `¬  |  #~  |  '@  |  -_  |  =+  |  #~  |  [{  |  ]}  |  '@  |Shift |
 | Shift |  \|  |  `¬  |  #~  |  '@  |  -_  |  =+  |  #~  |  [{  |  ]}  |  '@  |Shift |
 |       |      |      |      |Lower | Del  |Space |      | Next | Vol- | Vol+ | Play |
 |       |      |      |      |Lower | Del  |Space |      | Next | Vol- | Vol+ | Play |
 
 
- ##### Raise Layer
- Activated when `Raise` is held in the above `qwerty` layer.
+##### Raise Layer
+Activated when `Raise` is held in the above `qwerty` layer.
 
 
- * Preferred layer for typing brackets.
- * Allows for cursor navigation to be used solely with the right hand.
- * WRDSEL: Select the word where the cursor is.
- * |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
+* Preferred layer for typing brackets.
+* Allows for cursor navigation to be used solely with the right hand.
+* WRDSEL: Select the word where the cursor is.
+* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
 
 
 |       |      |      |      |      |      |       |      |      |      |       |      |
 |       |      |      |      |      |      |       |      |      |      |       |      |
 | :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
 | :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
@@ -102,7 +103,17 @@ Activated when `fn` and `raise` held together.
 
 
 |       |      |      |      |      |      |      |      |      |      |      |      |
 |       |      |      |      |      |      |      |      |      |      |      |      |
 | :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
 | :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| ESC   |      |      |      |      |      |      |      |      |      |      |      |
+| ESC   |      |      |      |      |      |      |      | BTN3 |      |      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      | LEFT | DOWN | RIGHT|      |      |
 | ACC0  | ACC1 | ACC2 |      |      |      |      | LEFT | DOWN | RIGHT|      |      |
 |       |      |      |      |      |      |      |      |      |      |      |      |
 |       |      |      |      |      |      |      |      |      |      |      |      |
+
+##### Number Pad Layout
+Activated when holding `Esc` key.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|       |      |      |      |      |      |NMLOCK|   7  |   8  |   9  |   /  |      |
+|       |      |      |      |      |      |      |   4  |   5  |   6  |   *  |      |
+|       |      |      |      |      |      |      |   1  |   2  |   3  |   +  |      |
+|       |      |      |      |      |      |      |   0  |   .  |   ,  |   -  |      |

+ 0 - 3
keyboards/planck/keymaps/ajp10304/rules.mk

@@ -1,3 +0,0 @@
-AUDIO_ENABLE = no
-MOUSEKEY_ENABLE = yes
-

+ 64 - 223
keyboards/planck/keymaps/ajp10304/keymap.c → layouts/community/ortho_4x12/ajp10304/keymap.c

@@ -1,42 +1,6 @@
-#include "planck.h"
-#include "action_layer.h"
-#include "eeconfig.h"
+#include "ajp10304.h"
 #include "keymap_uk.h"
 #include "keymap_uk.h"
 
 
-extern keymap_config_t keymap_config;
-
-enum planck_layers {
-  _QWERTY,
-  _MAC,
-  _LOWER,
-  _MLWR,
-  _RAISE,
-  _MRSE,
-  _FUNC,
-  _MFNC,
-  _FUNC2,
-  _MFNC2,
-  _ADJUST,
-  _MOUSE
-};
-
-enum planck_keycodes {
-  QWERTY = SAFE_RANGE,
-  MAC,
-  FUNC,
-  MFNC,
-  FUNC2,
-  MFNC2,
-  LOWER,
-  MLWR,
-  RAISE,
-  MRSE,
-  MOUSE,
-  DYNAMIC_MACRO_RANGE
-};
-
-#include "dynamic_macro.h"
-
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 
 /* Qwerty
 /* Qwerty
@@ -50,10 +14,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
  * | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
  */
  */
-[_QWERTY] = LAYOUT_planck_grid(
-  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,
+[_QWERTY] = LAYOUT_ortho_4x12(
+  LT(_NUMPAD, 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(_FUNC2)
   MO(_FUNC),             KC_LCTL,    KC_LALT,     KC_LGUI,   LOWER,   KC_BSPC, KC_SPC,  RAISE,   KC_LSHIFT, KC_BTN2,   KC_RCTL,    MO(_FUNC2)
 ),
 ),
 
 
@@ -68,10 +32,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Mouse | MENU | Alt  | Ctrl | Fn   |
  * | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Mouse | MENU | Alt  | Ctrl | Fn   |
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
  */
  */
-[_FUNC] = LAYOUT_planck_grid(
-  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_1,      KC_2,            KC_3,     KC_4,          KC_5,    KC_6,    KC_7,    KC_8,       KC_9,     KC_0,    UK_TILD, KC_INSERT,
-  KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL,  KC_BSLASH,  KC_LBRC,  KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT),
+[_FUNC] = LAYOUT_ortho_4x12(
+  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_1,      KC_2,            KC_3,     KC_4,          KC_5,    KC_6,    KC_7,    KC_8,       KC_9,     KC_0,    UK_TILD, KC_INSERT              ,
+  KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL,  KC_BSLASH,  KC_LBRC,  KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT)   ,
   _______,   _______,         _______,  _______,       _______, _______, _______, MO(_MOUSE), _______,  _______, _______, _______
   _______,   _______,         _______,  _______,       _______, _______, _______, MO(_MOUSE), _______,  _______, _______, _______
 ),
 ),
 
 
@@ -86,10 +50,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |      |      |      |      |Lower | Del  |Space |      | Next | Vol- | Vol+ | Play |
  * |      |      |      |      |Lower | Del  |Space |      | Next | Vol- | Vol+ | Play |
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
  */
  */
-[_LOWER] = LAYOUT_planck_grid(
-  KC_1,        KC_2,            KC_3,           KC_4,           KC_5,          KC_6,          KC_7,           KC_8,            KC_9,           KC_0,          KC_DEL,          KC_BSPC,
-  LSFT(KC_1),  LSFT(KC_2),      LSFT(KC_3),     LSFT(KC_4),     LSFT(KC_5),    LSFT(KC_6),    LSFT(KC_7),     LSFT(KC_8),      LSFT(KC_9),     LSFT(KC_0),    LCTL(KC_DEL),    LCTL(KC_BSPC),
-  KC_LSPO,     KC_NONUS_BSLASH, KC_GRAVE,       KC_NONUS_HASH,  KC_QUOT,       KC_MINS,       KC_EQL,         KC_NONUS_HASH,   KC_LBRC,        KC_RBRC,       KC_QUOT,         MT(MOD_RSFT, KC_ENT),
+[_LOWER] = LAYOUT_ortho_4x12(
+  KC_1,        KC_2,            KC_3,           KC_4,           KC_5,          KC_6,          KC_7,           KC_8,            KC_9,           KC_0,          KC_DEL,          KC_BSPC                ,
+  LSFT(KC_1),  LSFT(KC_2),      LSFT(KC_3),     LSFT(KC_4),     LSFT(KC_5),    LSFT(KC_6),    LSFT(KC_7),     LSFT(KC_8),      LSFT(KC_9),     LSFT(KC_0),    LCTL(KC_DEL),    LCTL(KC_BSPC)          ,
+  KC_LSPO,     KC_NONUS_BSLASH, KC_GRAVE,       KC_NONUS_HASH,  KC_QUOT,       KC_MINS,       KC_EQL,         KC_NONUS_HASH,   KC_LBRC,        KC_RBRC,       KC_QUOT,         MT(MOD_RSFT, KC_ENT)   ,
   _______,     _______,         _______,        _______,        _______,       KC_DEL,        _______,        _______,         KC_MNXT,        KC_VOLD,       KC_VOLU,         KC_MPLY
   _______,     _______,         _______,        _______,        _______,       KC_DEL,        _______,        _______,         KC_MNXT,        KC_VOLD,       KC_VOLU,         KC_MPLY
 ),
 ),
 
 
@@ -104,11 +68,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * | Mouse|      |      |      |      |  Alt | Enter|Raise |      |      |      |      |
  * | Mouse|      |      |      |      |  Alt | Enter|Raise |      |      |      |      |
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
  */
  */
-[_RAISE] = LAYOUT_planck_grid(
-  KC_GRV,     XXXXXXX, M(1),    KC_LBRC,       KC_RBRC,       XXXXXXX,   XXXXXXX,       KC_PGUP,  KC_HOME,  KC_PGDOWN,  XXXXXXX,        KC_PSCREEN,
-  KC_GRV,     XXXXXXX, XXXXXXX, LSFT(KC_9),    LSFT(KC_0),    XXXXXXX,   XXXXXXX,       KC_HOME,  KC_UP,    KC_END,     XXXXXXX,        LCTL(LSFT(KC_EQL)),
-  _______,    XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX,   LCTL(KC_LEFT), KC_LEFT,  KC_DOWN,  KC_RIGHT,   LCTL(KC_RIGHT), LCTL(KC_MINS),
-  MO(_MOUSE), _______, _______, _______,       _______,       KC_LALT,   KC_ENT,        _______,  XXXXXXX,  _______,    _______,        _______
+[_RAISE] = LAYOUT_ortho_4x12(
+  KC_GRV,     XXXXXXX, M_WORD_SEL, KC_LBRC,       KC_RBRC,       XXXXXXX,   XXXXXXX,       KC_PGUP,  KC_HOME,  KC_PGDOWN,  XXXXXXX,        KC_PSCREEN            ,
+  KC_GRV,     XXXXXXX, XXXXXXX,    LSFT(KC_9),    LSFT(KC_0),    XXXXXXX,   XXXXXXX,       KC_HOME,  KC_UP,    KC_END,     XXXXXXX,        LCTL(LSFT(KC_EQL))    ,
+  _______,    XXXXXXX, XXXXXXX,    LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX,   LCTL(KC_LEFT), KC_LEFT,  KC_DOWN,  KC_RIGHT,   LCTL(KC_RIGHT), LCTL(KC_MINS)         ,
+  MO(_MOUSE), _______, _______,    _______,       _______,       KC_LALT,   KC_ENT,        _______,  XXXXXXX,  _______,    _______,        _______
 ),
 ),
 
 
 /* Adjust (Lower + Raise)
 /* Adjust (Lower + Raise)
@@ -122,16 +86,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |      |      |      |      |      |             |      |      |      |      |      |
  * |      |      |      |      |      |             |      |      |      |      |      |
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
  */
  */
-[_ADJUST] = LAYOUT_planck_grid(
-  M(0),     RESET,   QWERTY,  _______, _______, DYN_REC_START1,  DYN_REC_START2,  _______,             _______,           _______,              _______,  KC_DEL,
-  KC_CAPS,  _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE,       KC_AUDIO_VOL_UP,   KC_MEDIA_PLAY_PAUSE,  _______,  _______,
-  TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP,    DYN_REC_STOP,    KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK,  _______,  _______,
+[_ADJUST] = LAYOUT_ortho_4x12(
+  M_CUSTOM, RESET,   QWERTY,  BL_ON,   BL_OFF,  DYN_REC_START1,  DYN_REC_START2,  _______,             _______,           _______,              _______,  KC_DEL  ,
+  KC_CAPS,  RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE,       KC_AUDIO_VOL_UP,   KC_MEDIA_PLAY_PAUSE,  _______,  _______ ,
+  TG(_MAC), RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, DYN_REC_STOP,    DYN_REC_STOP,    KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK,  _______,  _______ ,
   _______,  _______, _______, _______, _______, _______,         _______,         _______,             _______,           _______,              _______,  _______
   _______,  _______, _______, _______, _______, _______,         _______,         _______,             _______,           _______,              _______,  _______
 ),
 ),
 
 
 /* Mouse
 /* Mouse
  * ,-----------------------------------------------------------------------------------.
  * ,-----------------------------------------------------------------------------------.
- * | ESC  |      |      |      |      |      |      |      |      |      |      |      |
+ * | ESC  |      |      |      |      |      |      |      | BTN3 |      |      |      |
  * |------+------+------+------+------+-------------+------+------+------+------+------|
  * |------+------+------+------+------+-------------+------+------+------+------+------|
  * | ACC0 | ACC1 | ACC2 |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
  * | ACC0 | ACC1 | ACC2 |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
  * |------+------+------+------+------+------|------+------+------+------+------+------|
  * |------+------+------+------+------+------|------+------+------+------+------+------|
@@ -140,13 +104,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |      |      |      |      |      |      |      |      |      |      |      |      |
  * |      |      |      |      |      |      |      |      |      |      |      |      |
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
  */
  */
-[_MOUSE] = LAYOUT_planck_grid(
-    KC_ESC ,      _______,      _______,      _______, _______, _______,   _______, _______,     _______,     _______,     _______, _______,
+[_MOUSE] = LAYOUT_ortho_4x12(
+    KC_ESC ,      _______,      _______,      _______, _______, _______,   _______, _______,     KC_MS_BTN3, _______,     _______, _______,
     KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______,   _______, KC_MS_BTN1,  KC_MS_UP,   KC_MS_BTN2,   _______, _______,
     KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______,   _______, KC_MS_BTN1,  KC_MS_UP,   KC_MS_BTN2,   _______, _______,
     KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______,   _______, KC_MS_LEFT,  KC_MS_DOWN, KC_MS_RIGHT,  _______, _______,
     KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______,   _______, KC_MS_LEFT,  KC_MS_DOWN, KC_MS_RIGHT,  _______, _______,
     _______,      _______,      _______,      _______, _______, _______,   _______, _______,     _______,    _______,      _______, _______
     _______,      _______,      _______,      _______, _______, _______,   _______, _______,     _______,    _______,      _______, _______
 ),
 ),
 
 
+/* Num Pad
+ * ,-----------------------------------------------------------------------------------.
+ * | ESC  |      |      |      |      |      |NMLOCK|   7  |   8  |   9  |   /  |      |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |   4  |   5  |   6  |   *  |      |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |   1  |   2  |   3  |   +  |      |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |   0  |   .  |   ,  |   -  |      |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_NUMPAD] = LAYOUT_ortho_4x12(
+    _______, _______, _______, _______, _______, _______, KC_NLCK, KC_KP_7, KC_KP_8,   KC_KP_9,     KC_KP_SLASH,    _______,
+    _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5,   KC_KP_6,     KC_KP_ASTERISK, _______,
+    _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2,   KC_KP_3,     KC_KP_PLUS,     _______,
+    _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, KC_COMM,     KC_KP_MINUS,    _______
+),
+
 /* Function 2 (Right hand side)
 /* Function 2 (Right hand side)
  * ,-----------------------------------------------------------------------------------.
  * ,-----------------------------------------------------------------------------------.
  * |      |      |WRDSEL|      |      |      | LNDEL|      |      |      |      |      |
  * |      |      |WRDSEL|      |      |      | LNDEL|      |      |      |      |      |
@@ -158,187 +140,46 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |      |      |      |      |      |      |      |      |      |      |      |      |
  * |      |      |      |      |      |      |      |      |      |      |      |      |
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
  */
  */
-[_FUNC2] = LAYOUT_planck_grid(
-    _______,  _______,    M(1),       _______,    _______,    _______, M(5),    _______, _______, _______, _______, _______,
-    _______,  _______,    M(3),       M(7),       _______,    _______, _______, M(10),   _______, _______, _______, _______,
-    _______,  LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M(98)  ,
-    _______,  _______,    _______,    _______,    _______,    _______, _______, _______, _______, _______, _______, _______
+[_FUNC2] = LAYOUT_ortho_4x12(
+    _______,  _______,    M_WORD_SEL, _______,    _______,    _______, M_LINE_DEL, _______, _______, _______, _______, _______,
+    _______,  _______,    M_LINE_SEL, M_DUP,      _______,    _______, _______,    M_JOIN,  _______, _______, _______, _______,
+    _______,  LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______,    _______, _______, _______, _______, M_MODE,
+    _______,  _______,    _______,    _______,    _______,    _______, _______,    _______, _______, _______, _______, _______
 ),
 ),
 
 
-[_MAC] = LAYOUT_planck_grid(
+[_MAC]= LAYOUT_ortho_4x12(
     _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     MFNC,     _______, _______, _______, MLWR,    _______, _______, MRSE,    _______, _______, _______, MFNC2
     MFNC,     _______, _______, _______, MLWR,    _______, _______, MRSE,    _______, _______, _______, MFNC2
 ),
 ),
 
 
-[_MLWR] = LAYOUT_planck_grid(
+[_MLWR] = LAYOUT_ortho_4x12(
     _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
     _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
 ),
 ),
 
 
-[_MRSE] = LAYOUT_planck_grid(
-    _______,  _______,  M(2),    _______, _______, _______, _______,       _______,    _______, _______,    _______,        _______,
-    _______,  _______,  _______, _______, _______, _______, _______,       LCTL(KC_A), _______, LCTL(KC_E), _______,        LGUI(KC_EQL),
-    _______,  _______,  _______, _______, _______, _______, LALT(KC_LEFT), _______,    _______, _______,    LALT(KC_RIGHT), LGUI(KC_MINS),
-    _______,  _______,  _______, _______, _______, _______, _______,       _______,    _______, _______,    _______,        _______
+[_MRSE] = LAYOUT_ortho_4x12(
+    _______,  _______,  M_WORD_SEL_MAC, _______, _______, _______, _______,       _______,    _______, _______,    _______,        _______       ,
+    _______,  _______,  _______,        _______, _______, _______, _______,       LCTL(KC_A), _______, LCTL(KC_E), _______,        LGUI(KC_EQL)  ,
+    _______,  _______,  _______,        _______, _______, _______, LALT(KC_LEFT), _______,    _______, _______,    LALT(KC_RIGHT), LGUI(KC_MINS) ,
+    _______,  _______,  _______,        _______, _______, _______, _______,       _______,    _______, _______,    _______,        _______
 ),
 ),
 
 
-[_MFNC]= LAYOUT_planck_grid(
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT),
-    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+[_MFNC]= LAYOUT_ortho_4x12(
+    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______       ,
+    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,
+    _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______       ,
     _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
     _______,  _______,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
 ),
 ),
 
 
-[_MFNC2] = LAYOUT_planck_grid(
-    _______,  _______,    M(2),       _______,    _______,    _______, M(6),    _______, _______, _______, _______, _______,
-    _______,  _______,    M(4),       M(8),       _______,    _______, _______, M(10),   _______, _______, _______, _______,
-    _______,  LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M(99)  ,
-    _______,  _______,    _______,    _______,    _______,    _______, _______, _______, _______, _______, _______, _______
+[_MFNC2] = LAYOUT_ortho_4x12(
+    _______,  _______,    M_WORD_SEL_MAC, _______,    _______,    _______, M_LINE_DEL_MAC, _______,    _______, _______, _______, _______,
+    _______,  _______,    M_LINE_SEL_MAC, M_DUP_MAC,  _______,    _______, _______,        M_JOIN_MAC, _______, _______, _______, _______,
+    _______,  LGUI(KC_Z), LGUI(KC_X),     LGUI(KC_C), LGUI(KC_V), _______, _______,        _______,    _______, _______, _______, M_MODE_MAC,
+    _______,  _______,    _______,        _______,    _______,    _______, _______,        _______,    _______, _______, _______, _______
 )
 )
 
 
 };
 };
-
-void persistant_default_layer_set(uint16_t default_layer) {
-  eeconfig_update_default_layer(default_layer);
-  default_layer_set(default_layer);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
-  if (!process_record_dynamic_macro(keycode, record)) {
-      return false;
-  }
-
-   switch (keycode) {
-    case QWERTY:
-      if (record->event.pressed) {
-        persistant_default_layer_set(1UL<<_QWERTY);
-      }
-      return false;
-    case LOWER:
-      if (record->event.pressed) {
-        layer_on(_LOWER);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_LOWER);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case RAISE:
-      if (record->event.pressed) {
-        layer_on(_RAISE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_RAISE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case MLWR:
-      if (record->event.pressed) {
-        layer_on(_LOWER);
-        layer_on(_MLWR);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_LOWER);
-        layer_off(_MLWR);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case MRSE:
-      if (record->event.pressed) {
-        layer_on(_RAISE);
-        layer_on(_MRSE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      } else {
-        layer_off(_RAISE);
-        layer_off(_MRSE);
-        update_tri_layer(_LOWER, _RAISE, _ADJUST);
-      }
-      return false;
-    case MFNC:
-      if (record->event.pressed) {
-        layer_on(_FUNC);
-        layer_on(_MFNC);
-      } else {
-        layer_off(_FUNC);
-        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;
-}
-
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
-  // These would trigger when you hit a key mapped as M(0)
-  if (record->event.pressed) {
-    switch(keycode) {
-      case 0: // Some custom string here
-        SEND_STRING("");
-        return false;
-
-      case 1: // Word Select
-        SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LCTRL));
-        return false;
-
-      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;
-};

+ 117 - 0
layouts/community/ortho_4x12/ajp10304/readme.md

@@ -0,0 +1,117 @@
+# AJP10304 Ortho 4x12 Layout
+# For Planck, Shark, JJ40 and Atreus50
+
+**Note:** In the tables below where there are two characters on a key,
+the second is the output when shift is applied.
+
+**Note:** The below tables assume a UK layout.
+
+#### Flashing
+Refer to the README.md of the keyboard you want to flash.
+
+##### Main Qwerty Layer
+
+* Tab: when held, operates as shift.
+* Enter: when held, operates as shift.
+* MENU: perform right-click
+
+|      |      |      |      |      |      |      |      |      |      |      |      |
+| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
+| Esc  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | Bksp |
+| Tab  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |  ;:  | Enter|
+| Shft |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
+| Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
+
+##### Function Layer
+Activated when `fn` held in the above `qwerty` layer.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|  F1   |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |
+|  1!   |  2"  |  3£  |  4$  |  5%  |  6^  |  7&  |  8*  |  9(  |  0)  |  ~   |INSERT|
+| Shift |  \|  |  `¬  |  #~  |   *  |  -_  |  =+  |  \|  |  [{  |  ]}  |  '@  |Shift |
+| Fn    | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Mouse | MENU | Alt  | Ctrl | Fn2  |
+
+##### Lower Layer
+Activated when `Lower` is held in the above `qwerty` layer.
+
+* Numbers are along the top row, their shifted counterparts are on row 2.
+* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
+* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|  1!   |  2"  |  3£  |  4$  |  5%  |  6^  |  7&  |  8*  |  9(  |  0)  | DEL  | Bksp |
+|  !    |   "  |   £  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  |WrdDel|WrdBks|
+| Shift |  \|  |  `¬  |  #~  |  '@  |  -_  |  =+  |  #~  |  [{  |  ]}  |  '@  |Shift |
+|       |      |      |      |Lower | Del  |Space |      | Next | Vol- | Vol+ | Play |
+
+##### Raise Layer
+Activated when `Raise` is held in the above `qwerty` layer.
+
+* Preferred layer for typing brackets.
+* Allows for cursor navigation to be used solely with the right hand.
+* WRDSEL: Select the word where the cursor is.
+* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
+
+|       |      |      |      |      |      |       |      |      |      |       |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
+|   `   |      |WRDSEL|  [   |   ]  |      |       | PGUP | HOME |PGDOWN|       |PRNTSC|
+|   `   |      |      |  (   |   )  |      |       | HOME |  UP  | END  |       |ZOOM +|
+|       |      |      |  {   |   }  |      |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
+| Mouse |      |      |      |      |  Alt | Enter |Raise |      |      |       |      |
+
+##### Lower + Raise
+Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
+
+* Audio controls in the same position as cursor keys from the `Raise` layer.
+* ????: Runs a macro for outputting a text string.  Do not use this store passwords.
+* Reset: Enter bootloader for flashing firmware to the keyboard.
+* CAPS: Toggle caps lock.
+* Macro functions: Allows recording of macros.  To start recording the macro, press either REC1 or REC2. 
+To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
+* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
+MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| ????  | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |  Del |
+| CAPS  |      |      |      |      | PLAY1|PLAY2 | Mute | Vol+ | Play |      |      |
+| MAC   |      |      |      |      | STOP1|STOP2 | Prev | Vol- | Next |      |      |
+|       |      |      |      |      |      |      |      | DYN  |      |      |      |
+
+##### Function 2 Layer
+Activated when `fn` held in the above `qwerty` layer.
+* WRDSEL: Select the word where the cursor is.
+* LNDEL: Delete the line where the cursor is.
+* LNSEL: Select the line where the cursor is.
+* DUP: Duplicate the selected text.
+* LNJOIN: Join the line where the cursor is with the following line.
+* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|       |      |WRDSEL|      |      |      | LNDEL|      |      |      |      |      |
+|       |      | LNSEL| DUP  |      |      |      |      |LNJOIN|      |      |      |
+|       | UNDO | CUT  | COPY | PASTE|      |      |      |      |      |      | MODE |
+|       |      |      |      |      |      |      |      |      |      |      |      |
+
+##### Mouse Layer
+Activated when `fn` and `raise` held together.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| ESC   |      |      |      |      |      |      |      | BTN3 |      |      |      |
+| ACC0  | ACC1 | ACC2 |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
+| ACC0  | ACC1 | ACC2 |      |      |      |      | LEFT | DOWN | RIGHT|      |      |
+|       |      |      |      |      |      |      |      |      |      |      |      |
+
+##### Number Pad Layout
+Activated when holding `Esc` key.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|       |      |      |      |      |      |NMLOCK|   7  |   8  |   9  |   /  |      |
+|       |      |      |      |      |      |      |   4  |   5  |   6  |   *  |      |
+|       |      |      |      |      |      |      |   1  |   2  |   3  |   +  |      |
+|       |      |      |      |      |      |      |   0  |   .  |   ,  |   -  |      |

+ 1 - 1
keyboards/jj40/keymaps/ajp10304/rules.mk → layouts/community/ortho_4x12/ajp10304/rules.mk

@@ -1,3 +1,3 @@
 AUDIO_ENABLE = no
 AUDIO_ENABLE = no
 MOUSEKEY_ENABLE = yes
 MOUSEKEY_ENABLE = yes
-
+DYNAMIC_MACRO_ENABLE = yes

+ 154 - 0
users/ajp10304/ajp10304.c

@@ -0,0 +1,154 @@
+#include "ajp10304.h"
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+  switch (keycode) {
+    case QWERTY:
+      if (record->event.pressed) {
+        set_single_persistent_default_layer(_QWERTY);
+      }
+      return false;
+    case LOWER:
+      if (record->event.pressed) {
+        layer_on(_LOWER);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      } else {
+        layer_off(_LOWER);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      }
+      return false;
+    case RAISE:
+      if (record->event.pressed) {
+        layer_on(_RAISE);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      } else {
+        layer_off(_RAISE);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      }
+      return false;
+    case MLWR:
+      if (record->event.pressed) {
+        layer_on(_LOWER);
+        layer_on(_MLWR);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      } else {
+        layer_off(_LOWER);
+        layer_off(_MLWR);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      }
+      return false;
+    case MRSE:
+      if (record->event.pressed) {
+        layer_on(_RAISE);
+        layer_on(_MRSE);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      } else {
+        layer_off(_RAISE);
+        layer_off(_MRSE);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      }
+      return false;
+    case MFNC:
+      if (record->event.pressed) {
+        layer_on(_FUNC);
+        layer_on(_MFNC);
+      } else {
+        layer_off(_FUNC);
+        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;
+    case M_CUSTOM:
+        if (record->event.pressed) {
+            SEND_STRING("Custom text here");
+        }
+        break;
+    case M_WORD_SEL:
+        if (record->event.pressed) {
+            register_mods(MOD_LCTL);
+            tap_code(KC_RGHT);
+            tap_code16(S(KC_LEFT));
+            unregister_mods(MOD_LCTL);
+        }
+        break;
+    case M_WORD_SEL_MAC:
+        if (record->event.pressed) {
+            register_mods(MOD_LALT);
+            tap_code(KC_RGHT);
+            tap_code16(S(KC_LEFT));
+            unregister_mods(MOD_LALT);
+        }
+        break;
+    case M_LINE_SEL:
+        if (record->event.pressed) {
+            tap_code(KC_HOME);
+            tap_code16(S(KC_END));
+        }
+        break;
+    case M_LINE_SEL_MAC:
+        if (record->event.pressed) {
+            tap_code16(C(KC_A));
+            tap_code16(C(S(KC_E)));
+        }
+        break;
+    case M_LINE_DEL:
+        if (record->event.pressed) {
+            tap_code(KC_HOME);
+            tap_code16(S(KC_END));
+            tap_code(KC_BSPC);
+        }
+        break;
+    case M_LINE_DEL_MAC:
+        if (record->event.pressed) {
+            tap_code16(C(KC_A));
+            tap_code16(C(S(KC_E)));
+            tap_code(KC_BSPC);
+        }
+        break;
+    case M_DUP:
+        if (record->event.pressed) {
+            tap_code16(C(KC_C));
+            tap_code(KC_RGHT);
+            tap_code16(C(KC_V));
+         }
+         break;
+    case M_DUP_MAC:
+        if (record->event.pressed) {
+            tap_code16(G(KC_C));
+            tap_code(KC_RGHT);
+            tap_code16(G(KC_V));
+        }
+        break;
+    case M_JOIN:
+        if (record->event.pressed) {
+            tap_code(KC_END);
+            tap_code(KC_DEL);
+        }
+        break;
+    case M_JOIN_MAC:
+        if (record->event.pressed) {
+            tap_code16(C(KC_E));
+            tap_code(KC_DEL);
+        }
+        break;
+    case M_MODE:
+        if (record->event.pressed) {
+            SEND_STRING("PC");
+        }
+        break;
+    case M_MODE_MAC:
+        if (record->event.pressed) {
+            SEND_STRING("OSX");
+        }
+        break;
+  }
+  return true;
+}

+ 45 - 0
users/ajp10304/ajp10304.h

@@ -0,0 +1,45 @@
+#include QMK_KEYBOARD_H
+
+enum ajp10304_layers {
+  _QWERTY,
+  _MAC,
+  _LOWER,
+  _MLWR,
+  _RAISE,
+  _MRSE,
+  _FUNC,
+  _MFNC,
+  _FUNC2,
+  _MFNC2,
+  _ADJUST,
+  _MOUSE,
+  _NUMPAD
+};
+
+enum ajp10304_keycodes {
+  QWERTY = SAFE_RANGE,
+  MAC,
+  FUNC,
+  MFNC,
+  FUNC2,
+  MFNC2,
+  LOWER,
+  MLWR,
+  RAISE,
+  MRSE,
+  MOUSE,
+  NUMPAD,
+  M_CUSTOM,
+  M_WORD_SEL,
+  M_WORD_SEL_MAC,
+  M_LINE_SEL,
+  M_LINE_SEL_MAC,
+  M_LINE_DEL,
+  M_LINE_DEL_MAC,
+  M_DUP,
+  M_DUP_MAC,
+  M_JOIN,
+  M_JOIN_MAC,
+  M_MODE,
+  M_MODE_MAC
+};

+ 132 - 0
users/ajp10304/readme.md

@@ -0,0 +1,132 @@
+Copyright 2020 Alan Pocklington <ajp10304@gmail.com> @ajp10304
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# AJP10304 Custom 40% Layout
+# For the Planck, Shark, JJ40 and Atreus50
+
+**Note:** In the tables below where there are two characters on a key,
+the second is the output when shift is applied.
+
+**Note:** The below tables assume a UK layout.
+
+#### Flashing
+Refer to the README.md of the keyboard you want to flash.
+
+##### Main Qwerty Layer
+
+* Tab: when held, operates as shift.
+* Enter: when held, operates as shift.
+* MENU: perform right-click
+
+|      |      |      |      |      |      |      |      |      |      |      |      |
+| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
+| Esc  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | Bksp |
+| Tab  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |  ;:  | Enter|
+| Shft |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
+| Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
+
+##### Function Layer
+Activated when `fn` held in the above `qwerty` layer.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|  F1   |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |
+|  1!   |  2"  |  3£  |  4$  |  5%  |  6^  |  7&  |  8*  |  9(  |  0)  |  ~   |INSERT|
+| Shift |  \|  |  `¬  |  #~  |   *  |  -_  |  =+  |  \|  |  [{  |  ]}  |  '@  |Shift |
+| Fn    | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Mouse | MENU | Alt  | Ctrl | Fn2  |
+
+##### Lower Layer
+Activated when `Lower` is held in the above `qwerty` layer.
+
+* Numbers are along the top row, their shifted counterparts are on row 2.
+* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
+* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|  1!   |  2"  |  3£  |  4$  |  5%  |  6^  |  7&  |  8*  |  9(  |  0)  | DEL  | Bksp |
+|  !    |   "  |   £  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  |WrdDel|WrdBks|
+| Shift |  \|  |  `¬  |  #~  |  '@  |  -_  |  =+  |  #~  |  [{  |  ]}  |  '@  |Shift |
+|       |      |      |      |Lower | Del  |Space |      | Next | Vol- | Vol+ | Play |
+
+##### Raise Layer
+Activated when `Raise` is held in the above `qwerty` layer.
+
+* Preferred layer for typing brackets.
+* Allows for cursor navigation to be used solely with the right hand.
+* WRDSEL: Select the word where the cursor is.
+* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
+
+|       |      |      |      |      |      |       |      |      |      |       |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
+|   `   |      |WRDSEL|  [   |   ]  |      |       | PGUP | HOME |PGDOWN|       |PRNTSC|
+|   `   |      |      |  (   |   )  |      |       | HOME |  UP  | END  |       |ZOOM +|
+|       |      |      |  {   |   }  |      |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
+| Mouse |      |      |      |      |  Alt | Enter |Raise |      |      |       |      |
+
+##### Lower + Raise
+Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
+
+* Audio controls in the same position as cursor keys from the `Raise` layer.
+* ????: Runs a macro for outputting a text string.  Do not use this store passwords.
+* Reset: Enter bootloader for flashing firmware to the keyboard.
+* CAPS: Toggle caps lock.
+* Macro functions: Allows recording of macros.  To start recording the macro, press either REC1 or REC2. 
+To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
+* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
+MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| ????  | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |  Del |
+| CAPS  |      |      |      |      | PLAY1|PLAY2 | Mute | Vol+ | Play |      |      |
+| MAC   |      |      |      |      | STOP1|STOP2 | Prev | Vol- | Next |      |      |
+|       |      |      |      |      |      |      |      | DYN  |      |      |      |
+
+##### Function 2 Layer
+Activated when `fn` held in the above `qwerty` layer.
+* WRDSEL: Select the word where the cursor is.
+* LNDEL: Delete the line where the cursor is.
+* LNSEL: Select the line where the cursor is.
+* DUP: Duplicate the selected text.
+* LNJOIN: Join the line where the cursor is with the following line.
+* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|       |      |WRDSEL|      |      |      | LNDEL|      |      |      |      |      |
+|       |      | LNSEL| DUP  |      |      |      |      |LNJOIN|      |      |      |
+|       | UNDO | CUT  | COPY | PASTE|      |      |      |      |      |      | MODE |
+|       |      |      |      |      |      |      |      |      |      |      |      |
+
+##### Mouse Layer
+Activated when `fn` and `raise` held together.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| ESC   |      |      |      |      |      |      |      | BTN3 |      |      |      |
+| ACC0  | ACC1 | ACC2 |      |      |      |      | BTN1 |  UP  | BTN2 |      |      |
+| ACC0  | ACC1 | ACC2 |      |      |      |      | LEFT | DOWN | RIGHT|      |      |
+|       |      |      |      |      |      |      |      |      |      |      |      |
+
+##### Number Pad Layout
+Activated when holding `Esc` key.
+
+|       |      |      |      |      |      |      |      |      |      |      |      |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+|       |      |      |      |      |      |NMLOCK|   7  |   8  |   9  |   /  |      |
+|       |      |      |      |      |      |      |   4  |   5  |   6  |   *  |      |
+|       |      |      |      |      |      |      |   1  |   2  |   3  |   +  |      |
+|       |      |      |      |      |      |      |   0  |   .  |   ,  |   -  |      |

+ 1 - 0
users/ajp10304/rules.mk

@@ -0,0 +1 @@
+SRC += ajp10304.c