summaryrefslogtreecommitdiff
path: root/users/ajp10304
diff options
context:
space:
mode:
Diffstat (limited to 'users/ajp10304')
-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
4 files changed, 332 insertions, 0 deletions
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