From dce611bc9fd6c6d47e6c5d935ca263ff50a5afc2 Mon Sep 17 00:00:00 2001
From: Alan Pocklington <a.Pocklington@Gmail.com>
Date: Tue, 11 Jan 2022 00:57:41 +0000
Subject: [PATCH] [Keymap] AJP10304 layout, add Colemak-DHm layer (#15582)

---
 .../acheron/shark/keymaps/ajp10304/readme.md  | 21 +++++++---
 .../atreus50/keymaps/ajp10304/keymap.c        | 40 ++++++++++++++-----
 .../atreus50/keymaps/ajp10304/readme.md       | 22 +++++++---
 .../jj40/keymaps/ajp10304/readme.md           | 21 +++++++---
 keyboards/planck/keymaps/ajp10304/readme.md   | 21 +++++++---
 keyboards/quark/keymaps/ajp10304/keymap.c     | 40 ++++++++++++++-----
 keyboards/quark/keymaps/ajp10304/readme.md    | 21 +++++++---
 .../community/ortho_4x12/ajp10304/keymap.c    | 40 ++++++++++++++-----
 .../community/ortho_4x12/ajp10304/readme.md   | 21 +++++++---
 users/ajp10304/ajp10304.c                     | 10 ++++-
 users/ajp10304/ajp10304.h                     |  2 +
 users/ajp10304/readme.md                      | 21 +++++++---
 12 files changed, 203 insertions(+), 77 deletions(-)

diff --git a/keyboards/acheron/shark/keymaps/ajp10304/readme.md b/keyboards/acheron/shark/keymaps/ajp10304/readme.md
index cb8bcdae90..e091e5d318 100644
--- a/keyboards/acheron/shark/keymaps/ajp10304/readme.md
+++ b/keyboards/acheron/shark/keymaps/ajp10304/readme.md
@@ -22,6 +22,15 @@ Refer to the README.md of the keyboard you want to flash.
 | Shft |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
 | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
 
+##### Main Colemak-DHm Layer
+
+|      |      |      |     |       |      |       |       |       |      |      |      |
+| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
+| Esc  |   Q  |   W  |  F  |   P   |  B   |   J   |   L   |   U   |  Y   |  ;:  | Bksp |
+| Tab  |   A  |   R  |  S  |   T   |  G   |   M   |   N   |   E   |  I   |  O   | Enter|
+| Shft |   Z  |   X  |  C  |   D   |  V   |   K   |   H   |  ,<   |  .>  |  /?  | Shft |
+| Fn   | Ctrl | Alt  | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2  |
+
 ##### Function Layer
 Activated when `fn` held in the above `qwerty` layer.
 
@@ -73,12 +82,12 @@ To finish the recording, press STOP. To replay the macro, press either PLAY1 or
 * 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  |      |      |      |
+|       |      |      |      |      |      |      |      |      |      |      |         |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
+| ????  | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |   Del   |
+| CAPS  |      |      |      |      | PLAY1|PLAY2 | Mute | Vol+ | Play |      | Qwerty  |
+| MAC   |      |      |      |      | STOP1|STOP2 | Prev | Vol- | Next |      | Colemak |
+|       |      |      |      |      |      |      |      | DYN  |      |      |         |
 
 ##### Function 2 Layer
 Activated when `fn` held in the above `qwerty` layer.
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c b/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c
index 0122455167..49a53cfe21 100644
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c
+++ b/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c
@@ -38,6 +38,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   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)
 ),
 
+/* Colemak-DHm
+ * ,-----------------------------------------|             |-----------------------------------------.
+ * | Esc  |   Q  |   W  |   F  |   P  |   B  |             |   J  |   L  |   U  |   Y  |  ;:  | Bksp |
+ * |------+------+------+------+------+------|             |------+------+------+------+------+------|
+ * | Tab  |   A  |   R  |   S  |   T  |   G  |             |   M  |   N  |   E  |   I  |  O  | Enter|
+ * |------+------+------+------+------+------|             |------+------+------+------+------+------|
+ * | Shft |   Z  |   X  |   C  |   D  |   V  |             |   K  |   H  |  ,<  |  .>  |  /?  | Shft |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp | Ctrl | Alt  |Space |Raise | Shift| MENU | Ctrl | Fn2  |
+ * `-------------------------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT(
+  LT(_NUMPAD, KC_ESC),   KC_Q,       KC_W,        KC_F,      KC_P,    KC_B,                      KC_J,    KC_L,    KC_U,      KC_Y,      KC_SCLN,    KC_BSPC              ,
+  MT(MOD_LSFT, KC_TAB),  KC_A,       KC_R,        KC_S,      KC_T,    KC_G,                      KC_M,    KC_N,    KC_E,      KC_I,      KC_O,       MT(MOD_RSFT, KC_ENT) ,
+  KC_LSHIFT,             KC_Z,       KC_X,        KC_C,      KC_D,    KC_V,                      KC_K,    KC_H,    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)
+),
+
 /* Function
  * ,------------------------------------------             |-----------------------------------------.
  * |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |             |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |
@@ -93,20 +111,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 ),
 
 /* Adjust (Lower + Raise)
- * ,------------------------------------------             |-----------------------------------------.
- * | ???? | Reset|Qwerty|      |      | REC1 |             | REC2 |      |      |      |      |  Del |
- * |------+------+------+------+------+-------             |------+------+------+------+------+------|
- * | CAPS |      |      |      |      | PLAY1|             | PLAY2| Mute | Vol+ | Play |      |      |
- * |------+------+------+------+------+------|             |------+------+------+------+------+------|
- * | PC/MC|      |      |      |      | STOP |             | STOP | Prev | Vol- | Next |      |      |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * |      |      |      |      |      |      |      |      |      |      |      |      |      |      |
- * `-------------------------------------------------------------------------------------------------'
+ * ,------------------------------------------             |------------------------------------------.
+ * | ???? | Reset|Qwerty|      |      | REC1 |             | REC2 |      |      |      |      |  Del  |
+ * |------+------+------+------+------+-------             |------+------+------+------+------+-------|
+ * | CAPS |      |      |      |      | PLAY1|             | PLAY2| Mute | Vol+ | Play |      |Qwerty |
+ * |------+------+------+------+------+------|             |------+------+------+------+------+-------|
+ * | PC/MC|      |      |      |      | STOP |             | STOP | Prev | Vol- | Next |      |Colemak|
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+-------|
+ * |      |      |      |      |      |      |      |      |      |      |      |      |      |       |
+ * `--------------------------------------------------------------------------------------------------'
  */
 [_ADJUST] = LAYOUT(
   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,  _______,  _______ ,
-  TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP,                      DYN_REC_STOP,    KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK,  _______,  _______ ,
+  KC_CAPS,  _______, _______, _______, _______, DYN_MACRO_PLAY1,                   DYN_MACRO_PLAY2, KC_AUDIO_MUTE,       KC_AUDIO_VOL_UP,   KC_MEDIA_PLAY_PAUSE,  _______,  QWERTY  ,
+  TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP,                      DYN_REC_STOP,    KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK,  _______,  COLEMAK ,
   _______,  _______, _______, _______, _______, _______,         _______, _______, _______,         _______,             _______,           _______,              _______,  _______
 ),
 
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md b/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md
index 640bcc46f6..6ba052065d 100644
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md
+++ b/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md
@@ -22,6 +22,16 @@ Refer to the README.md of the keyboard you want to flash.
 | Shft |   Z  |   X  |   C  |   V  |   B  |      |      |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
 | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp | Ctrl | Alt  |Space |Raise | Shift| MENU | Ctrl | Fn2  |
 
+##### Main Colemak-DHm Layer
+
+|      |      |      |     |       |      |      |      |       |       |       |      |      |      |
+| ---- |:----:| :---:|:---:|:-----:|:----:| :---:| :---:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
+| Esc  |   Q  |   W  |  F  |   P   |  B   |      |      |   J   |   L   |   U   |  Y   |  ;:  | Bksp |
+| Tab  |   A  |   R  |  S  |   T   |  G   |      |      |   M   |   N   |   E   |  I   |  O   | Enter|
+| Shft |   Z  |   X  |  C  |   D   |  V   |      |      |   K   |   H   |  ,<   |  .>  |  /?  | Shft |
+| Fn   | Ctrl | Alt  | GUI | Lower | Bksp | Ctrl | Alt  | Space | Raise | Shift | MENU | Ctrl | Fn2  |
+
+
 ##### Function Layer
 Activated when `fn` held in the above `qwerty` layer.
 
@@ -73,12 +83,12 @@ To finish the recording, press STOP. To replay the macro, press either PLAY1 or
 * 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 |      |      |
-|       |      |      |      |      |      | Ctrl | Alt  |      |      | DYN  |      |      |      |
+|       |      |      |      |      |      |      |      |      |      |      |      |      |         |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
+| ????  | Reset|Qwerty|      |      | REC1 |      |      | REC2 |      |      |      |      |   Del   |
+| CAPS  |      |      |      |      | PLAY1|      |      |PLAY2 | Mute | Vol+ | Play |      | Qwerty  |
+| MAC   |      |      |      |      | STOP1|      |      |STOP2 | Prev | Vol- | Next |      | Colemak |
+|       |      |      |      |      |      | Ctrl | Alt  |      |      | DYN  |      |      |         |
 
 ##### Function 2 Layer
 Activated when `fn` held in the above `qwerty` layer.
diff --git a/keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md b/keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md
index 8a7562d742..9362c10650 100644
--- a/keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md
+++ b/keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md
@@ -22,6 +22,15 @@ Refer to the README.md of the keyboard you want to flash.
 | Shft |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
 | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
 
+##### Main Colemak-DHm Layer
+
+|      |      |      |     |       |      |       |       |       |      |      |      |
+| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
+| Esc  |   Q  |   W  |  F  |   P   |  B   |   J   |   L   |   U   |  Y   |  ;:  | Bksp |
+| Tab  |   A  |   R  |  S  |   T   |  G   |   M   |   N   |   E   |  I   |  O   | Enter|
+| Shft |   Z  |   X  |  C  |   D   |  V   |   K   |   H   |  ,<   |  .>  |  /?  | Shft |
+| Fn   | Ctrl | Alt  | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2  |
+
 ##### Function Layer
 Activated when `fn` held in the above `qwerty` layer.
 
@@ -73,12 +82,12 @@ To finish the recording, press STOP. To replay the macro, press either PLAY1 or
 * 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  |      |      |      |
+|       |      |      |      |      |      |      |      |      |      |      |         |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
+| ????  | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |   Del   |
+| CAPS  |      |      |      |      | PLAY1|PLAY2 | Mute | Vol+ | Play |      | Qwerty  |
+| MAC   |      |      |      |      | STOP1|STOP2 | Prev | Vol- | Next |      | Colemak |
+|       |      |      |      |      |      |      |      | DYN  |      |      |         |
 
 ##### Function 2 Layer
 Activated when `fn` held in the above `qwerty` layer.
diff --git a/keyboards/planck/keymaps/ajp10304/readme.md b/keyboards/planck/keymaps/ajp10304/readme.md
index c68ba49283..4b7a54bb54 100644
--- a/keyboards/planck/keymaps/ajp10304/readme.md
+++ b/keyboards/planck/keymaps/ajp10304/readme.md
@@ -22,6 +22,15 @@ Refer to the README.md of the keyboard you want to flash.
 | Shft |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
 | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
 
+##### Main Colemak-DHm Layer
+
+|      |      |      |     |       |      |       |       |       |      |      |      |
+| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
+| Esc  |   Q  |   W  |  F  |   P   |  B   |   J   |   L   |   U   |  Y   |  ;:  | Bksp |
+| Tab  |   A  |   R  |  S  |   T   |  G   |   M   |   N   |   E   |  I   |  O   | Enter|
+| Shft |   Z  |   X  |  C  |   D   |  V   |   K   |   H   |  ,<   |  .>  |  /?  | Shft |
+| Fn   | Ctrl | Alt  | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2  |
+
 ##### Function Layer
 Activated when `fn` held in the above `qwerty` layer.
 
@@ -73,12 +82,12 @@ To finish the recording, press STOP. To replay the macro, press either PLAY1 or
 * 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  |      |      |      |
+|       |      |      |      |      |      |      |      |      |      |      |         |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
+| ????  | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |   Del   |
+| CAPS  |      |      |      |      | PLAY1|PLAY2 | Mute | Vol+ | Play |      | Qwerty  |
+| MAC   |      |      |      |      | STOP1|STOP2 | Prev | Vol- | Next |      | Colemak |
+|       |      |      |      |      |      |      |      | DYN  |      |      |         |
 
 ##### Function 2 Layer
 Activated when `fn` held in the above `qwerty` layer.
diff --git a/keyboards/quark/keymaps/ajp10304/keymap.c b/keyboards/quark/keymaps/ajp10304/keymap.c
index c55e99af79..273fbc536f 100644
--- a/keyboards/quark/keymaps/ajp10304/keymap.c
+++ b/keyboards/quark/keymaps/ajp10304/keymap.c
@@ -37,6 +37,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   MO(_FUNC),             KC_LCTL,    KC_LALT,     KC_LGUI,   LOWER,   KC_BSPC, KC_SPC,  RAISE,   KC_LSHIFT, KC_BTN2,   KC_RCTL,    MO(_FUNC2)
 ),
 
+/* Colemak-DHm
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc  |   Q  |   W  |   F  |   P  |   B  |   J  |   L  |   U  |   Y  |  ;:  | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Tab  |   A  |   R  |   S  |   T  |   G  |   M  |   N  |   E  |   I  |   O  | Enter|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shft |   Z  |   X  |   C  |   D  |   V  |   K  |   H  |  ,<  |  .>  |  /?  | Shft |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = LAYOUT_ortho_4x12(
+  LT(_NUMPAD, KC_ESC),   KC_Q,       KC_W,        KC_F,      KC_P,    KC_B,    KC_J,    KC_L,    KC_U,      KC_Y,      KC_SCLN,   KC_BSPC                 ,
+  MT(MOD_LSFT, KC_TAB),  KC_A,       KC_R,        KC_S,      KC_T,    KC_G,    KC_M,    KC_N,    KC_E,      KC_I,      KC_O,      MT(MOD_RSFT, KC_ENT)    ,
+  KC_LSHIFT,             KC_Z,       KC_X,        KC_C,      KC_D,    KC_V,    KC_K,    KC_H,    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 |
@@ -92,20 +110,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 ),
 
 /* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | ???? | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |  Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | CAPS |      |      |      |      | PLAY1| PLAY2| Mute | Vol+ | Play |      |      |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | PC/MC|      |      |      |      | STOP | STOP | Prev | Vol- | Next |      |      |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |      |      |      |      |      |             |      |      |      |      |      |
- * `-----------------------------------------------------------------------------------'
+ * ,------------------------------------------------------------------------------------.
+ * | ???? | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |  Del  |
+ * |------+------+------+------+------+-------------+------+------+------+------+-------|
+ * | CAPS |      |      |      |      | PLAY1| PLAY2| Mute | Vol+ | Play |      |Qwerty |
+ * |------+------+------+------+------+------|------+------+------+------+------+-------|
+ * | PC/MC|      |      |      |      | STOP | STOP | Prev | Vol- | Next |      |Colemak|
+ * |------+------+------+------+------+------+------+------+------+------+------+-------|
+ * |      |      |      |      |      |             |      |      |      |      |       |
+ * `------------------------------------------------------------------------------------'
  */
 [_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,  _______,  _______ ,
+  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,  _______,  QWERTY  ,
+  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,  _______,  COLEMAK ,
   _______,  _______, _______, _______, _______, _______,         _______,         _______,             _______,           _______,              _______,  _______
 ),
 
diff --git a/keyboards/quark/keymaps/ajp10304/readme.md b/keyboards/quark/keymaps/ajp10304/readme.md
index 83af702e2a..5c9169fa47 100644
--- a/keyboards/quark/keymaps/ajp10304/readme.md
+++ b/keyboards/quark/keymaps/ajp10304/readme.md
@@ -22,6 +22,15 @@ Refer to the README.md of the keyboard you want to flash.
 | Shft |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
 | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
 
+##### Main Colemak-DHm Layer
+
+|      |      |      |     |       |      |       |       |       |      |      |      |
+| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
+| Esc  |   Q  |   W  |  F  |   P   |  B   |   J   |   L   |   U   |  Y   |  ;:  | Bksp |
+| Tab  |   A  |   R  |  S  |   T   |  G   |   M   |   N   |   E   |  I   |  O   | Enter|
+| Shft |   Z  |   X  |  C  |   D   |  V   |   K   |   H   |  ,<   |  .>  |  /?  | Shft |
+| Fn   | Ctrl | Alt  | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2  |
+
 ##### Function Layer
 Activated when `fn` held in the above `qwerty` layer.
 
@@ -73,12 +82,12 @@ To finish the recording, press STOP. To replay the macro, press either PLAY1 or
 * 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  |      |      |      |
+|       |      |      |      |      |      |      |      |      |      |      |         |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
+| ????  | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |   Del   |
+| CAPS  |      |      |      |      | PLAY1|PLAY2 | Mute | Vol+ | Play |      | Qwerty  |
+| MAC   |      |      |      |      | STOP1|STOP2 | Prev | Vol- | Next |      | Colemak |
+|       |      |      |      |      |      |      |      | DYN  |      |      |         |
 
 ##### Function 2 Layer
 Activated when `fn` held in the above `qwerty` layer.
diff --git a/layouts/community/ortho_4x12/ajp10304/keymap.c b/layouts/community/ortho_4x12/ajp10304/keymap.c
index 4d9ddb1245..7f817e21c1 100644
--- a/layouts/community/ortho_4x12/ajp10304/keymap.c
+++ b/layouts/community/ortho_4x12/ajp10304/keymap.c
@@ -37,6 +37,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   MO(_FUNC),             KC_LCTL,    KC_LALT,     KC_LGUI,   LOWER,   KC_BSPC, KC_SPC,  RAISE,   KC_LSHIFT, KC_BTN2,   KC_RCTL,    MO(_FUNC2)
 ),
 
+/* Colemak-DHm
+ * ,-----------------------------------------------------------------------------------.
+ * | Esc  |   Q  |   W  |   F  |   P  |   B  |   J  |   L  |   U  |   Y  |  ;:  | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Tab  |   A  |   R  |   S  |   T  |   G  |   M  |   N  |   E  |   I  |   O  | Enter|
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shft |   Z  |   X  |   C  |   D  |   V  |   K  |   H  |  ,<  |  .>  |  /?  | Shft |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = LAYOUT_ortho_4x12(
+  LT(_NUMPAD, KC_ESC),   KC_Q,       KC_W,        KC_F,      KC_P,    KC_B,    KC_J,    KC_L,    KC_U,      KC_Y,      KC_SCLN,   KC_BSPC                 ,
+  MT(MOD_LSFT, KC_TAB),  KC_A,       KC_R,        KC_S,      KC_T,    KC_G,    KC_M,    KC_N,    KC_E,      KC_I,      KC_O,      MT(MOD_RSFT, KC_ENT)    ,
+  KC_LSHIFT,             KC_Z,       KC_X,        KC_C,      KC_D,    KC_V,    KC_K,    KC_H,    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 |
@@ -92,20 +110,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 ),
 
 /* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | ???? | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |  Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | CAPS |      |      |      |      | PLAY1| PLAY2| Mute | Vol+ | Play |      |      |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | PC/MC|      |      |      |      | STOP | STOP | Prev | Vol- | Next |      |      |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |      |      |      |      |      |             |      |      |      |      |      |
- * `-----------------------------------------------------------------------------------'
+ * ,------------------------------------------------------------------------------------.
+ * | ???? | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |  Del  |
+ * |------+------+------+------+------+-------------+------+------+------+------+-------|
+ * | CAPS |      |      |      |      | PLAY1| PLAY2| Mute | Vol+ | Play |      |Qwerty |
+ * |------+------+------+------+------+------|------+------+------+------+------+-------|
+ * | PC/MC|      |      |      |      | STOP | STOP | Prev | Vol- | Next |      |Colemak|
+ * |------+------+------+------+------+------+------+------+------+------+------+-------|
+ * |      |      |      |      |      |             |      |      |      |      |       |
+ * `------------------------------------------------------------------------------------'
  */
 [_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,  _______,  _______ ,
+  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,  _______,  QWERTY  ,
+  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,  _______,  COLEMAK ,
   _______,  _______, _______, _______, _______, _______,         _______,         _______,             _______,           _______,              _______,  _______
 ),
 
diff --git a/layouts/community/ortho_4x12/ajp10304/readme.md b/layouts/community/ortho_4x12/ajp10304/readme.md
index 6db0b851d9..402e9426dd 100644
--- a/layouts/community/ortho_4x12/ajp10304/readme.md
+++ b/layouts/community/ortho_4x12/ajp10304/readme.md
@@ -22,6 +22,15 @@ Refer to the README.md of the keyboard you want to flash.
 | Shft |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
 | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
 
+##### Main Colemak-DHm Layer
+
+|      |      |      |     |       |      |       |       |       |      |      |      |
+| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
+| Esc  |   Q  |   W  |  F  |   P   |  B   |   J   |   L   |   U   |  Y   |  ;:  | Bksp |
+| Tab  |   A  |   R  |  S  |   T   |  G   |   M   |   N   |   E   |  I   |  O   | Enter|
+| Shft |   Z  |   X  |  C  |   D   |  V   |   K   |   H   |  ,<   |  .>  |  /?  | Shft |
+| Fn   | Ctrl | Alt  | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2  |
+
 ##### Function Layer
 Activated when `fn` held in the above `qwerty` layer.
 
@@ -73,12 +82,12 @@ To finish the recording, press STOP. To replay the macro, press either PLAY1 or
 * 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  |      |      |      |
+|       |      |      |      |      |      |      |      |      |      |      |         |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
+| ????  | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |   Del   |
+| CAPS  |      |      |      |      | PLAY1|PLAY2 | Mute | Vol+ | Play |      | Qwerty  |
+| MAC   |      |      |      |      | STOP1|STOP2 | Prev | Vol- | Next |      | Colemak |
+|       |      |      |      |      |      |      |      | DYN  |      |      |         |
 
 ##### Function 2 Layer
 Activated when `fn` held in the above `qwerty` layer.
diff --git a/users/ajp10304/ajp10304.c b/users/ajp10304/ajp10304.c
index dd13787d63..b8729b94d7 100644
--- a/users/ajp10304/ajp10304.c
+++ b/users/ajp10304/ajp10304.c
@@ -24,6 +24,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         set_single_persistent_default_layer(_QWERTY);
       }
       return false;
+    case COLEMAK:
+      if (record->event.pressed) {
+        set_single_persistent_default_layer(_COLEMAK);
+      }
     case LOWER:
       if (record->event.pressed) {
         layer_on(_LOWER);
@@ -157,12 +161,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         break;
     case M_MODE:
         if (record->event.pressed) {
-            SEND_STRING("PC");
+            send_string("PC ");
+            send_string(get_highest_layer(default_layer_state) == _COLEMAK ? "COLEMAK" : "QWERTY");
         }
         break;
     case M_MODE_MAC:
         if (record->event.pressed) {
-            SEND_STRING("OSX");
+            send_string("OSX ");
+            send_string(get_highest_layer(default_layer_state) == _COLEMAK ? "COLEMAK" : "QWERTY");
         }
         break;
   }
diff --git a/users/ajp10304/ajp10304.h b/users/ajp10304/ajp10304.h
index ec1ed11c04..130c841607 100644
--- a/users/ajp10304/ajp10304.h
+++ b/users/ajp10304/ajp10304.h
@@ -18,6 +18,7 @@
 
 enum ajp10304_layers {
   _QWERTY,
+  _COLEMAK,
   _MAC,
   _LOWER,
   _MLWR,
@@ -34,6 +35,7 @@ enum ajp10304_layers {
 
 enum ajp10304_keycodes {
   QWERTY = SAFE_RANGE,
+  COLEMAK,
   MAC,
   FUNC,
   MFNC,
diff --git a/users/ajp10304/readme.md b/users/ajp10304/readme.md
index bfc39535c1..0683f42384 100644
--- a/users/ajp10304/readme.md
+++ b/users/ajp10304/readme.md
@@ -37,6 +37,15 @@ Refer to the README.md of the keyboard you want to flash.
 | Shft |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |  ,<  |  .>  |  /?  | Shft |
 | Fn   | Ctrl | Alt  | GUI  |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2  |
 
+##### Main Colemak-DHm Layer
+
+|      |      |      |     |       |      |       |       |       |      |      |      |
+| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
+| Esc  |   Q  |   W  |  F  |   P   |  B   |   J   |   L   |   U   |  Y   |  ;:  | Bksp |
+| Tab  |   A  |   R  |  S  |   T   |  G   |   M   |   N   |   E   |  I   |  O   | Enter|
+| Shft |   Z  |   X  |  C  |   D   |  V   |   K   |   H   |  ,<   |  .>  |  /?  | Shft |
+| Fn   | Ctrl | Alt  | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2  |
+
 ##### Function Layer
 Activated when `fn` held in the above `qwerty` layer.
 
@@ -88,12 +97,12 @@ To finish the recording, press STOP. To replay the macro, press either PLAY1 or
 * 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  |      |      |      |
+|       |      |      |      |      |      |      |      |      |      |      |         |
+| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
+| ????  | Reset|Qwerty|      |      | REC1 | REC2 |      |      |      |      |   Del   |
+| CAPS  |      |      |      |      | PLAY1|PLAY2 | Mute | Vol+ | Play |      | Qwerty  |
+| MAC   |      |      |      |      | STOP1|STOP2 | Prev | Vol- | Next |      | Colemak |
+|       |      |      |      |      |      |      |      | DYN  |      |      |         |
 
 ##### Function 2 Layer
 Activated when `fn` held in the above `qwerty` layer.