aboutsummaryrefslogtreecommitdiff
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 000000000..73e5b831e
--- /dev/null
+++ b/keyboards/acheron/shark/keymaps/ajp10304/readme.md
@@ -0,0 +1,118 @@
1# AJP10304 Custom Shark Layout
2# Also available for the Planck, JJ40 and Atreus50
3
4**Note:** In the tables below where there are two characters on a key,
5the second is the output when shift is applied.
6
7**Note:** The below tables assume a UK layout.
8
9#### Flashing
10
11`make acheron/shark:ajp10304:flash`
12
13##### Main Qwerty Layer
14
15* Tab: when held, operates as shift.
16* Enter: when held, operates as shift.
17* MENU: perform right-click
18
19| | | | | | | | | | | | |
20| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
21| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
22| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
23| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
24| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
25
26##### Function Layer
27Activated when `fn` held in the above `qwerty` layer.
28
29| | | | | | | | | | | | |
30| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
31| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
32| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
33| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
34| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 |
35
36##### Lower Layer
37Activated when `Lower` is held in the above `qwerty` layer.
38
39* Numbers are along the top row, their shifted counterparts are on row 2.
40* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
41* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
42
43| | | | | | | | | | | | |
44| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
45| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
46| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
47| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
48| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
49
50##### Raise Layer
51Activated when `Raise` is held in the above `qwerty` layer.
52
53* Preferred layer for typing brackets.
54* Allows for cursor navigation to be used solely with the right hand.
55* WRDSEL: Select the word where the cursor is.
56* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
57
58| | | | | | | | | | | | |
59| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
60| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
61| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
62| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
63| Mouse | | | | | Alt | Enter |Raise | | | | |
64
65##### Lower + Raise
66Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
67
68* Audio controls in the same position as cursor keys from the `Raise` layer.
69* ????: Runs a macro for outputting a text string. Do not use this store passwords.
70* Reset: Enter bootloader for flashing firmware to the keyboard.
71* CAPS: Toggle caps lock.
72* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2.
73To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
74* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
75MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
76
77| | | | | | | | | | | | |
78| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
79| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
80| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | |
81| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | |
82| | | | | | | | | DYN | | | |
83
84##### Function 2 Layer
85Activated when `fn` held in the above `qwerty` layer.
86* WRDSEL: Select the word where the cursor is.
87* LNDEL: Delete the line where the cursor is.
88* LNSEL: Select the line where the cursor is.
89* DUP: Duplicate the selected text.
90* LNJOIN: Join the line where the cursor is with the following line.
91* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
92
93| | | | | | | | | | | | |
94| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
95| | |WRDSEL| | | | LNDEL| | | | | |
96| | | LNSEL| DUP | | | | |LNJOIN| | | |
97| | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
98| | | | | | | | | | | | |
99
100##### Mouse Layer
101Activated when `fn` and `raise` held together.
102
103| | | | | | | | | | | | |
104| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
105| ESC | | | | | | | | BTN3 | | | |
106| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
107| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
108| | | | | | | | | | | | |
109
110##### Number Pad Layout
111Activated when holding `Esc` key.
112
113| | | | | | | | | | | | |
114| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
115| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
116| | | | | | | | 4 | 5 | 6 | * | |
117| | | | | | | | 1 | 2 | 3 | + | |
118| | | | | | | | 0 | . | , | - | |
diff --git a/keyboards/handwired/atreus50/atreus50.h b/keyboards/handwired/atreus50/atreus50.h
index eb31ca1b8..e2e8510b6 100644
--- a/keyboards/handwired/atreus50/atreus50.h
+++ b/keyboards/handwired/atreus50/atreus50.h
@@ -3,7 +3,7 @@
3 3
4#include "quantum.h" 4#include "quantum.h"
5 5
6// The first section contains all of the arguements 6// The first section contains all of the arguments
7// The second converts the arguments into a two-dimensional array 7// The second converts the arguments into a two-dimensional array
8#define LAYOUT( \ 8#define LAYOUT( \
9 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ 9 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 1e53d050b..46a5995d0 100644
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c
+++ b/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c
@@ -1,39 +1,6 @@
1#include QMK_KEYBOARD_H 1#include QMK_KEYBOARD_H
2#include "keymap_uk.h" 2#include "keymap_uk.h"
3 3#include "ajp10304.h"
4extern keymap_config_t keymap_config;
5
6enum planck_layers {
7 _QWERTY,
8 _MAC,
9 _LOWER,
10 _MLWR,
11 _RAISE,
12 _MRSE,
13 _FUNC,
14 _MFNC,
15 _FUNC2,
16 _MFNC2,
17 _ADJUST,
18 _MOUSE
19};
20
21enum planck_keycodes {
22 QWERTY = SAFE_RANGE,
23 MAC,
24 FUNC,
25 MFNC,
26 FUNC2,
27 MFNC2,
28 LOWER,
29 MLWR,
30 RAISE,
31 MRSE,
32 MOUSE,
33 DYNAMIC_MACRO_RANGE
34};
35
36#include "dynamic_macro.h"
37 4
38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 5const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39 6
@@ -49,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
49 * `-------------------------------------------------------------------------------------------------' 16 * `-------------------------------------------------------------------------------------------------'
50 */ 17 */
51[_QWERTY] = LAYOUT( 18[_QWERTY] = LAYOUT(
52 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC , 19 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 ,
53 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) , 20 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) ,
54 KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT , 21 KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT ,
55 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) 22 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] = {
103 * `-------------------------------------------------------------------------------------------------' 70 * `-------------------------------------------------------------------------------------------------'
104 */ 71 */
105[_RAISE] = LAYOUT( 72[_RAISE] = LAYOUT(
106 KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN , 73 KC_GRV, XXXXXXX, M_WORD_SEL, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,
107 KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) , 74 KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,
108 _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) , 75 _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,
109 MO(_MOUSE), _______, _______, _______, _______, KC_LALT, _______, _______, KC_ENT, _______, XXXXXXX, _______, _______, _______ 76 MO(_MOUSE), _______, _______, _______, _______, KC_LALT, _______, _______, KC_ENT, _______, XXXXXXX, _______, _______, _______
110), 77),
111 78
112/* Adjust (Lower + Raise) 79/* Adjust (Lower + Raise)
@@ -121,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
121 * `-------------------------------------------------------------------------------------------------' 88 * `-------------------------------------------------------------------------------------------------'
122 */ 89 */
123[_ADJUST] = LAYOUT( 90[_ADJUST] = LAYOUT(
124 M(0), RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL , 91 M_CUSTOM, RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL ,
125 KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ , 92 KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,
126 TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ , 93 TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,
127 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 94 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
@@ -129,7 +96,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
129 96
130/* Mouse 97/* Mouse
131 * ,------------------------------------------ |-----------------------------------------. 98 * ,------------------------------------------ |-----------------------------------------.
132 * | ESC | | | | | | | | | | | | | 99 * | ESC | | | | | | | | | BTN3 | | | |
133 * |------+------+------+------+------+------- |------+------+------+------+------+------| 100 * |------+------+------+------+------+------- |------+------+------+------+------+------|
134 * | ACC0 | ACC1 | ACC2 | | | | | | BTN1 | UP | BTN2 | | | 101 * | ACC0 | ACC1 | ACC2 | | | | | | BTN1 | UP | BTN2 | | |
135 * |------+------+------+------+------+------| |------+------+------+------+------+------| 102 * |------+------+------+------+------+------| |------+------+------+------+------+------|
@@ -139,12 +106,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
139 * `-------------------------------------------------------------------------------------------------' 106 * `-------------------------------------------------------------------------------------------------'
140 */ 107 */
141[_MOUSE] = LAYOUT( 108[_MOUSE] = LAYOUT(
142 KC_ESC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ , 109 KC_ESC , _______, _______, _______, _______, _______, _______, _______, KC_MS_BTN3, _______, _______, _______ ,
143 KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______ , 110 KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______ ,
144 KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______ , 111 KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______ ,
145 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 112 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
146), 113),
147 114
115
116/* Num Pad
117 * ,------------------------------------------ |-----------------------------------------.
118 * | ESC | | | | | | |NMLOCK| 7 | 8 | 9 | / | |
119 * |------+------+------+------+------+------- |------+------+------+------+------+------|
120 * | | | | | | | | | 4 | 5 | 6 | * | |
121 * |------+------+------+------+------+------| |------+------+------+------+------+------|
122 * | | | | | | | | | 1 | 2 | 3 | + | |
123 * |------+------+------+------+------+------|------+------+------+------+------+------+------+------|
124 * | | | | | | | | | | 0 | . | , | - | |
125 * `-------------------------------------------------------------------------------------------------'
126 */
127[_NUMPAD] = LAYOUT(
128 _______, _______, _______, _______, _______, _______, KC_NLCK, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, _______,
129 _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK, _______,
130 _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_PLUS, _______,
131 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, KC_COMM, KC_KP_MINUS, _______
132),
133
134
148/* Function 2 (Right hand side) 135/* Function 2 (Right hand side)
149 * ,------------------------------------------ |-----------------------------------------. 136 * ,------------------------------------------ |-----------------------------------------.
150 * | | |WRDSEL| | | | | LNDEL| | | | | | 137 * | | |WRDSEL| | | | | LNDEL| | | | | |
@@ -157,10 +144,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
157 * `-------------------------------------------------------------------------------------------------' 144 * `-------------------------------------------------------------------------------------------------'
158 */ 145 */
159[_FUNC2] = LAYOUT( 146[_FUNC2] = LAYOUT(
160 _______, _______, M(1), _______, _______, _______, M(5), _______, _______, _______, _______, _______, 147 _______, _______, M_WORD_SEL, _______, _______, _______, M_LINE_DEL, _______, _______, _______, _______, _______,
161 _______, _______, M(3), M(7), _______, _______, _______, M(10), _______, _______, _______, _______, 148 _______, _______, M_LINE_SEL, M_DUP, _______, _______, _______, M_JOIN, _______, _______, _______, _______,
162 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M(98) , 149 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M_MODE,
163 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 150 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
164), 151),
165 152
166[_MAC] = LAYOUT( 153[_MAC] = LAYOUT(
@@ -178,10 +165,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
178), 165),
179 166
180[_MRSE] = LAYOUT( 167[_MRSE] = LAYOUT(
181 _______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ , 168 _______, _______, M_WORD_SEL_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
182 _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) , 169 _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) ,
183 _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) , 170 _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,
184 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 171 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
185), 172),
186 173
187[_MFNC] = LAYOUT( 174[_MFNC] = LAYOUT(
@@ -192,151 +179,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
192), 179),
193 180
194[_MFNC2] = LAYOUT( 181[_MFNC2] = LAYOUT(
195 _______, _______, M(2), _______, _______, _______, M(6), _______, _______, _______, _______, _______, 182 _______, _______, M_WORD_SEL_MAC, _______, _______, _______, M_LINE_DEL_MAC, _______, _______, _______, _______, _______,
196 _______, _______, M(4), M(8), _______, _______, _______, M(10), _______, _______, _______, _______, 183 _______, _______, M_LINE_SEL_MAC, M_DUP_MAC, _______, _______, _______, M_JOIN_MAC, _______, _______, _______, _______,
197 _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M(99) , 184 _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M_MODE_MAC,
198 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 185 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
199) 186)
200 187
201}; 188};
202
203void persistant_default_layer_set(uint16_t default_layer) {
204 eeconfig_update_default_layer(default_layer);
205 default_layer_set(default_layer);
206}
207
208bool process_record_user(uint16_t keycode, keyrecord_t *record) {
209
210 if (!process_record_dynamic_macro(keycode, record)) {
211 return false;
212 }
213
214 switch (keycode) {
215 case QWERTY:
216 if (record->event.pressed) {
217 persistant_default_layer_set(1UL<<_QWERTY);
218 }
219 return false;
220 case LOWER:
221 if (record->event.pressed) {
222 layer_on(_LOWER);
223 update_tri_layer(_LOWER, _RAISE, _ADJUST);
224 } else {
225 layer_off(_LOWER);
226 update_tri_layer(_LOWER, _RAISE, _ADJUST);
227 }
228 return false;
229 case RAISE:
230 if (record->event.pressed) {
231 layer_on(_RAISE);
232 update_tri_layer(_LOWER, _RAISE, _ADJUST);
233 } else {
234 layer_off(_RAISE);
235 update_tri_layer(_LOWER, _RAISE, _ADJUST);
236 }
237 return false;
238 case MLWR:
239 if (record->event.pressed) {
240 layer_on(_LOWER);
241 layer_on(_MLWR);
242 update_tri_layer(_LOWER, _RAISE, _ADJUST);
243 } else {
244 layer_off(_LOWER);
245 layer_off(_MLWR);
246 update_tri_layer(_LOWER, _RAISE, _ADJUST);
247 }
248 return false;
249 case MRSE:
250 if (record->event.pressed) {
251 layer_on(_RAISE);
252 layer_on(_MRSE);
253 update_tri_layer(_LOWER, _RAISE, _ADJUST);
254 } else {
255 layer_off(_RAISE);
256 layer_off(_MRSE);
257 update_tri_layer(_LOWER, _RAISE, _ADJUST);
258 }
259 return false;
260 case MFNC:
261 if (record->event.pressed) {
262 layer_on(_FUNC);
263 layer_on(_MFNC);
264 } else {
265 layer_off(_FUNC);
266 layer_off(_MFNC);
267 }
268 return false;
269 case MFNC2:
270 if (record->event.pressed) {
271 layer_on(_FUNC2);
272 layer_on(_MFNC2);
273 } else {
274 layer_off(_FUNC2);
275 layer_off(_MFNC2);
276 }
277 return false;
278 }
279 return true;
280}
281
282const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
283 // These would trigger when you hit a key mapped as M(0)
284 if (record->event.pressed) {
285 switch(keycode) {
286 case 0: // Some custom string here
287 SEND_STRING("");
288 return false;
289
290 case 1: // Word Select
291 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));
292 return false;
293
294 case 2: // Word Select Mac
295 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));
296 return false;
297
298 case 3: // Line Select
299 SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
300 return false;
301
302 case 4: // Line Select Mac
303 SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
304 return false;
305
306 case 5: // Line Delete
307 SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
308 SEND_STRING(SS_TAP(X_BSPACE));
309 return false;
310
311 case 6: // Line Delete Mac
312 SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
313 SEND_STRING(SS_TAP(X_BSPACE));
314 return false;
315
316 case 7: // Duplicate Selection
317 SEND_STRING(SS_LCTRL("c") SS_TAP(X_RIGHT) SS_LCTRL("v"));
318 return false;
319
320 case 8: // Duplicate Selection Mac
321 SEND_STRING(SS_LGUI("c") SS_TAP(X_RIGHT) SS_LGUI("v"));
322 return false;
323
324 case 9: // Join line
325 SEND_STRING(SS_TAP(X_END) SS_TAP(X_DELETE));
326 return false;
327
328 case 10: // Join line Mac
329 SEND_STRING(SS_LCTRL("e") SS_TAP(X_DELETE));
330 return false;
331
332 case 98: // Print mode
333 SEND_STRING("PC");
334 return false;
335
336 case 99: // Print mode
337 SEND_STRING("OSX");
338 return false;
339 }
340 }
341 return MACRO_NONE;
342};
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md b/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md
index 41ad0f511..5c6a703a8 100644
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md
+++ b/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md
@@ -1,11 +1,15 @@
1# AJP10304 Custom Atreus50 Layout 1# AJP10304 Custom Atreus50 Layout
2# Also available for the Planck and JJ40 2# Also available for the Planck, Shark and JJ40
3 3
4**Note:** In the tables below where there are two characters on a key, 4**Note:** In the tables below where there are two characters on a key,
5the second is the output when shift is applied. 5the second is the output when shift is applied.
6 6
7**Note:** The below tables assume a UK layout. 7**Note:** The below tables assume a UK layout.
8 8
9#### Flashing
10
11`make handwired/atreus50:ajp10304:flash`
12
9##### Main Qwerty Layer 13##### Main Qwerty Layer
10 14
11* Tab: when held, operates as shift. 15* Tab: when held, operates as shift.
@@ -43,13 +47,13 @@ Activated when `Lower` is held in the above `qwerty` layer.
43| Shift | \| | `¬ | #~ | '@ | -_ | | | =+ | #~ | [{ | ]} | '@ |Shift | 47| Shift | \| | `¬ | #~ | '@ | -_ | | | =+ | #~ | [{ | ]} | '@ |Shift |
44| | | | |Lower | Del | Ctrl | Alt |Space | | Next | Vol- | Vol+ | Play | 48| | | | |Lower | Del | Ctrl | Alt |Space | | Next | Vol- | Vol+ | Play |
45 49
46 ##### Raise Layer 50##### Raise Layer
47 Activated when `Raise` is held in the above `qwerty` layer. 51Activated when `Raise` is held in the above `qwerty` layer.
48 52
49 * Preferred layer for typing brackets. 53* Preferred layer for typing brackets.
50 * Allows for cursor navigation to be used solely with the right hand. 54* Allows for cursor navigation to be used solely with the right hand.
51 * WRDSEL: Select the word where the cursor is. 55* WRDSEL: Select the word where the cursor is.
52 * |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping. 56* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
53 57
54| | | | | | | | | | | | | | | 58| | | | | | | | | | | | | | |
55| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| 59| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
@@ -98,11 +102,20 @@ Activated when `fn` and `raise` held together.
98 102
99| | | | | | | | | | | | | | | 103| | | | | | | | | | | | | | |
100| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| 104| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
101| ESC | | | | | | | | | | | | | | 105| ESC | | | | | | | | | | BTN3 | | | |
102| ACC0 | ACC1 | ACC2 | | | | | | | BTN1 | UP | BTN2 | | | 106| ACC0 | ACC1 | ACC2 | | | | | | | BTN1 | UP | BTN2 | | |
103| ACC0 | ACC1 | ACC2 | | | | | | | LEFT | DOWN | RIGHT| | | 107| ACC0 | ACC1 | ACC2 | | | | | | | LEFT | DOWN | RIGHT| | |
104| | | | | | | Ctrl | Alt | | | | | | | 108| | | | | | | Ctrl | Alt | | | | | | |
105 109
110##### Number Pad Layout
111Activated when holding `Esc` key.
112
113| | | | | | | | | | | | | | |
114| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
115| | | | | | | | |NMLOCK| 7 | 8 | 9 | / | |
116| | | | | | | | | | 4 | 5 | 6 | * | |
117| | | | | | | | | | 1 | 2 | 3 | + | |
118| | | | | | | Ctrl | Alt | | 0 | . | , | - | |
119
120
106 121
107##Program Command
108teensy_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 fc5d9ba1a..900dbaed1 100644
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk
+++ b/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk
@@ -1,8 +1,3 @@
1AUDIO_ENABLE = no 1AUDIO_ENABLE = no
2MOUSEKEY_ENABLE = yes 2MOUSEKEY_ENABLE = yes
3
4TEMP := $(OPT_DEFS)
5OPT_DEFS = $(filter-out -DBOOTLOADER_SIZE=4096,$(TEMP))
6OPT_DEFS += -DBOOTLOADER_SIZE=512
7
8BOOTLOADER = halfkay 3BOOTLOADER = halfkay
diff --git a/keyboards/jj40/keymaps/ajp10304/keymap.c b/keyboards/jj40/keymaps/ajp10304/keymap.c
deleted file mode 100644
index c34a7c292..000000000
--- a/keyboards/jj40/keymaps/ajp10304/keymap.c
+++ /dev/null
@@ -1,342 +0,0 @@
1#include QMK_KEYBOARD_H
2#include "keymap_uk.h"
3
4extern keymap_config_t keymap_config;
5
6enum jj40_layers {
7 _QWERTY,
8 _MAC,
9 _LOWER,
10 _MLWR,
11 _RAISE,
12 _MRSE,
13 _FUNC,
14 _MFNC,
15 _FUNC2,
16 _MFNC2,
17 _ADJUST,
18 _MOUSE
19};
20
21enum jj40_keycodes {
22 QWERTY = SAFE_RANGE,
23 MAC,
24 FUNC,
25 MFNC,
26 FUNC2,
27 MFNC2,
28 LOWER,
29 MLWR,
30 RAISE,
31 MRSE,
32 MOUSE,
33 DYNAMIC_MACRO_RANGE
34};
35
36#include "dynamic_macro.h"
37
38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39
40/* Qwerty
41 * ,-----------------------------------------------------------------------------------.
42 * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
43 * |------+------+------+------+------+-------------+------+------+------+------+------|
44 * | Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
45 * |------+------+------+------+------+------|------+------+------+------+------+------|
46 * | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
47 * |------+------+------+------+------+------+------+------+------+------+------+------|
48 * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
49 * `-----------------------------------------------------------------------------------'
50 */
51[_QWERTY] = LAYOUT_ortho_4x12(\
52 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,\
53 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) ,\
54 KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT ,\
55 MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC2) \
56),
57
58/* Function
59 * ,-----------------------------------------------------------------------------------.
60 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
61 * |------+------+------+------+------+-------------+------+------+------+------+------|
62 * | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
63 * |------+------+------+------+------+------|------+------+------+------+------+------|
64 * | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
65 * |------+------+------+------+------+------+------+------+------+------+------+------|
66 * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
67 * `-----------------------------------------------------------------------------------'
68 */
69[_FUNC] = LAYOUT_ortho_4x12(\
70 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 ,\
71 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,\
72 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) ,\
73 _______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ \
74),
75
76/* Lower
77 * ,-----------------------------------------------------------------------------------.
78 * | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
79 * |------+------+------+------+------+-------------+------+------+------+------+------|
80 * | ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
81 * |------+------+------+------+------+------|------+------+------+------+------+------|
82 * | Shift| \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
83 * |------+------+------+------+------+------+------+------+------+------+------+------|
84 * | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
85 * `-----------------------------------------------------------------------------------'
86 */
87[_LOWER] = LAYOUT_ortho_4x12(\
88 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC ,\
89 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) ,\
90 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) ,\
91 _______, _______, _______, _______, _______, KC_DEL, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
92),
93
94/* Raise
95 * ,-----------------------------------------------------------------------------------.
96 * | ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
97 * |------+------+------+------+------+-------------+------+------+------+------+------|
98 * | ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
99 * |------+------+------+------+------+------|------+------+------+------+------+------|
100 * | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
101 * |------+------+------+------+------+------|------+------+------+------+------+------|
102 * | Mouse| | | | | Alt | Enter|Raise | | | | |
103 * `-----------------------------------------------------------------------------------'
104 */
105[_RAISE] = LAYOUT_ortho_4x12(\
106 KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,\
107 KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,\
108 _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,\
109 MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ \
110),
111
112/* Adjust (Lower + Raise)
113 * ,-----------------------------------------------------------------------------------.
114 * | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
115 * |------+------+------+------+------+-------------+------+------+------+------+------|
116 * | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | |
117 * |------+------+------+------+------+------|------+------+------+------+------+------|
118 * | PC/MC| | | | | STOP | STOP | Prev | Vol- | Next | | |
119 * |------+------+------+------+------+------+------+------+------+------+------+------|
120 * | | | | | | | | | | | |
121 * `-----------------------------------------------------------------------------------'
122 */
123[_ADJUST] = LAYOUT_ortho_4x12(\
124 M(0), RESET, QWERTY, BL_ON, BL_OFF, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL ,\
125 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, _______, _______ ,\
126 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, _______, _______ ,\
127 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
128),
129
130/* Mouse
131 * ,-----------------------------------------------------------------------------------.
132 * | ESC | | | | | | | | | | | |
133 * |------+------+------+------+------+-------------+------+------+------+------+------|
134 * | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
135 * |------+------+------+------+------+------|------+------+------+------+------+------|
136 * | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
137 * |------+------+------+------+------+------|------+------+------+------+------+------|
138 * | | | | | | | | | | | | |
139 * `-----------------------------------------------------------------------------------'
140 */
141[_MOUSE] = LAYOUT_ortho_4x12(\
142 KC_ESC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
143 KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______,\
144 KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______,\
145 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
146),
147
148/* Function 2 (Right hand side)
149 * ,-----------------------------------------------------------------------------------.
150 * | | |WRDSEL| | | | LNDEL| | | | | |
151 * |------+------+------+------+------+-------------+------+------+------+------+------|
152 * | | | LNSEL| DUP | | | | |LNJOIN| | | |
153 * |------+------+------+------+------+------|------+------+------+------+------+------|
154 * | | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
155 * |------+------+------+------+------+------|------+------+------+------+------+------|
156 * | | | | | | | | | | | | |
157 * `-----------------------------------------------------------------------------------'
158 */
159[_FUNC2] = LAYOUT_ortho_4x12(\
160 _______, _______, M(1), _______, _______, _______, M(5), _______, _______, _______, _______, _______,\
161 _______, _______, M(3), M(7), _______, _______, _______, M(10), _______, _______, _______, _______,\
162 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M(98), \
163 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
164),
165
166[_MAC]= LAYOUT_ortho_4x12(\
167 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
168 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
169 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
170 MFNC, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, MFNC2 \
171),
172
173[_MLWR] = LAYOUT_ortho_4x12(\
174 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
175 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
176 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
177 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
178),
179
180[_MRSE] = LAYOUT_ortho_4x12(\
181 _______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\
182 _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) ,\
183 _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,\
184 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
185),
186
187[_MFNC]= LAYOUT_ortho_4x12(\
188 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\
189 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,\
190 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\
191 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
192),
193
194[_MFNC2] = LAYOUT_ortho_4x12(\
195 _______, _______, M(2), _______, _______, _______, M(6), _______, _______, _______, _______, _______,\
196 _______, _______, M(4), M(8), _______, _______, _______, M(10), _______, _______, _______, _______,\
197 _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M(99), \
198 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
199)
200
201};
202
203void persistant_default_layer_set(uint16_t default_layer) {
204 eeconfig_update_default_layer(default_layer);
205 default_layer_set(default_layer);
206}
207
208bool process_record_user(uint16_t keycode, keyrecord_t *record) {
209
210 if (!process_record_dynamic_macro(keycode, record)) {
211 return false;
212 }
213
214 switch (keycode) {
215 case QWERTY:
216 if (record->event.pressed) {
217 persistant_default_layer_set(1UL<<_QWERTY);
218 }
219 return false;
220 case LOWER:
221 if (record->event.pressed) {
222 layer_on(_LOWER);
223 update_tri_layer(_LOWER, _RAISE, _ADJUST);
224 } else {
225 layer_off(_LOWER);
226 update_tri_layer(_LOWER, _RAISE, _ADJUST);
227 }
228 return false;
229 case RAISE:
230 if (record->event.pressed) {
231 layer_on(_RAISE);
232 update_tri_layer(_LOWER, _RAISE, _ADJUST);
233 } else {
234 layer_off(_RAISE);
235 update_tri_layer(_LOWER, _RAISE, _ADJUST);
236 }
237 return false;
238 case MLWR:
239 if (record->event.pressed) {
240 layer_on(_LOWER);
241 layer_on(_MLWR);
242 update_tri_layer(_LOWER, _RAISE, _ADJUST);
243 } else {
244 layer_off(_LOWER);
245 layer_off(_MLWR);
246 update_tri_layer(_LOWER, _RAISE, _ADJUST);
247 }
248 return false;
249 case MRSE:
250 if (record->event.pressed) {
251 layer_on(_RAISE);
252 layer_on(_MRSE);
253 update_tri_layer(_LOWER, _RAISE, _ADJUST);
254 } else {
255 layer_off(_RAISE);
256 layer_off(_MRSE);
257 update_tri_layer(_LOWER, _RAISE, _ADJUST);
258 }
259 return false;
260 case MFNC:
261 if (record->event.pressed) {
262 layer_on(_FUNC);
263 layer_on(_MFNC);
264 } else {
265 layer_off(_FUNC);
266 layer_off(_MFNC);
267 }
268 return false;
269 case MFNC2:
270 if (record->event.pressed) {
271 layer_on(_FUNC2);
272 layer_on(_MFNC2);
273 } else {
274 layer_off(_FUNC2);
275 layer_off(_MFNC2);
276 }
277 return false;
278 }
279 return true;
280}
281
282const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
283 // These would trigger when you hit a key mapped as M(0)
284 if (record->event.pressed) {
285 switch(keycode) {
286 case 0: // Some custom string here
287 SEND_STRING("");
288 return false;
289
290 case 1: // Word Select
291 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));
292 return false;
293
294 case 2: // Word Select Mac
295 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));
296 return false;
297
298 case 3: // Line Select
299 SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
300 return false;
301
302 case 4: // Line Select Mac
303 SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
304 return false;
305
306 case 5: // Line Delete
307 SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
308 SEND_STRING(SS_TAP(X_BSPACE));
309 return false;
310
311 case 6: // Line Delete Mac
312 SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
313 SEND_STRING(SS_TAP(X_BSPACE));
314 return false;
315
316 case 7: // Duplicate Selection
317 SEND_STRING(SS_LCTRL("c") SS_TAP(X_RIGHT) SS_LCTRL("v"));
318 return false;
319
320 case 8: // Duplicate Selection Mac
321 SEND_STRING(SS_LGUI("c") SS_TAP(X_RIGHT) SS_LGUI("v"));
322 return false;
323
324 case 9: // Join line
325 SEND_STRING(SS_TAP(X_END) SS_TAP(X_DELETE));
326 return false;
327
328 case 10: // Join line Mac
329 SEND_STRING(SS_LCTRL("e") SS_TAP(X_DELETE));
330 return false;
331
332 case 98: // Print mode
333 SEND_STRING("PC");
334 return false;
335
336 case 99: // Print mode
337 SEND_STRING("OSX");
338 return false;
339 }
340 }
341 return MACRO_NONE;
342};
diff --git a/keyboards/jj40/keymaps/ajp10304/readme.md b/keyboards/jj40/keymaps/ajp10304/readme.md
index 86286d111..345fbccf6 100644
--- a/keyboards/jj40/keymaps/ajp10304/readme.md
+++ b/keyboards/jj40/keymaps/ajp10304/readme.md
@@ -1,11 +1,16 @@
1# AJP10304 Custom JJ40 Layout 1# AJP10304 Custom JJ40 Layout
2# Also available for the Atreus50 and Planck 2# Also available for the Planck, Shark and Atreus50
3 3
4**Note:** In the tables below where there are two characters on a key, 4**Note:** In the tables below where there are two characters on a key,
5the second is the output when shift is applied. 5the second is the output when shift is applied.
6 6
7**Note:** The below tables assume a UK layout. 7**Note:** The below tables assume a UK layout.
8 8
9#### Flashing
10Use sleep to get a chance to get into boot mode.
11
12`make jj40:ajp10304:flash`
13
9##### Main Qwerty Layer 14##### Main Qwerty Layer
10 15
11* Tab: when held, operates as shift. 16* Tab: when held, operates as shift.
@@ -43,13 +48,13 @@ Activated when `Lower` is held in the above `qwerty` layer.
43| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift | 48| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
44| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play | 49| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
45 50
46 ##### Raise Layer 51##### Raise Layer
47 Activated when `Raise` is held in the above `qwerty` layer. 52Activated when `Raise` is held in the above `qwerty` layer.
48 53
49 * Preferred layer for typing brackets. 54* Preferred layer for typing brackets.
50 * Allows for cursor navigation to be used solely with the right hand. 55* Allows for cursor navigation to be used solely with the right hand.
51 * WRDSEL: Select the word where the cursor is. 56* WRDSEL: Select the word where the cursor is.
52 * |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping. 57* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
53 58
54| | | | | | | | | | | | | 59| | | | | | | | | | | | |
55| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| 60| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
@@ -98,11 +103,17 @@ Activated when `fn` and `raise` held together.
98 103
99| | | | | | | | | | | | | 104| | | | | | | | | | | | |
100| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| 105| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
101| ESC | | | | | | | | | | | | 106| ESC | | | | | | | | BTN3 | | | |
102| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | 107| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
103| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | | 108| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
104| | | | | | | | | | | | | 109| | | | | | | | | | | | |
105 110
106####Manual Flashing of hex file 111##### Number Pad Layout
107Use sleep to get a chance to get into boot mode. 112Activated when holding `Esc` key.
108`sleep 5; bootloadHID -r .build/jj40_ajp10304.hex` 113
114| | | | | | | | | | | | |
115| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
116| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
117| | | | | | | | 4 | 5 | 6 | * | |
118| | | | | | | | 1 | 2 | 3 | + | |
119| | | | | | | | 0 | . | , | - | |
diff --git a/keyboards/planck/keymaps/ajp10304/readme.md b/keyboards/planck/keymaps/ajp10304/readme.md
index 6573266db..6ea8f0061 100644
--- a/keyboards/planck/keymaps/ajp10304/readme.md
+++ b/keyboards/planck/keymaps/ajp10304/readme.md
@@ -1,14 +1,15 @@
1# AJP10304 Custom Planck Layout 1# AJP10304 Custom Planck Layout
2# Also available for the Atreus50 and JJ40 2# Also available for the Shark, JJ40 and Atreus50
3 3
4**Note:** In the tables below where there are two characters on a key, 4**Note:** In the tables below where there are two characters on a key,
5the second is the output when shift is applied. 5the second is the output when shift is applied.
6 6
7**Note:** The below tables assume a UK layout. 7**Note:** The below tables assume a UK layout.
8 8
9####Flashing 9#### Flashing
10Rev <=5: sudo make planck:ajp10304:dfu 10Rev <=5: `make planck:ajp10304:flash`
11Rev 6: sudo make planck/rev6:ajp10304:dfu-util 11
12Rev 6: `make planck/rev6:ajp10304:flash`
12 13
13##### Main Qwerty Layer 14##### Main Qwerty Layer
14 15
@@ -47,13 +48,13 @@ Activated when `Lower` is held in the above `qwerty` layer.
47| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift | 48| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
48| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play | 49| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
49 50
50 ##### Raise Layer 51##### Raise Layer
51 Activated when `Raise` is held in the above `qwerty` layer. 52Activated when `Raise` is held in the above `qwerty` layer.
52 53
53 * Preferred layer for typing brackets. 54* Preferred layer for typing brackets.
54 * Allows for cursor navigation to be used solely with the right hand. 55* Allows for cursor navigation to be used solely with the right hand.
55 * WRDSEL: Select the word where the cursor is. 56* WRDSEL: Select the word where the cursor is.
56 * |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping. 57* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
57 58
58| | | | | | | | | | | | | 59| | | | | | | | | | | | |
59| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:| 60| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
@@ -102,7 +103,17 @@ Activated when `fn` and `raise` held together.
102 103
103| | | | | | | | | | | | | 104| | | | | | | | | | | | |
104| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| 105| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
105| ESC | | | | | | | | | | | | 106| ESC | | | | | | | | BTN3 | | | |
106| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | 107| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
107| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | | 108| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
108| | | | | | | | | | | | | 109| | | | | | | | | | | | |
110
111##### Number Pad Layout
112Activated when holding `Esc` key.
113
114| | | | | | | | | | | | |
115| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
116| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
117| | | | | | | | 4 | 5 | 6 | * | |
118| | | | | | | | 1 | 2 | 3 | + | |
119| | | | | | | | 0 | . | , | - | |
diff --git a/keyboards/planck/keymaps/ajp10304/rules.mk b/keyboards/planck/keymaps/ajp10304/rules.mk
deleted file mode 100644
index 4dee01cd5..000000000
--- a/keyboards/planck/keymaps/ajp10304/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
1AUDIO_ENABLE = no
2MOUSEKEY_ENABLE = yes
3
diff --git a/keyboards/planck/keymaps/ajp10304/keymap.c b/layouts/community/ortho_4x12/ajp10304/keymap.c
index 49346f7b9..3badce2ea 100644
--- a/keyboards/planck/keymaps/ajp10304/keymap.c
+++ b/layouts/community/ortho_4x12/ajp10304/keymap.c
@@ -1,42 +1,6 @@
1#include "planck.h" 1#include "ajp10304.h"
2#include "action_layer.h"
3#include "eeconfig.h"
4#include "keymap_uk.h" 2#include "keymap_uk.h"
5 3
6extern keymap_config_t keymap_config;
7
8enum planck_layers {
9 _QWERTY,
10 _MAC,
11 _LOWER,
12 _MLWR,
13 _RAISE,
14 _MRSE,
15 _FUNC,
16 _MFNC,
17 _FUNC2,
18 _MFNC2,
19 _ADJUST,
20 _MOUSE
21};
22
23enum planck_keycodes {
24 QWERTY = SAFE_RANGE,
25 MAC,
26 FUNC,
27 MFNC,
28 FUNC2,
29 MFNC2,
30 LOWER,
31 MLWR,
32 RAISE,
33 MRSE,
34 MOUSE,
35 DYNAMIC_MACRO_RANGE
36};
37
38#include "dynamic_macro.h"
39
40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41 5
42/* Qwerty 6/* Qwerty
@@ -50,10 +14,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
50 * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 | 14 * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
51 * `-----------------------------------------------------------------------------------' 15 * `-----------------------------------------------------------------------------------'
52 */ 16 */
53[_QWERTY] = LAYOUT_planck_grid( 17[_QWERTY] = LAYOUT_ortho_4x12(
54 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 18 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 ,
55 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), 19 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) ,
56 KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT, 20 KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT ,
57 MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC2) 21 MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC2)
58), 22),
59 23
@@ -68,10 +32,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
68 * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn | 32 * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
69 * `-----------------------------------------------------------------------------------' 33 * `-----------------------------------------------------------------------------------'
70 */ 34 */
71[_FUNC] = LAYOUT_planck_grid( 35[_FUNC] = LAYOUT_ortho_4x12(
72 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 36 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 ,
73 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT, 37 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,
74 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), 38 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) ,
75 _______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ 39 _______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______
76), 40),
77 41
@@ -86,10 +50,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
86 * | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play | 50 * | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
87 * `-----------------------------------------------------------------------------------' 51 * `-----------------------------------------------------------------------------------'
88 */ 52 */
89[_LOWER] = LAYOUT_planck_grid( 53[_LOWER] = LAYOUT_ortho_4x12(
90 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC, 54 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC ,
91 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), 55 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) ,
92 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), 56 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) ,
93 _______, _______, _______, _______, _______, KC_DEL, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY 57 _______, _______, _______, _______, _______, KC_DEL, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
94), 58),
95 59
@@ -104,11 +68,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
104 * | Mouse| | | | | Alt | Enter|Raise | | | | | 68 * | Mouse| | | | | Alt | Enter|Raise | | | | |
105 * `-----------------------------------------------------------------------------------' 69 * `-----------------------------------------------------------------------------------'
106 */ 70 */
107[_RAISE] = LAYOUT_planck_grid( 71[_RAISE] = LAYOUT_ortho_4x12(
108 KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN, 72 KC_GRV, XXXXXXX, M_WORD_SEL, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,
109 KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)), 73 KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,
110 _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS), 74 _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,
111 MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ 75 MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______
112), 76),
113 77
114/* Adjust (Lower + Raise) 78/* Adjust (Lower + Raise)
@@ -122,16 +86,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
122 * | | | | | | | | | | | | 86 * | | | | | | | | | | | |
123 * `-----------------------------------------------------------------------------------' 87 * `-----------------------------------------------------------------------------------'
124 */ 88 */
125[_ADJUST] = LAYOUT_planck_grid( 89[_ADJUST] = LAYOUT_ortho_4x12(
126 M(0), RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL, 90 M_CUSTOM, RESET, QWERTY, BL_ON, BL_OFF, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL ,
127 KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______, 91 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, _______, _______ ,
128 TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______, 92 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, _______, _______ ,
129 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 93 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
130), 94),
131 95
132/* Mouse 96/* Mouse
133 * ,-----------------------------------------------------------------------------------. 97 * ,-----------------------------------------------------------------------------------.
134 * | ESC | | | | | | | | | | | | 98 * | ESC | | | | | | | | BTN3 | | | |
135 * |------+------+------+------+------+-------------+------+------+------+------+------| 99 * |------+------+------+------+------+-------------+------+------+------+------+------|
136 * | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | | 100 * | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
137 * |------+------+------+------+------+------|------+------+------+------+------+------| 101 * |------+------+------+------+------+------|------+------+------+------+------+------|
@@ -140,13 +104,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
140 * | | | | | | | | | | | | | 104 * | | | | | | | | | | | | |
141 * `-----------------------------------------------------------------------------------' 105 * `-----------------------------------------------------------------------------------'
142 */ 106 */
143[_MOUSE] = LAYOUT_planck_grid( 107[_MOUSE] = LAYOUT_ortho_4x12(
144 KC_ESC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 108 KC_ESC , _______, _______, _______, _______, _______, _______, _______, KC_MS_BTN3, _______, _______, _______,
145 KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______, 109 KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______,
146 KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______, 110 KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______,
147 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 111 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
148), 112),
149 113
114/* Num Pad
115 * ,-----------------------------------------------------------------------------------.
116 * | ESC | | | | | |NMLOCK| 7 | 8 | 9 | / | |
117 * |------+------+------+------+------+-------------+------+------+------+------+------|
118 * | | | | | | | | 4 | 5 | 6 | * | |
119 * |------+------+------+------+------+------|------+------+------+------+------+------|
120 * | | | | | | | | 1 | 2 | 3 | + | |
121 * |------+------+------+------+------+------|------+------+------+------+------+------|
122 * | | | | | | | | 0 | . | , | - | |
123 * `-----------------------------------------------------------------------------------'
124 */
125[_NUMPAD] = LAYOUT_ortho_4x12(
126 _______, _______, _______, _______, _______, _______, KC_NLCK, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, _______,
127 _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK, _______,
128 _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_PLUS, _______,
129 _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, KC_COMM, KC_KP_MINUS, _______
130),
131
150/* Function 2 (Right hand side) 132/* Function 2 (Right hand side)
151 * ,-----------------------------------------------------------------------------------. 133 * ,-----------------------------------------------------------------------------------.
152 * | | |WRDSEL| | | | LNDEL| | | | | | 134 * | | |WRDSEL| | | | LNDEL| | | | | |
@@ -158,187 +140,46 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
158 * | | | | | | | | | | | | | 140 * | | | | | | | | | | | | |
159 * `-----------------------------------------------------------------------------------' 141 * `-----------------------------------------------------------------------------------'
160 */ 142 */
161[_FUNC2] = LAYOUT_planck_grid( 143[_FUNC2] = LAYOUT_ortho_4x12(
162 _______, _______, M(1), _______, _______, _______, M(5), _______, _______, _______, _______, _______, 144 _______, _______, M_WORD_SEL, _______, _______, _______, M_LINE_DEL, _______, _______, _______, _______, _______,
163 _______, _______, M(3), M(7), _______, _______, _______, M(10), _______, _______, _______, _______, 145 _______, _______, M_LINE_SEL, M_DUP, _______, _______, _______, M_JOIN, _______, _______, _______, _______,
164 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M(98) , 146 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M_MODE,
165 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 147 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
166), 148),
167 149
168[_MAC] = LAYOUT_planck_grid( 150[_MAC]= LAYOUT_ortho_4x12(
169 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 151 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
170 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 152 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
171 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 153 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
172 MFNC, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, MFNC2 154 MFNC, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, MFNC2
173), 155),
174 156
175[_MLWR] = LAYOUT_planck_grid( 157[_MLWR] = LAYOUT_ortho_4x12(
176 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 158 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
177 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 159 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
178 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 160 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
179 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 161 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
180), 162),
181 163
182[_MRSE] = LAYOUT_planck_grid( 164[_MRSE] = LAYOUT_ortho_4x12(
183 _______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, 165 _______, _______, M_WORD_SEL_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
184 _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL), 166 _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) ,
185 _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS), 167 _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,
186 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 168 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
187), 169),
188 170
189[_MFNC]= LAYOUT_planck_grid( 171[_MFNC]= LAYOUT_ortho_4x12(
190 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 172 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
191 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT), 173 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,
192 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 174 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
193 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 175 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
194), 176),
195 177
196[_MFNC2] = LAYOUT_planck_grid( 178[_MFNC2] = LAYOUT_ortho_4x12(
197 _______, _______, M(2), _______, _______, _______, M(6), _______, _______, _______, _______, _______, 179 _______, _______, M_WORD_SEL_MAC, _______, _______, _______, M_LINE_DEL_MAC, _______, _______, _______, _______, _______,
198 _______, _______, M(4), M(8), _______, _______, _______, M(10), _______, _______, _______, _______, 180 _______, _______, M_LINE_SEL_MAC, M_DUP_MAC, _______, _______, _______, M_JOIN_MAC, _______, _______, _______, _______,
199 _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M(99) , 181 _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M_MODE_MAC,
200 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 182 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
201) 183)
202 184
203}; 185};
204
205void persistant_default_layer_set(uint16_t default_layer) {
206 eeconfig_update_default_layer(default_layer);
207 default_layer_set(default_layer);
208}
209
210bool process_record_user(uint16_t keycode, keyrecord_t *record) {
211
212 if (!process_record_dynamic_macro(keycode, record)) {
213 return false;
214 }
215
216 switch (keycode) {
217 case QWERTY:
218 if (record->event.pressed) {
219 persistant_default_layer_set(1UL<<_QWERTY);
220 }
221 return false;
222 case LOWER:
223 if (record->event.pressed) {
224 layer_on(_LOWER);
225 update_tri_layer(_LOWER, _RAISE, _ADJUST);
226 } else {
227 layer_off(_LOWER);
228 update_tri_layer(_LOWER, _RAISE, _ADJUST);
229 }
230 return false;
231 case RAISE:
232 if (record->event.pressed) {
233 layer_on(_RAISE);
234 update_tri_layer(_LOWER, _RAISE, _ADJUST);
235 } else {
236 layer_off(_RAISE);
237 update_tri_layer(_LOWER, _RAISE, _ADJUST);
238 }
239 return false;
240 case MLWR:
241 if (record->event.pressed) {
242 layer_on(_LOWER);
243 layer_on(_MLWR);
244 update_tri_layer(_LOWER, _RAISE, _ADJUST);
245 } else {
246 layer_off(_LOWER);
247 layer_off(_MLWR);
248 update_tri_layer(_LOWER, _RAISE, _ADJUST);
249 }
250 return false;
251 case MRSE:
252 if (record->event.pressed) {
253 layer_on(_RAISE);
254 layer_on(_MRSE);
255 update_tri_layer(_LOWER, _RAISE, _ADJUST);
256 } else {
257 layer_off(_RAISE);
258 layer_off(_MRSE);
259 update_tri_layer(_LOWER, _RAISE, _ADJUST);
260 }
261 return false;
262 case MFNC:
263 if (record->event.pressed) {
264 layer_on(_FUNC);
265 layer_on(_MFNC);
266 } else {
267 layer_off(_FUNC);
268 layer_off(_MFNC);
269 }
270 return false;
271 case MFNC2:
272 if (record->event.pressed) {
273 layer_on(_FUNC2);
274 layer_on(_MFNC2);
275 } else {
276 layer_off(_FUNC2);
277 layer_off(_MFNC2);
278 }
279 return false;
280 }
281 return true;
282}
283
284const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
285 // These would trigger when you hit a key mapped as M(0)
286 if (record->event.pressed) {
287 switch(keycode) {
288 case 0: // Some custom string here
289 SEND_STRING("");
290 return false;
291
292 case 1: // Word Select
293 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));
294 return false;
295
296 case 2: // Word Select Mac
297 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));
298 return false;
299
300 case 3: // Line Select
301 SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
302 return false;
303
304 case 4: // Line Select Mac
305 SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
306 return false;
307
308 case 5: // Line Delete
309 SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
310 SEND_STRING(SS_TAP(X_BSPACE));
311 return false;
312
313 case 6: // Line Delete Mac
314 SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
315 SEND_STRING(SS_TAP(X_BSPACE));
316 return false;
317
318 case 7: // Duplicate Selection
319 SEND_STRING(SS_LCTRL("c") SS_TAP(X_RIGHT) SS_LCTRL("v"));
320 return false;
321
322 case 8: // Duplicate Selection Mac
323 SEND_STRING(SS_LGUI("c") SS_TAP(X_RIGHT) SS_LGUI("v"));
324 return false;
325
326 case 9: // Join line
327 SEND_STRING(SS_TAP(X_END) SS_TAP(X_DELETE));
328 return false;
329
330 case 10: // Join line Mac
331 SEND_STRING(SS_LCTRL("e") SS_TAP(X_DELETE));
332 return false;
333
334 case 98: // Print mode
335 SEND_STRING("PC");
336 return false;
337
338 case 99: // Print mode
339 SEND_STRING("OSX");
340 return false;
341 }
342 }
343 return MACRO_NONE;
344};
diff --git a/layouts/community/ortho_4x12/ajp10304/readme.md b/layouts/community/ortho_4x12/ajp10304/readme.md
new file mode 100644
index 000000000..6f2330f94
--- /dev/null
+++ b/layouts/community/ortho_4x12/ajp10304/readme.md
@@ -0,0 +1,117 @@
1# AJP10304 Ortho 4x12 Layout
2# For Planck, Shark, JJ40 and Atreus50
3
4**Note:** In the tables below where there are two characters on a key,
5the second is the output when shift is applied.
6
7**Note:** The below tables assume a UK layout.
8
9#### Flashing
10Refer to the README.md of the keyboard you want to flash.
11
12##### Main Qwerty Layer
13
14* Tab: when held, operates as shift.
15* Enter: when held, operates as shift.
16* MENU: perform right-click
17
18| | | | | | | | | | | | |
19| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
20| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
21| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
22| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
23| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
24
25##### Function Layer
26Activated when `fn` held in the above `qwerty` layer.
27
28| | | | | | | | | | | | |
29| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
30| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
31| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
32| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
33| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 |
34
35##### Lower Layer
36Activated when `Lower` is held in the above `qwerty` layer.
37
38* Numbers are along the top row, their shifted counterparts are on row 2.
39* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
40* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
41
42| | | | | | | | | | | | |
43| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
44| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
45| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
46| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
47| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
48
49##### Raise Layer
50Activated when `Raise` is held in the above `qwerty` layer.
51
52* Preferred layer for typing brackets.
53* Allows for cursor navigation to be used solely with the right hand.
54* WRDSEL: Select the word where the cursor is.
55* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
56
57| | | | | | | | | | | | |
58| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
59| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
60| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
61| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
62| Mouse | | | | | Alt | Enter |Raise | | | | |
63
64##### Lower + Raise
65Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
66
67* Audio controls in the same position as cursor keys from the `Raise` layer.
68* ????: Runs a macro for outputting a text string. Do not use this store passwords.
69* Reset: Enter bootloader for flashing firmware to the keyboard.
70* CAPS: Toggle caps lock.
71* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2.
72To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
73* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
74MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
75
76| | | | | | | | | | | | |
77| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
78| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
79| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | |
80| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | |
81| | | | | | | | | DYN | | | |
82
83##### Function 2 Layer
84Activated when `fn` held in the above `qwerty` layer.
85* WRDSEL: Select the word where the cursor is.
86* LNDEL: Delete the line where the cursor is.
87* LNSEL: Select the line where the cursor is.
88* DUP: Duplicate the selected text.
89* LNJOIN: Join the line where the cursor is with the following line.
90* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
91
92| | | | | | | | | | | | |
93| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
94| | |WRDSEL| | | | LNDEL| | | | | |
95| | | LNSEL| DUP | | | | |LNJOIN| | | |
96| | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
97| | | | | | | | | | | | |
98
99##### Mouse Layer
100Activated when `fn` and `raise` held together.
101
102| | | | | | | | | | | | |
103| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
104| ESC | | | | | | | | BTN3 | | | |
105| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
106| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
107| | | | | | | | | | | | |
108
109##### Number Pad Layout
110Activated when holding `Esc` key.
111
112| | | | | | | | | | | | |
113| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
114| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
115| | | | | | | | 4 | 5 | 6 | * | |
116| | | | | | | | 1 | 2 | 3 | + | |
117| | | | | | | | 0 | . | , | - | |
diff --git a/keyboards/jj40/keymaps/ajp10304/rules.mk b/layouts/community/ortho_4x12/ajp10304/rules.mk
index 4dee01cd5..ebe923c9b 100644
--- a/keyboards/jj40/keymaps/ajp10304/rules.mk
+++ b/layouts/community/ortho_4x12/ajp10304/rules.mk
@@ -1,3 +1,3 @@
1AUDIO_ENABLE = no 1AUDIO_ENABLE = no
2MOUSEKEY_ENABLE = yes 2MOUSEKEY_ENABLE = yes
3 3DYNAMIC_MACRO_ENABLE = yes
diff --git a/users/ajp10304/ajp10304.c b/users/ajp10304/ajp10304.c
new file mode 100644
index 000000000..9cae65d5c
--- /dev/null
+++ b/users/ajp10304/ajp10304.c
@@ -0,0 +1,154 @@
1#include "ajp10304.h"
2
3bool process_record_user(uint16_t keycode, keyrecord_t *record) {
4
5 switch (keycode) {
6 case QWERTY:
7 if (record->event.pressed) {
8 set_single_persistent_default_layer(_QWERTY);
9 }
10 return false;
11 case LOWER:
12 if (record->event.pressed) {
13 layer_on(_LOWER);
14 update_tri_layer(_LOWER, _RAISE, _ADJUST);
15 } else {
16 layer_off(_LOWER);
17 update_tri_layer(_LOWER, _RAISE, _ADJUST);
18 }
19 return false;
20 case RAISE:
21 if (record->event.pressed) {
22 layer_on(_RAISE);
23 update_tri_layer(_LOWER, _RAISE, _ADJUST);
24 } else {
25 layer_off(_RAISE);
26 update_tri_layer(_LOWER, _RAISE, _ADJUST);
27 }
28 return false;
29 case MLWR:
30 if (record->event.pressed) {
31 layer_on(_LOWER);
32 layer_on(_MLWR);
33 update_tri_layer(_LOWER, _RAISE, _ADJUST);
34 } else {
35 layer_off(_LOWER);
36 layer_off(_MLWR);
37 update_tri_layer(_LOWER, _RAISE, _ADJUST);
38 }
39 return false;
40 case MRSE:
41 if (record->event.pressed) {
42 layer_on(_RAISE);
43 layer_on(_MRSE);
44 update_tri_layer(_LOWER, _RAISE, _ADJUST);
45 } else {
46 layer_off(_RAISE);
47 layer_off(_MRSE);
48 update_tri_layer(_LOWER, _RAISE, _ADJUST);
49 }
50 return false;
51 case MFNC:
52 if (record->event.pressed) {
53 layer_on(_FUNC);
54 layer_on(_MFNC);
55 } else {
56 layer_off(_FUNC);
57 layer_off(_MFNC);
58 }
59 return false;
60 case MFNC2:
61 if (record->event.pressed) {
62 layer_on(_FUNC2);
63 layer_on(_MFNC2);
64 } else {
65 layer_off(_FUNC2);
66 layer_off(_MFNC2);
67 }
68 return false;
69 case M_CUSTOM:
70 if (record->event.pressed) {
71 SEND_STRING("Custom text here");
72 }
73 break;
74 case M_WORD_SEL:
75 if (record->event.pressed) {
76 register_mods(MOD_LCTL);
77 tap_code(KC_RGHT);
78 tap_code16(S(KC_LEFT));
79 unregister_mods(MOD_LCTL);
80 }
81 break;
82 case M_WORD_SEL_MAC:
83 if (record->event.pressed) {
84 register_mods(MOD_LALT);
85 tap_code(KC_RGHT);
86 tap_code16(S(KC_LEFT));
87 unregister_mods(MOD_LALT);
88 }
89 break;
90 case M_LINE_SEL:
91 if (record->event.pressed) {
92 tap_code(KC_HOME);
93 tap_code16(S(KC_END));
94 }
95 break;
96 case M_LINE_SEL_MAC:
97 if (record->event.pressed) {
98 tap_code16(C(KC_A));
99 tap_code16(C(S(KC_E)));
100 }
101 break;
102 case M_LINE_DEL:
103 if (record->event.pressed) {
104 tap_code(KC_HOME);
105 tap_code16(S(KC_END));
106 tap_code(KC_BSPC);
107 }
108 break;
109 case M_LINE_DEL_MAC:
110 if (record->event.pressed) {
111 tap_code16(C(KC_A));
112 tap_code16(C(S(KC_E)));
113 tap_code(KC_BSPC);
114 }
115 break;
116 case M_DUP:
117 if (record->event.pressed) {
118 tap_code16(C(KC_C));
119 tap_code(KC_RGHT);
120 tap_code16(C(KC_V));
121 }
122 break;
123 case M_DUP_MAC:
124 if (record->event.pressed) {
125 tap_code16(G(KC_C));
126 tap_code(KC_RGHT);
127 tap_code16(G(KC_V));
128 }
129 break;
130 case M_JOIN:
131 if (record->event.pressed) {
132 tap_code(KC_END);
133 tap_code(KC_DEL);
134 }
135 break;
136 case M_JOIN_MAC:
137 if (record->event.pressed) {
138 tap_code16(C(KC_E));
139 tap_code(KC_DEL);
140 }
141 break;
142 case M_MODE:
143 if (record->event.pressed) {
144 SEND_STRING("PC");
145 }
146 break;
147 case M_MODE_MAC:
148 if (record->event.pressed) {
149 SEND_STRING("OSX");
150 }
151 break;
152 }
153 return true;
154}
diff --git a/users/ajp10304/ajp10304.h b/users/ajp10304/ajp10304.h
new file mode 100644
index 000000000..b96e00fc4
--- /dev/null
+++ b/users/ajp10304/ajp10304.h
@@ -0,0 +1,45 @@
1#include QMK_KEYBOARD_H
2
3enum ajp10304_layers {
4 _QWERTY,
5 _MAC,
6 _LOWER,
7 _MLWR,
8 _RAISE,
9 _MRSE,
10 _FUNC,
11 _MFNC,
12 _FUNC2,
13 _MFNC2,
14 _ADJUST,
15 _MOUSE,
16 _NUMPAD
17};
18
19enum ajp10304_keycodes {
20 QWERTY = SAFE_RANGE,
21 MAC,
22 FUNC,
23 MFNC,
24 FUNC2,
25 MFNC2,
26 LOWER,
27 MLWR,
28 RAISE,
29 MRSE,
30 MOUSE,
31 NUMPAD,
32 M_CUSTOM,
33 M_WORD_SEL,
34 M_WORD_SEL_MAC,
35 M_LINE_SEL,
36 M_LINE_SEL_MAC,
37 M_LINE_DEL,
38 M_LINE_DEL_MAC,
39 M_DUP,
40 M_DUP_MAC,
41 M_JOIN,
42 M_JOIN_MAC,
43 M_MODE,
44 M_MODE_MAC
45};
diff --git a/users/ajp10304/readme.md b/users/ajp10304/readme.md
new file mode 100644
index 000000000..8e1a438aa
--- /dev/null
+++ b/users/ajp10304/readme.md
@@ -0,0 +1,132 @@
1Copyright 2020 Alan Pocklington <ajp10304@gmail.com> @ajp10304
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16# AJP10304 Custom 40% Layout
17# For the Planck, Shark, JJ40 and Atreus50
18
19**Note:** In the tables below where there are two characters on a key,
20the second is the output when shift is applied.
21
22**Note:** The below tables assume a UK layout.
23
24#### Flashing
25Refer to the README.md of the keyboard you want to flash.
26
27##### Main Qwerty Layer
28
29* Tab: when held, operates as shift.
30* Enter: when held, operates as shift.
31* MENU: perform right-click
32
33| | | | | | | | | | | | |
34| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
35| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
36| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
37| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
38| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
39
40##### Function Layer
41Activated when `fn` held in the above `qwerty` layer.
42
43| | | | | | | | | | | | |
44| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
45| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
46| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
47| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
48| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 |
49
50##### Lower Layer
51Activated when `Lower` is held in the above `qwerty` layer.
52
53* Numbers are along the top row, their shifted counterparts are on row 2.
54* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
55* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
56
57| | | | | | | | | | | | |
58| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
59| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
60| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
61| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
62| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
63
64##### Raise Layer
65Activated when `Raise` is held in the above `qwerty` layer.
66
67* Preferred layer for typing brackets.
68* Allows for cursor navigation to be used solely with the right hand.
69* WRDSEL: Select the word where the cursor is.
70* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
71
72| | | | | | | | | | | | |
73| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
74| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
75| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
76| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
77| Mouse | | | | | Alt | Enter |Raise | | | | |
78
79##### Lower + Raise
80Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
81
82* Audio controls in the same position as cursor keys from the `Raise` layer.
83* ????: Runs a macro for outputting a text string. Do not use this store passwords.
84* Reset: Enter bootloader for flashing firmware to the keyboard.
85* CAPS: Toggle caps lock.
86* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2.
87To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
88* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
89MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
90
91| | | | | | | | | | | | |
92| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
93| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
94| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | |
95| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | |
96| | | | | | | | | DYN | | | |
97
98##### Function 2 Layer
99Activated when `fn` held in the above `qwerty` layer.
100* WRDSEL: Select the word where the cursor is.
101* LNDEL: Delete the line where the cursor is.
102* LNSEL: Select the line where the cursor is.
103* DUP: Duplicate the selected text.
104* LNJOIN: Join the line where the cursor is with the following line.
105* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
106
107| | | | | | | | | | | | |
108| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
109| | |WRDSEL| | | | LNDEL| | | | | |
110| | | LNSEL| DUP | | | | |LNJOIN| | | |
111| | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
112| | | | | | | | | | | | |
113
114##### Mouse Layer
115Activated when `fn` and `raise` held together.
116
117| | | | | | | | | | | | |
118| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
119| ESC | | | | | | | | BTN3 | | | |
120| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
121| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
122| | | | | | | | | | | | |
123
124##### Number Pad Layout
125Activated when holding `Esc` key.
126
127| | | | | | | | | | | | |
128| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
129| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
130| | | | | | | | 4 | 5 | 6 | * | |
131| | | | | | | | 1 | 2 | 3 | + | |
132| | | | | | | | 0 | . | , | - | |
diff --git a/users/ajp10304/rules.mk b/users/ajp10304/rules.mk
new file mode 100644
index 000000000..5ae7f651e
--- /dev/null
+++ b/users/ajp10304/rules.mk
@@ -0,0 +1 @@
SRC += ajp10304.c