From c5e255a4172cdd8e813fbd9a86e560dac90dee64 Mon Sep 17 00:00:00 2001 From: ajp10304 Date: Thu, 9 Jul 2020 20:18:51 +0100 Subject: Create ajp10304 userspace and ortho_4x12 layout. (#9304) --- users/ajp10304/ajp10304.c | 154 ++++++++++++++++++++++++++++++++++++++++++++++ users/ajp10304/ajp10304.h | 45 ++++++++++++++ users/ajp10304/readme.md | 132 +++++++++++++++++++++++++++++++++++++++ users/ajp10304/rules.mk | 1 + 4 files changed, 332 insertions(+) create mode 100644 users/ajp10304/ajp10304.c create mode 100644 users/ajp10304/ajp10304.h create mode 100644 users/ajp10304/readme.md create mode 100644 users/ajp10304/rules.mk (limited to 'users') 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 @@ +#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 000000000..b96e00fc4 --- /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 000000000..8e1a438aa --- /dev/null +++ b/users/ajp10304/readme.md @@ -0,0 +1,132 @@ +Copyright 2020 Alan Pocklington @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 . + +# 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 +| +| | | | { | } | ||<| LEFT | DOWN |RIGHT |>||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 000000000..5ae7f651e --- /dev/null +++ b/users/ajp10304/rules.mk @@ -0,0 +1 @@ +SRC += ajp10304.c -- cgit v1.2.3