summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/acheron/shark/keymaps/ajp10304/readme.md118
-rw-r--r--keyboards/handwired/atreus50/atreus50.h2
-rw-r--r--keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c236
-rw-r--r--keyboards/handwired/atreus50/keymaps/ajp10304/readme.md33
-rw-r--r--keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk5
-rw-r--r--keyboards/jj40/keymaps/ajp10304/keymap.c342
-rw-r--r--keyboards/jj40/keymaps/ajp10304/readme.md33
-rw-r--r--keyboards/planck/keymaps/ajp10304/readme.md33
-rw-r--r--keyboards/planck/keymaps/ajp10304/rules.mk3
-rw-r--r--layouts/community/ortho_4x12/ajp10304/keymap.c (renamed from keyboards/planck/keymaps/ajp10304/keymap.c)287
-rw-r--r--layouts/community/ortho_4x12/ajp10304/readme.md117
-rw-r--r--layouts/community/ortho_4x12/ajp10304/rules.mk (renamed from keyboards/jj40/keymaps/ajp10304/rules.mk)2
-rw-r--r--users/ajp10304/ajp10304.c154
-rw-r--r--users/ajp10304/ajp10304.h45
-rw-r--r--users/ajp10304/readme.md132
-rw-r--r--users/ajp10304/rules.mk1
16 files changed, 741 insertions, 802 deletions
diff --git a/keyboards/acheron/shark/keymaps/ajp10304/readme.md b/keyboards/acheron/shark/keymaps/ajp10304/readme.md
new file mode 100644
index 0000000000..73e5b831e0
--- /dev/null
+++ b/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 | . | , | - | |
diff --git a/keyboards/handwired/atreus50/atreus50.h b/keyboards/handwired/atreus50/atreus50.h
index eb31ca1b8e..e2e8510b62 100644
--- a/keyboards/handwired/atreus50/atreus50.h
+++ b/keyboards/handwired/atreus50/atreus50.h
@@ -3,7 +3,7 @@
#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
#define LAYOUT( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c b/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c
index 1e53d050b0..46a5995d0d 100644
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c
+++ b/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c
@@ -1,39 +1,6 @@
#include QMK_KEYBOARD_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] = {
@@ -49,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-------------------------------------------------------------------------------------------------'
*/
[_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) ,
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)
@@ -103,10 +70,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-------------------------------------------------------------------------------------------------'
*/
[_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)
@@ -121,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-------------------------------------------------------------------------------------------------'
*/
[_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, _______, _______ ,
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
* ,------------------------------------------ |-----------------------------------------.
- * | ESC | | | | | | | | | | | | |
+ * | ESC | | | | | | | | | BTN3 | | | |
* |------+------+------+------+------+------- |------+------+------+------+------+------|
* | ACC0 | ACC1 | ACC2 | | | | | | BTN1 | UP | BTN2 | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
@@ -139,12 +106,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-------------------------------------------------------------------------------------------------'
*/
[_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_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)
* ,------------------------------------------ |-----------------------------------------.
* | | |WRDSEL| | | | | LNDEL| | | | | |
@@ -157,10 +144,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-------------------------------------------------------------------------------------------------'
*/
[_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(
@@ -178,10 +165,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_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(
@@ -192,151 +179,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_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;
-};
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md b/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md
index 41ad0f5118..5c6a703a8e 100644
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md
+++ b/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md
@@ -1,11 +1,15 @@
# 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,
the second is the output when shift is applied.
**Note:** The below tables assume a UK layout.
+#### Flashing
+
+`make handwired/atreus50:ajp10304:flash`
+
##### Main Qwerty Layer
* Tab: when held, operates as shift.
@@ -43,13 +47,13 @@ Activated when `Lower` is held in the above `qwerty` layer.
| Shift | \| | `¬ | #~ | '@ | -_ | | | =+ | #~ | [{ | ]} | '@ |Shift |
| | | | |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 | | | | | | | LEFT | DOWN | RIGHT| | |
| | | | | | | 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
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk b/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk
index fc5d9ba1aa..900dbaed11 100644
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk
+++ b/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk
@@ -1,8 +1,3 @@
AUDIO_ENABLE = no
MOUSEKEY_ENABLE = yes
-
-TEMP := $(OPT_DEFS)
-OPT_DEFS = $(filter-out -DBOOTLOADER_SIZE=4096,$(TEMP))
-OPT_DEFS += -DBOOTLOADER_SIZE=512
-
BOOTLOADER = halfkay
diff --git a/keyboards/jj40/keymaps/ajp10304/keymap.c b/keyboards/jj40/keymaps/ajp10304/keymap.c
deleted file mode 100644
index c34a7c2929..0000000000
--- a/keyboards/jj40/keymaps/ajp10304/keymap.c
+++ /dev/null
@@ -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;
-};
diff --git a/keyboards/jj40/keymaps/ajp10304/readme.md b/keyboards/jj40/keymaps/ajp10304/readme.md
index 86286d1118..345fbccf60 100644
--- a/keyboards/jj40/keymaps/ajp10304/readme.md
+++ b/keyboards/jj40/keymaps/ajp10304/readme.md
@@ -1,11 +1,16 @@
# 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,
the second is the output when shift is applied.
**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
* Tab: when held, operates as shift.
@@ -43,13 +48,13 @@ Activated when `Lower` is held in the above `qwerty` layer.
| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
| | | | |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 | | | | | 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 | . | , | - | |
diff --git a/keyboards/planck/keymaps/ajp10304/readme.md b/keyboards/planck/keymaps/ajp10304/readme.md
index 6573266db1..6ea8f0061d 100644
--- a/keyboards/planck/keymaps/ajp10304/readme.md
+++ b/keyboards/planck/keymaps/ajp10304/readme.md
@@ -1,14 +1,15 @@
# 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,
the second is the output when shift is applied.
**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
@@ -47,13 +48,13 @@ Activated when `Lower` is held in the above `qwerty` layer.
| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
| | | | |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 | | | | | LEFT | DOWN | RIGHT| | |
| | | | | | | | | | | | |
+
+##### Number Pad Layout
+Activated when holding `Esc` key.
+
+| | | | | | | | | | | | |
+| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
+| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
+| | | | | | | | 4 | 5 | 6 | * | |
+| | | | | | | | 1 | 2 | 3 | + | |
+| | | | | | | | 0 | . | , | - | |
diff --git a/keyboards/planck/keymaps/ajp10304/rules.mk b/keyboards/planck/keymaps/ajp10304/rules.mk
deleted file mode 100644
index 4dee01cd5b..0000000000
--- a/keyboards/planck/keymaps/ajp10304/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-AUDIO_ENABLE = no
-MOUSEKEY_ENABLE = yes
-
diff --git a/keyboards/planck/keymaps/ajp10304/keymap.c b/layouts/community/ortho_4x12/ajp10304/keymap.c
index 49346f7b95..3badce2eaf 100644
--- a/keyboards/planck/keymaps/ajp10304/keymap.c
+++ b/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"
-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] = {
/* 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 |
* `-----------------------------------------------------------------------------------'
*/
-[_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)
),
@@ -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 |
* `-----------------------------------------------------------------------------------'
*/
-[_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), _______, _______, _______, _______
),
@@ -86,10 +50,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | |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
),
@@ -104,11 +68,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | 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)
@@ -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
* ,-----------------------------------------------------------------------------------.
- * | ESC | | | | | | | | | | | |
+ * | ESC | | | | | | | | BTN3 | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | 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_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)
* ,-----------------------------------------------------------------------------------.
* | | |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
),
-[_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;
-};
diff --git a/layouts/community/ortho_4x12/ajp10304/readme.md b/layouts/community/ortho_4x12/ajp10304/readme.md
new file mode 100644
index 0000000000..6f2330f943
--- /dev/null
+++ b/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 | . | , | - | |
diff --git a/keyboards/jj40/keymaps/ajp10304/rules.mk b/layouts/community/ortho_4x12/ajp10304/rules.mk
index 4dee01cd5b..ebe923c9b3 100644
--- a/keyboards/jj40/keymaps/ajp10304/rules.mk
+++ b/layouts/community/ortho_4x12/ajp10304/rules.mk
@@ -1,3 +1,3 @@
AUDIO_ENABLE = no
MOUSEKEY_ENABLE = yes
-
+DYNAMIC_MACRO_ENABLE = yes
diff --git a/users/ajp10304/ajp10304.c b/users/ajp10304/ajp10304.c
new file mode 100644
index 0000000000..9cae65d5cf
--- /dev/null
+++ b/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;
+}
diff --git a/users/ajp10304/ajp10304.h b/users/ajp10304/ajp10304.h
new file mode 100644
index 0000000000..b96e00fc4e
--- /dev/null
+++ b/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
+};
diff --git a/users/ajp10304/readme.md b/users/ajp10304/readme.md
new file mode 100644
index 0000000000..8e1a438aa8
--- /dev/null
+++ b/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 | . | , | - | |
diff --git a/users/ajp10304/rules.mk b/users/ajp10304/rules.mk
new file mode 100644
index 0000000000..5ae7f651e8
--- /dev/null
+++ b/users/ajp10304/rules.mk
@@ -0,0 +1 @@
+SRC += ajp10304.c