diff options
| author | Guillaume Gérard <1322081+GreatWizard@users.noreply.github.com> | 2020-10-28 18:20:06 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-28 10:20:06 -0700 |
| commit | c745cbb77a66a44549ee1ab3b1998c495c1a1ca5 (patch) | |
| tree | a947f2215dcda13fac95b2620b70bc095b8d2d14 | |
| parent | 6b1ae7e6aa7180b00759b5692d2ea5bd0303c566 (diff) | |
| download | qmk_firmware-c745cbb77a66a44549ee1ab3b1998c495c1a1ca5.tar.gz qmk_firmware-c745cbb77a66a44549ee1ab3b1998c495c1a1ca5.zip | |
[Keymap] greatwizard userspace and ortho 4x12 and 5x12 keymaps (#9584)
27 files changed, 2187 insertions, 0 deletions
diff --git a/layouts/community/ortho_4x12/greatwizard/README.md b/layouts/community/ortho_4x12/greatwizard/README.md new file mode 100644 index 000000000..9eadb6343 --- /dev/null +++ b/layouts/community/ortho_4x12/greatwizard/README.md | |||
| @@ -0,0 +1,149 @@ | |||
| 1 | # GreatWizard ortholinear 4x12 keymap | ||
| 2 | |||
| 3 | ## Base layers | ||
| 4 | |||
| 5 | ### Qwerty | ||
| 6 | |||
| 7 | ``` | ||
| 8 | ,-----------------------------------------------------------------------------------. | ||
| 9 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
| 10 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 11 | | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
| 12 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
| 14 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 15 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 16 | `-----------------------------------------------------------------------------------' | ||
| 17 | ``` | ||
| 18 | |||
| 19 | ### Workman | ||
| 20 | |||
| 21 | ``` | ||
| 22 | ,-----------------------------------------------------------------------------------. | ||
| 23 | | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp | | ||
| 24 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 25 | | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
| 26 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 27 | | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
| 28 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 29 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 30 | `-----------------------------------------------------------------------------------' | ||
| 31 | ``` | ||
| 32 | |||
| 33 | ### Colemak | ||
| 34 | |||
| 35 | ``` | ||
| 36 | ,-----------------------------------------------------------------------------------. | ||
| 37 | | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | | ||
| 38 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 39 | | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
| 40 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 41 | | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
| 42 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 43 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 44 | `-----------------------------------------------------------------------------------' | ||
| 45 | ``` | ||
| 46 | |||
| 47 | ### Dvorak | ||
| 48 | |||
| 49 | ``` | ||
| 50 | ,-----------------------------------------------------------------------------------. | ||
| 51 | | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | | ||
| 52 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 53 | | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
| 54 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 55 | | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
| 56 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 57 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 58 | `-----------------------------------------------------------------------------------' | ||
| 59 | ``` | ||
| 60 | |||
| 61 | ### Game | ||
| 62 | |||
| 63 | ``` | ||
| 64 | ,-----------------------------------------------------------------------------------. | ||
| 65 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
| 66 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 67 | | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
| 68 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 69 | | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | | ||
| 70 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 71 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right | | ||
| 72 | `-----------------------------------------------------------------------------------' | ||
| 73 | ``` | ||
| 74 | |||
| 75 | ## Momentarily Layers | ||
| 76 | |||
| 77 | ### Lower | ||
| 78 | |||
| 79 | ``` | ||
| 80 | ,-----------------------------------------------------------------------------------. | ||
| 81 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
| 82 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 83 | | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
| 84 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 85 | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | | ||
| 86 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 87 | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 88 | `-----------------------------------------------------------------------------------' | ||
| 89 | ``` | ||
| 90 | |||
| 91 | ### Raise | ||
| 92 | |||
| 93 | ``` | ||
| 94 | ,-----------------------------------------------------------------------------------. | ||
| 95 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
| 96 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 97 | | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
| 98 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 99 | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| | | ||
| 100 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 101 | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 102 | `-----------------------------------------------------------------------------------' | ||
| 103 | ``` | ||
| 104 | |||
| 105 | ### Adjust (Lower + Raise) | ||
| 106 | |||
| 107 | ``` | ||
| 108 | ,-----------------------------------------------------------------------------------. | ||
| 109 | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
| 110 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 111 | |CPSLCK| Reset|EP_RST| | | | Game |Qwerty|Workmn|Colemk|Dvorak| | | ||
| 112 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 113 | | | | | | | | | | | | | | | ||
| 114 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 115 | | | | | | | | | | | | | | ||
| 116 | `-----------------------------------------------------------------------------------' | ||
| 117 | ``` | ||
| 118 | |||
| 119 | ### Fn (rgblight and backlight layout) | ||
| 120 | |||
| 121 | ``` | ||
| 122 | ,-----------------------------------------------------------------------------------. | ||
| 123 | | | | | | | | | | |RGBVA-|RGBVA+| | | ||
| 124 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 125 | | | | | | | | | | |RGBSA-|RGBSA+|RGBLYR| | ||
| 126 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 127 | | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD| | ||
| 128 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 129 | | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG| | ||
| 130 | `-----------------------------------------------------------------------------------' | ||
| 131 | ``` | ||
| 132 | |||
| 133 | ## One Shot Key Layers | ||
| 134 | |||
| 135 | ### GIT | ||
| 136 | |||
| 137 | Double tap on Alt to activate it. | ||
| 138 | |||
| 139 | ``` | ||
| 140 | ,-----------------------------------------------------------------------------------. | ||
| 141 | | |CHRPCK| SHOW |REBASE|RESET | TAG | | PULL | INIT |REMOTE| PUSH | | | ||
| 142 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 143 | | | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | | | ||
| 144 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 145 | | | | |COMMIT| MV |BRANCH| |MERGE | | | | | | ||
| 146 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 147 | | | | | | | | | | | | | | | ||
| 148 | `-----------------------------------------------------------------------------------' | ||
| 149 | ``` | ||
diff --git a/layouts/community/ortho_4x12/greatwizard/config.h b/layouts/community/ortho_4x12/greatwizard/config.h new file mode 100644 index 000000000..48dab19c1 --- /dev/null +++ b/layouts/community/ortho_4x12/greatwizard/config.h | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #define LAYERS_ORTHO | ||
| 19 | #define LAYER_GAME | ||
| 20 | #define LAYER_GIT | ||
| 21 | #define LAYER_FN | ||
| 22 | |||
| 23 | #define TAP_DANCE_LALT_GIT | ||
| 24 | #define TAP_DANCE_LSFT_CAPS | ||
diff --git a/layouts/community/ortho_4x12/greatwizard/keymap.c b/layouts/community/ortho_4x12/greatwizard/keymap.c new file mode 100644 index 000000000..a895aaf94 --- /dev/null +++ b/layouts/community/ortho_4x12/greatwizard/keymap.c | |||
| @@ -0,0 +1,209 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "greatwizard.h" | ||
| 17 | |||
| 18 | #define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) | ||
| 19 | #define LAYOUT_ortho_4x12_base( \ | ||
| 20 | K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ | ||
| 21 | K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ | ||
| 22 | K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A \ | ||
| 23 | ) \ | ||
| 24 | LAYOUT_ortho_4x12_wrapper( \ | ||
| 25 | KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_BSPC, \ | ||
| 26 | KC_ESC, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ | ||
| 27 | TD_LSCP, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_ENT, \ | ||
| 28 | FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ | ||
| 29 | ) | ||
| 30 | #define LAYOUT_ortho_4x12_base_wrapper(...) LAYOUT_ortho_4x12_base(__VA_ARGS__) | ||
| 31 | |||
| 32 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 33 | |||
| 34 | /* Qwerty | ||
| 35 | * ,-----------------------------------------------------------------------------------. | ||
| 36 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
| 37 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 38 | * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
| 39 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 40 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
| 41 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 42 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 43 | * `-----------------------------------------------------------------------------------' | ||
| 44 | */ | ||
| 45 | [_QWERTY] = LAYOUT_ortho_4x12_base_wrapper( | ||
| 46 | _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, | ||
| 47 | _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT, | ||
| 48 | _______________QWERTY_LEFT3________________, _______________QWERTY_RIGHT3_______________ | ||
| 49 | ), | ||
| 50 | |||
| 51 | /* Workman | ||
| 52 | * ,-----------------------------------------------------------------------------------. | ||
| 53 | * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp | | ||
| 54 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 55 | * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
| 56 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 57 | * | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
| 58 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 59 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 60 | * `-----------------------------------------------------------------------------------' | ||
| 61 | */ | ||
| 62 | [_WORKMAN] = LAYOUT_ortho_4x12_base_wrapper( | ||
| 63 | _______________WORKMAN_LEFT1_______________, _______________WORKMAN_RIGHT1______________, | ||
| 64 | _______________WORKMAN_LEFT2_______________, _______________WORKMAN_RIGHT2______________, KC_QUOT, | ||
| 65 | _______________WORKMAN_LEFT3_______________, _______________WORKMAN_RIGHT3______________ | ||
| 66 | ), | ||
| 67 | |||
| 68 | /* Colemak | ||
| 69 | * ,-----------------------------------------------------------------------------------. | ||
| 70 | * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | | ||
| 71 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 72 | * | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
| 73 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 74 | * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
| 75 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 76 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 77 | * `-----------------------------------------------------------------------------------' | ||
| 78 | */ | ||
| 79 | [_COLEMAK] = LAYOUT_ortho_4x12_base_wrapper( | ||
| 80 | _______________COLEMAK_LEFT1_______________, _______________COLEMAK_RIGHT1______________, | ||
| 81 | _______________COLEMAK_LEFT2_______________, _______________COLEMAK_RIGHT2______________, KC_QUOT, | ||
| 82 | _______________COLEMAK_LEFT3_______________, _______________COLEMAK_RIGHT3______________ | ||
| 83 | ), | ||
| 84 | |||
| 85 | /* Dvorak | ||
| 86 | * ,-----------------------------------------------------------------------------------. | ||
| 87 | * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | | ||
| 88 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 89 | * | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
| 90 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 91 | * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
| 92 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 93 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 94 | * `-----------------------------------------------------------------------------------' | ||
| 95 | */ | ||
| 96 | [_DVORAK] = LAYOUT_ortho_4x12_base_wrapper( | ||
| 97 | _______________DVORAK_LEFT1________________, _______________DVORAK_RIGHT1_______________, | ||
| 98 | _______________DVORAK_LEFT2________________, _______________DVORAK_RIGHT2_______________, KC_SLSH, | ||
| 99 | _______________DVORAK_LEFT3________________, _______________DVORAK_RIGHT3_______________ | ||
| 100 | ), | ||
| 101 | |||
| 102 | /* Game | ||
| 103 | * ,-----------------------------------------------------------------------------------. | ||
| 104 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
| 105 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 106 | * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
| 107 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 108 | * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | | ||
| 109 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 110 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right | | ||
| 111 | * `-----------------------------------------------------------------------------------' | ||
| 112 | */ | ||
| 113 | [_GAME] = LAYOUT_ortho_4x12_wrapper( | ||
| 114 | KC_TAB, _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, KC_BSPC, | ||
| 115 | KC_ESC, _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT, | ||
| 116 | TD_LSCP, _______________QWERTY_LEFT3________________, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, | ||
| 117 | FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT | ||
| 118 | ), | ||
| 119 | |||
| 120 | /* Lower | ||
| 121 | * ,-----------------------------------------------------------------------------------. | ||
| 122 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
| 123 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 124 | * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
| 125 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 126 | * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | | ||
| 127 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 128 | * | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 129 | * `-----------------------------------------------------------------------------------' | ||
| 130 | */ | ||
| 131 | [_LOWER] = LAYOUT_ortho_4x12_wrapper( | ||
| 132 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, | ||
| 133 | KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, | ||
| 134 | _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, | ||
| 135 | _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
| 136 | ), | ||
| 137 | |||
| 138 | /* Raise | ||
| 139 | * ,-----------------------------------------------------------------------------------. | ||
| 140 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
| 141 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 142 | * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
| 143 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 144 | * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| | | ||
| 145 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 146 | * | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 147 | * `-----------------------------------------------------------------------------------' | ||
| 148 | */ | ||
| 149 | [_RAISE] = LAYOUT_ortho_4x12_wrapper( | ||
| 150 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, _______, | ||
| 151 | KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | ||
| 152 | _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, | ||
| 153 | _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
| 154 | ), | ||
| 155 | |||
| 156 | /* Adjust (Lower + Raise) | ||
| 157 | * ,-----------------------------------------------------------------------------------. | ||
| 158 | * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
| 159 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 160 | * |CPSLCK| Reset|EP_RST| | | | Game |Qwerty|Workmn|Colemk|Dvorak| | | ||
| 161 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 162 | * | | | | | | | | | | | | | | ||
| 163 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 164 | * | | | | | | | | | | | | | ||
| 165 | * `-----------------------------------------------------------------------------------' | ||
| 166 | */ | ||
| 167 | [_ADJUST] = LAYOUT_ortho_4x12_wrapper( | ||
| 168 | KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | ||
| 169 | KC_CAPS, RESET, EEP_RST, _______, _______, _______, GAME, QWERTY, WORKMAN, COLEMAK, DVORAK, _______, | ||
| 170 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 171 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 172 | ), | ||
| 173 | |||
| 174 | /* Fn (rgblight and backlight layout) | ||
| 175 | * ,-----------------------------------------------------------------------------------. | ||
| 176 | * | | | | | | | | | |RGBVA-|RGBVA+| | | ||
| 177 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 178 | * | | | | | | | | | |RGBSA-|RGBSA+|RGBLYR| | ||
| 179 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 180 | * | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD| | ||
| 181 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 182 | * | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG| | ||
| 183 | * `-----------------------------------------------------------------------------------' | ||
| 184 | */ | ||
| 185 | [_FN] = LAYOUT_ortho_4x12_wrapper( | ||
| 186 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, | ||
| 187 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_LYR, | ||
| 188 | _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_HUI, RGB_MOD, | ||
| 189 | _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, BL_BRTG | ||
| 190 | ), | ||
| 191 | |||
| 192 | /* GIT | ||
| 193 | * ,-----------------------------------------------------------------------------------. | ||
| 194 | * | |CHRPCK| SHOW |REBASE|RESET | TAG | | PULL | INIT |REMOTE| PUSH | | | ||
| 195 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 196 | * | | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | | | ||
| 197 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 198 | * | | | |COMMIT| MV |BRANCH| |MERGE | | | | | | ||
| 199 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 200 | * | | | | | | | | | | | | | ||
| 201 | * `-----------------------------------------------------------------------------------' | ||
| 202 | */ | ||
| 203 | [_GIT] = LAYOUT_ortho_4x12_wrapper( | ||
| 204 | _______, _________________GIT_LEFT1_________________, _________________GIT_RIGHT1________________, _______, | ||
| 205 | _______, _________________GIT_LEFT2_________________, _________________GIT_RIGHT2________________, _______, | ||
| 206 | _______, _________________GIT_LEFT3_________________, _________________GIT_RIGHT3________________, _______, | ||
| 207 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 208 | ) | ||
| 209 | }; | ||
diff --git a/layouts/community/ortho_4x12/greatwizard/rules.mk b/layouts/community/ortho_4x12/greatwizard/rules.mk new file mode 100644 index 000000000..bbc8f14c2 --- /dev/null +++ b/layouts/community/ortho_4x12/greatwizard/rules.mk | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 2 | TAP_DANCE_ENABLE = yes # Enable Tap Dance | ||
| 3 | |||
| 4 | LAYERS_ORTHO = yes | ||
| 5 | LAYER_GAME = yes | ||
| 6 | LAYER_GIT = yes | ||
| 7 | LAYER_FN = yes | ||
diff --git a/layouts/community/ortho_5x12/greatwizard/README.md b/layouts/community/ortho_5x12/greatwizard/README.md new file mode 100644 index 000000000..4158af5a3 --- /dev/null +++ b/layouts/community/ortho_5x12/greatwizard/README.md | |||
| @@ -0,0 +1,233 @@ | |||
| 1 | # GreatWizard ortholinear 5x12 keymap | ||
| 2 | |||
| 3 | ## Base layers | ||
| 4 | |||
| 5 | ### Qwerty | ||
| 6 | |||
| 7 | ``` | ||
| 8 | ,-----------------------------------------------------------------------------------. | ||
| 9 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 10 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 11 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
| 12 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
| 14 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 15 | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
| 16 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 17 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 18 | `-----------------------------------------------------------------------------------' | ||
| 19 | ``` | ||
| 20 | |||
| 21 | ### Qwerty Programmer | ||
| 22 | |||
| 23 | ``` | ||
| 24 | ,-----------------------------------------------------------------------------------. | ||
| 25 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 26 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 27 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
| 28 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 29 | | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
| 30 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 31 | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
| 32 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 33 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 34 | `-----------------------------------------------------------------------------------' | ||
| 35 | ``` | ||
| 36 | |||
| 37 | ### Workman | ||
| 38 | |||
| 39 | ``` | ||
| 40 | ,-----------------------------------------------------------------------------------. | ||
| 41 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 42 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 43 | | Tab | Q | D | R | W | B | J | F | U | P | ; | Del | | ||
| 44 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 45 | | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
| 46 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 47 | | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
| 48 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 49 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 50 | `-----------------------------------------------------------------------------------' | ||
| 51 | ``` | ||
| 52 | |||
| 53 | ### Workman Programmer | ||
| 54 | |||
| 55 | ``` | ||
| 56 | ,-----------------------------------------------------------------------------------. | ||
| 57 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 58 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 59 | | Tab | Q | D | R | W | B | J | F | U | P | ; | Del | | ||
| 60 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 61 | | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
| 62 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 63 | | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
| 64 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 65 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 66 | `-----------------------------------------------------------------------------------' | ||
| 67 | ``` | ||
| 68 | |||
| 69 | ### Colemak | ||
| 70 | |||
| 71 | ``` | ||
| 72 | ,-----------------------------------------------------------------------------------. | ||
| 73 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 74 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 75 | | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | | ||
| 76 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 77 | | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
| 78 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 79 | | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
| 80 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 81 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 82 | `-----------------------------------------------------------------------------------' | ||
| 83 | ``` | ||
| 84 | |||
| 85 | ### Colemak Programmer | ||
| 86 | |||
| 87 | ``` | ||
| 88 | ,-----------------------------------------------------------------------------------. | ||
| 89 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 90 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 91 | | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | | ||
| 92 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 93 | | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
| 94 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 95 | | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
| 96 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 97 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 98 | `-----------------------------------------------------------------------------------' | ||
| 99 | ``` | ||
| 100 | |||
| 101 | ### Dvorak | ||
| 102 | |||
| 103 | ``` | ||
| 104 | ,-----------------------------------------------------------------------------------. | ||
| 105 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 106 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 107 | | Tab | ' | , | . | P | Y | F | G | C | R | L | Del | | ||
| 108 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 109 | | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
| 110 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 111 | | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
| 112 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 113 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 114 | `-----------------------------------------------------------------------------------' | ||
| 115 | ``` | ||
| 116 | |||
| 117 | ### Dvorak Programmer | ||
| 118 | |||
| 119 | ``` | ||
| 120 | ,-----------------------------------------------------------------------------------. | ||
| 121 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 122 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 123 | | Tab | ' | , | . | P | Y | F | G | C | R | L | Del | | ||
| 124 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 125 | | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
| 126 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 127 | | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
| 128 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 129 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 130 | `-----------------------------------------------------------------------------------' | ||
| 131 | ``` | ||
| 132 | |||
| 133 | ### Game | ||
| 134 | |||
| 135 | ``` | ||
| 136 | ,-----------------------------------------------------------------------------------. | ||
| 137 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 138 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 139 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
| 140 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 141 | | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
| 142 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 143 | | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | | ||
| 144 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 145 | | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right | | ||
| 146 | `-----------------------------------------------------------------------------------' | ||
| 147 | ``` | ||
| 148 | |||
| 149 | ## Momentarily Layers | ||
| 150 | |||
| 151 | ### Lower | ||
| 152 | |||
| 153 | ``` | ||
| 154 | ,-----------------------------------------------------------------------------------. | ||
| 155 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
| 156 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 157 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
| 158 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 159 | | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
| 160 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 161 | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | | ||
| 162 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 163 | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 164 | `-----------------------------------------------------------------------------------' | ||
| 165 | ``` | ||
| 166 | |||
| 167 | ### Raise | ||
| 168 | |||
| 169 | ``` | ||
| 170 | ,-----------------------------------------------------------------------------------. | ||
| 171 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
| 172 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 173 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
| 174 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 175 | | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
| 176 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 177 | | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| | | ||
| 178 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 179 | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 180 | `-----------------------------------------------------------------------------------' | ||
| 181 | ``` | ||
| 182 | |||
| 183 | ### Adjust (Lower + Raise) | ||
| 184 | |||
| 185 | ``` | ||
| 186 | ,-----------------------------------------------------------------------------------. | ||
| 187 | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
| 188 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 189 | | | Reset|EP_RST| | | | | | | | | | | ||
| 190 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 191 | |CPSLCK| | | | | | Game |Qwerty|Workmn|Colemk|Dvorak| | | ||
| 192 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 193 | | | | | | | | |QwertP|WrkmnP|ColmkP|DvorkP| | | ||
| 194 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 195 | | | | | | | | | | | | | | ||
| 196 | `-----------------------------------------------------------------------------------' | ||
| 197 | ``` | ||
| 198 | |||
| 199 | ### Fn (rgblight and backlight layout) | ||
| 200 | |||
| 201 | ``` | ||
| 202 | ,-----------------------------------------------------------------------------------. | ||
| 203 | | | | | | | | | | | | | | | ||
| 204 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 205 | | | | | | | | | | |RGBVA-|RGBVA+| | | ||
| 206 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 207 | | | | | | | | | | |RGBSA-|RGBSA+|RGBLYR| | ||
| 208 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 209 | | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD| | ||
| 210 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 211 | | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG| | ||
| 212 | `-----------------------------------------------------------------------------------' | ||
| 213 | ``` | ||
| 214 | |||
| 215 | ## One Shot Key Layers | ||
| 216 | |||
| 217 | ### GIT | ||
| 218 | |||
| 219 | Double tap on Alt to activate it. | ||
| 220 | |||
| 221 | ``` | ||
| 222 | ,-----------------------------------------------------------------------------------. | ||
| 223 | | | | | | | | | | | | | | | ||
| 224 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 225 | | |CHRPCK| SHOW |REBASE|RESET | TAG | | PULL | INIT |REMOTE| PUSH | | | ||
| 226 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 227 | | | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | | | ||
| 228 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 229 | | | | |COMMIT| MV |BRANCH| |MERGE | | | | | | ||
| 230 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 231 | | | | | | | | | | | | | | | ||
| 232 | `-----------------------------------------------------------------------------------' | ||
| 233 | ``` | ||
diff --git a/layouts/community/ortho_5x12/greatwizard/config.h b/layouts/community/ortho_5x12/greatwizard/config.h new file mode 100644 index 000000000..598a7e56a --- /dev/null +++ b/layouts/community/ortho_5x12/greatwizard/config.h | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #define LAYERS_ORTHO | ||
| 19 | #define LAYERS_PROGRAMMER | ||
| 20 | #define LAYER_GAME | ||
| 21 | #define LAYER_GIT | ||
| 22 | #define LAYER_FN | ||
| 23 | |||
| 24 | #define TAP_DANCE_LALT_GIT | ||
| 25 | #define TAP_DANCE_LSFT_CAPS | ||
diff --git a/layouts/community/ortho_5x12/greatwizard/keymap.c b/layouts/community/ortho_5x12/greatwizard/keymap.c new file mode 100644 index 000000000..77d758b0f --- /dev/null +++ b/layouts/community/ortho_5x12/greatwizard/keymap.c | |||
| @@ -0,0 +1,342 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "greatwizard.h" | ||
| 17 | |||
| 18 | #define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__) | ||
| 19 | #define LAYOUT_ortho_5x12_base( \ | ||
| 20 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ | ||
| 21 | K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ | ||
| 22 | K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ | ||
| 23 | K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A \ | ||
| 24 | ) \ | ||
| 25 | LAYOUT_ortho_5x12_wrapper( \ | ||
| 26 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \ | ||
| 27 | KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_DEL, \ | ||
| 28 | KC_ESC, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ | ||
| 29 | K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_ENT, \ | ||
| 30 | FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ | ||
| 31 | ) | ||
| 32 | #define LAYOUT_ortho_5x12_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__) | ||
| 33 | |||
| 34 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 35 | |||
| 36 | /* Qwerty | ||
| 37 | * ,-----------------------------------------------------------------------------------. | ||
| 38 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 39 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 40 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
| 41 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 42 | * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
| 43 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 44 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
| 45 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 46 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 47 | * `-----------------------------------------------------------------------------------' | ||
| 48 | */ | ||
| 49 | [_QWERTY] = LAYOUT_ortho_5x12_base_wrapper( | ||
| 50 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, | ||
| 51 | _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, | ||
| 52 | _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT, | ||
| 53 | TD_LSCP, _______________QWERTY_LEFT3________________, _______________QWERTY_RIGHT3_______________ | ||
| 54 | ), | ||
| 55 | |||
| 56 | /* Qwerty Programmer | ||
| 57 | * ,-----------------------------------------------------------------------------------. | ||
| 58 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 59 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 60 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
| 61 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 62 | * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
| 63 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 64 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
| 65 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 66 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 67 | * `-----------------------------------------------------------------------------------' | ||
| 68 | */ | ||
| 69 | [_QWERTY_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper( | ||
| 70 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, | ||
| 71 | _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, | ||
| 72 | _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT, | ||
| 73 | PG_LSCP, _______________QWERTY_LEFT3________________, _______________QWERTY_RIGHT3_______________ | ||
| 74 | ), | ||
| 75 | |||
| 76 | /* Workman | ||
| 77 | * ,-----------------------------------------------------------------------------------. | ||
| 78 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 79 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 80 | * | Tab | Q | D | R | W | B | J | F | U | P | ; | Del | | ||
| 81 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 82 | * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
| 83 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 84 | * | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
| 85 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 86 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 87 | * `-----------------------------------------------------------------------------------' | ||
| 88 | */ | ||
| 89 | [_WORKMAN] = LAYOUT_ortho_5x12_base_wrapper( | ||
| 90 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, | ||
| 91 | _______________WORKMAN_LEFT1_______________, _______________WORKMAN_RIGHT1______________, | ||
| 92 | _______________WORKMAN_LEFT2_______________, _______________WORKMAN_RIGHT2______________, KC_QUOT, | ||
| 93 | TD_LSCP, _______________WORKMAN_LEFT3_______________, _______________WORKMAN_RIGHT3______________ | ||
| 94 | ), | ||
| 95 | |||
| 96 | /* Workman Programmer | ||
| 97 | * ,-----------------------------------------------------------------------------------. | ||
| 98 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 99 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 100 | * | Tab | Q | D | R | W | B | J | F | U | P | ; | Del | | ||
| 101 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 102 | * | Esc | A | S | H | T | G | Y | N | E | O | I | ' | | ||
| 103 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 104 | * | Shift| Z | X | M | C | V | K | L | , | . | / |Enter | | ||
| 105 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 106 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 107 | * `-----------------------------------------------------------------------------------' | ||
| 108 | */ | ||
| 109 | [_WORKMAN_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper( | ||
| 110 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, | ||
| 111 | _______________WORKMAN_LEFT1_______________, _______________WORKMAN_RIGHT1______________, | ||
| 112 | _______________WORKMAN_LEFT2_______________, _______________WORKMAN_RIGHT2______________, KC_QUOT, | ||
| 113 | PG_LSCP, _______________WORKMAN_LEFT3_______________, _______________WORKMAN_RIGHT3______________ | ||
| 114 | ), | ||
| 115 | |||
| 116 | /* Colemak | ||
| 117 | * ,-----------------------------------------------------------------------------------. | ||
| 118 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 119 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 120 | * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | | ||
| 121 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 122 | * | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
| 123 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 124 | * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
| 125 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 126 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 127 | * `-----------------------------------------------------------------------------------' | ||
| 128 | */ | ||
| 129 | [_COLEMAK] = LAYOUT_ortho_5x12_base_wrapper( | ||
| 130 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, | ||
| 131 | _______________COLEMAK_LEFT1_______________, _______________COLEMAK_RIGHT1______________, | ||
| 132 | _______________COLEMAK_LEFT2_______________, _______________COLEMAK_RIGHT2______________, KC_QUOT, | ||
| 133 | TD_LSCP, _______________COLEMAK_LEFT3_______________, _______________COLEMAK_RIGHT3______________ | ||
| 134 | ), | ||
| 135 | |||
| 136 | /* Colemak Programmer | ||
| 137 | * ,-----------------------------------------------------------------------------------. | ||
| 138 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 139 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 140 | * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | | ||
| 141 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 142 | * | Esc | A | R | S | T | D | H | N | E | I | O | ' | | ||
| 143 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 144 | * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
| 145 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 146 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 147 | * `-----------------------------------------------------------------------------------' | ||
| 148 | */ | ||
| 149 | [_COLEMAK_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper( | ||
| 150 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, | ||
| 151 | _______________COLEMAK_LEFT1_______________, _______________COLEMAK_RIGHT1______________, | ||
| 152 | _______________COLEMAK_LEFT2_______________, _______________COLEMAK_RIGHT2______________, KC_QUOT, | ||
| 153 | PG_LSCP, _______________COLEMAK_LEFT3_______________, _______________COLEMAK_RIGHT3______________ | ||
| 154 | ), | ||
| 155 | |||
| 156 | /* Dvorak | ||
| 157 | * ,-----------------------------------------------------------------------------------. | ||
| 158 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 159 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 160 | * | Tab | ' | , | . | P | Y | F | G | C | R | L | Del | | ||
| 161 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 162 | * | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
| 163 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 164 | * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
| 165 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 166 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 167 | * `-----------------------------------------------------------------------------------' | ||
| 168 | */ | ||
| 169 | [_DVORAK] = LAYOUT_ortho_5x12_base_wrapper( | ||
| 170 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, | ||
| 171 | _______________DVORAK_LEFT1________________, _______________DVORAK_RIGHT1_______________, | ||
| 172 | _______________DVORAK_LEFT2________________, _______________DVORAK_RIGHT2_______________, KC_SLSH, | ||
| 173 | TD_LSCP, _______________DVORAK_LEFT3________________, _______________DVORAK_RIGHT3_______________ | ||
| 174 | ), | ||
| 175 | |||
| 176 | /* Dvorak Programmer | ||
| 177 | * ,-----------------------------------------------------------------------------------. | ||
| 178 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | | ||
| 179 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 180 | * | Tab | ' | , | . | P | Y | F | G | C | R | L | Del | | ||
| 181 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 182 | * | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
| 183 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 184 | * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
| 185 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 186 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 187 | * `-----------------------------------------------------------------------------------' | ||
| 188 | */ | ||
| 189 | [_DVORAK_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper( | ||
| 190 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, | ||
| 191 | _______________DVORAK_LEFT1________________, _______________DVORAK_RIGHT1_______________, | ||
| 192 | _______________DVORAK_LEFT2________________, _______________DVORAK_RIGHT2_______________, KC_SLSH, | ||
| 193 | PG_LSCP, _______________DVORAK_LEFT3________________, _______________DVORAK_RIGHT3_______________ | ||
| 194 | ), | ||
| 195 | |||
| 196 | /* X Programmer Shifted | ||
| 197 | * ,-----------------------------------------------------------------------------------. | ||
| 198 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
| 199 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 200 | * | | | | | | | | | | | | | | ||
| 201 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 202 | * | | | | | | | | | | | | | | ||
| 203 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 204 | * | | | | | | | | | | | | | | ||
| 205 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 206 | * | | | | | | | | | | | | | ||
| 207 | * `-----------------------------------------------------------------------------------' | ||
| 208 | */ | ||
| 209 | [_PROGRAMMER_SHIFTED] = LAYOUT_ortho_5x12_wrapper( | ||
| 210 | PG_GRV, PG_1, PG_2, PG_3, PG_4, PG_5, PG_6, PG_7, PG_8, PG_9, PG_0, _______, | ||
| 211 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 212 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 213 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 214 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 215 | ), | ||
| 216 | |||
| 217 | /* Game | ||
| 218 | * ,-----------------------------------------------------------------------------------. | ||
| 219 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | ||
| 220 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 221 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | ||
| 222 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 223 | * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | | ||
| 224 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 225 | * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | | ||
| 226 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 227 | * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right | | ||
| 228 | * `-----------------------------------------------------------------------------------' | ||
| 229 | */ | ||
| 230 | [_GAME] = LAYOUT_ortho_5x12_wrapper( | ||
| 231 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, KC_BSPC, | ||
| 232 | KC_TAB, _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, KC_DEL, | ||
| 233 | KC_ESC, _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT, | ||
| 234 | TD_LSCP, _______________QWERTY_LEFT3________________, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, | ||
| 235 | FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT | ||
| 236 | ), | ||
| 237 | |||
| 238 | /* Lower | ||
| 239 | * ,-----------------------------------------------------------------------------------. | ||
| 240 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
| 241 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 242 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | ||
| 243 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 244 | * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | | ||
| 245 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 246 | * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | | ||
| 247 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 248 | * | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 249 | * `-----------------------------------------------------------------------------------' | ||
| 250 | */ | ||
| 251 | [_LOWER] = LAYOUT_ortho_5x12_wrapper( | ||
| 252 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, | ||
| 253 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, | ||
| 254 | KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, | ||
| 255 | _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, | ||
| 256 | _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
| 257 | ), | ||
| 258 | |||
| 259 | /* Raise | ||
| 260 | * ,-----------------------------------------------------------------------------------. | ||
| 261 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
| 262 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 263 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | ||
| 264 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 265 | * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | | ||
| 266 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 267 | * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| | | ||
| 268 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 269 | * | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 270 | * `-----------------------------------------------------------------------------------' | ||
| 271 | */ | ||
| 272 | [_RAISE] = LAYOUT_ortho_5x12_wrapper( | ||
| 273 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, _______, | ||
| 274 | KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, _______, | ||
| 275 | KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | ||
| 276 | _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, | ||
| 277 | _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | ||
| 278 | ), | ||
| 279 | |||
| 280 | /* Adjust (Lower + Raise) | ||
| 281 | * ,-----------------------------------------------------------------------------------. | ||
| 282 | * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
| 283 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 284 | * | | Reset|EP_RST| | | | | | | | | | | ||
| 285 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 286 | * |CPSLCK| | | | | | Game |Qwerty|Workmn|Colemk|Dvorak| | | ||
| 287 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 288 | * | | | | | | | |QwertP|WrkmnP|ColmkP|DvorkP| | | ||
| 289 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 290 | * | | | | | | | | | | | | | ||
| 291 | * `-----------------------------------------------------------------------------------' | ||
| 292 | */ | ||
| 293 | [_ADJUST] = LAYOUT_ortho_5x12_wrapper( | ||
| 294 | KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | ||
| 295 | _______, RESET, EEP_RST, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 296 | KC_CAPS, _______, _______, _______, _______, _______, GAME, QWERTY, WORKMAN, COLEMAK, DVORAK, _______, | ||
| 297 | _______, _______, _______, _______, _______, _______, _______, QWERTYP, WORKMNP, COLEMKP, DVORAKP, _______, | ||
| 298 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 299 | ), | ||
| 300 | |||
| 301 | /* Fn (rgblight and backlight layout) | ||
| 302 | * ,-----------------------------------------------------------------------------------. | ||
| 303 | * | | | | | | | | | | | | | | ||
| 304 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 305 | * | | | | | | | | | |RGBVA-|RGBVA+| | | ||
| 306 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 307 | * | | | | | | | | | |RGBSA-|RGBSA+|RGBLYR| | ||
| 308 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 309 | * | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD| | ||
| 310 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 311 | * | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG| | ||
| 312 | * `-----------------------------------------------------------------------------------' | ||
| 313 | */ | ||
| 314 | [_FN] = LAYOUT_ortho_5x12_wrapper( | ||
| 315 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 316 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, | ||
| 317 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_LYR, | ||
| 318 | _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_HUI, RGB_MOD, | ||
| 319 | _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, BL_BRTG | ||
| 320 | ), | ||
| 321 | |||
| 322 | /* GIT | ||
| 323 | * ,-----------------------------------------------------------------------------------. | ||
| 324 | * | | | | | | | | | | | | | | ||
| 325 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 326 | * | |CHRPCK| SHOW |REBASE|RESET | TAG | | PULL | INIT |REMOTE| PUSH | | | ||
| 327 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 328 | * | | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | | | ||
| 329 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 330 | * | | | |COMMIT| MV |BRANCH| |MERGE | | | | | | ||
| 331 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 332 | * | | | | | | | | | | | | | ||
| 333 | * `-----------------------------------------------------------------------------------' | ||
| 334 | */ | ||
| 335 | [_GIT] = LAYOUT_ortho_5x12_wrapper( | ||
| 336 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 337 | _______, _________________GIT_LEFT1_________________, _________________GIT_RIGHT1________________, _______, | ||
| 338 | _______, _________________GIT_LEFT2_________________, _________________GIT_RIGHT2________________, _______, | ||
| 339 | _______, _________________GIT_LEFT3_________________, _________________GIT_RIGHT3________________, _______, | ||
| 340 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 341 | ) | ||
| 342 | }; | ||
diff --git a/layouts/community/ortho_5x12/greatwizard/rules.mk b/layouts/community/ortho_5x12/greatwizard/rules.mk new file mode 100644 index 000000000..fbff04ed9 --- /dev/null +++ b/layouts/community/ortho_5x12/greatwizard/rules.mk | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 2 | TAP_DANCE_ENABLE = yes # Enable Tap Dance | ||
| 3 | |||
| 4 | LAYERS_ORTHO = yes | ||
| 5 | LAYERS_PROGRAMMER = yes | ||
| 6 | LAYER_GAME = yes | ||
| 7 | LAYER_GIT = yes | ||
| 8 | LAYER_FN = yes | ||
diff --git a/users/greatwizard/config.h b/users/greatwizard/config.h new file mode 100644 index 000000000..2ee9e5090 --- /dev/null +++ b/users/greatwizard/config.h | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #define TAP_CODE_DELAY 5 | ||
| 19 | |||
| 20 | #define RGBLIGHT_ANIMATIONS | ||
| 21 | |||
| 22 | #ifdef TAP_DANCE_ENABLE | ||
| 23 | # define TAPPING_TERM 175 | ||
| 24 | # define PERMISSIVE_HOLD | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #ifdef AUTO_SHIFT_ENABLE | ||
| 28 | # define AUTO_SHIFT_TIMEOUT 135 | ||
| 29 | # define NO_AUTO_SHIFT_SPECIAL | ||
| 30 | # define NO_AUTO_SHIFT_NUMERIC | ||
| 31 | #endif | ||
diff --git a/users/greatwizard/fn.h b/users/greatwizard/fn.h new file mode 100644 index 000000000..f842bf04b --- /dev/null +++ b/users/greatwizard/fn.h | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "greatwizard.h" | ||
| 20 | |||
| 21 | #define FN MO(_FN) | ||
diff --git a/users/greatwizard/game.c b/users/greatwizard/game.c new file mode 100644 index 000000000..eecabfa40 --- /dev/null +++ b/users/greatwizard/game.c | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "game.h" | ||
| 17 | |||
| 18 | bool process_record_game(uint16_t keycode, keyrecord_t *record) { | ||
| 19 | switch (keycode) { | ||
| 20 | case GAME: | ||
| 21 | if (record->event.pressed) { | ||
| 22 | set_single_persistent_default_layer(_GAME); | ||
| 23 | } | ||
| 24 | return false; | ||
| 25 | } | ||
| 26 | return true; | ||
| 27 | } | ||
diff --git a/users/greatwizard/game.h b/users/greatwizard/game.h new file mode 100644 index 000000000..504129b40 --- /dev/null +++ b/users/greatwizard/game.h | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "greatwizard.h" | ||
| 20 | |||
| 21 | bool process_record_game(uint16_t keycode, keyrecord_t *record); | ||
diff --git a/users/greatwizard/git.c b/users/greatwizard/git.c new file mode 100644 index 000000000..4bf68fe69 --- /dev/null +++ b/users/greatwizard/git.c | |||
| @@ -0,0 +1,127 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "git.h" | ||
| 17 | |||
| 18 | bool process_record_git(uint16_t keycode, keyrecord_t *record) { | ||
| 19 | switch (keycode) { | ||
| 20 | case GIT_ADD: | ||
| 21 | if (record->event.pressed) { | ||
| 22 | SEND_STRING("git add "); | ||
| 23 | } | ||
| 24 | return false; | ||
| 25 | case GIT_BRANCH: | ||
| 26 | if (record->event.pressed) { | ||
| 27 | SEND_STRING("git branch "); | ||
| 28 | } | ||
| 29 | return false; | ||
| 30 | case GIT_CHECKOUT: | ||
| 31 | if (record->event.pressed) { | ||
| 32 | SEND_STRING("git checkout "); | ||
| 33 | } | ||
| 34 | return false; | ||
| 35 | case GIT_CHERRYPICK: | ||
| 36 | if (record->event.pressed) { | ||
| 37 | SEND_STRING("git cherry-pick "); | ||
| 38 | } | ||
| 39 | return false; | ||
| 40 | case GIT_COMMIT: | ||
| 41 | if (record->event.pressed) { | ||
| 42 | SEND_STRING("git commit -m \"\""SS_TAP(X_LEFT)); | ||
| 43 | } | ||
| 44 | return false; | ||
| 45 | case GIT_DIFF: | ||
| 46 | if (record->event.pressed) { | ||
| 47 | SEND_STRING("git diff "); | ||
| 48 | } | ||
| 49 | return false; | ||
| 50 | case GIT_FETCH: | ||
| 51 | if (record->event.pressed) { | ||
| 52 | SEND_STRING("git fetch "); | ||
| 53 | } | ||
| 54 | return false; | ||
| 55 | case GIT_GREP: | ||
| 56 | if (record->event.pressed) { | ||
| 57 | SEND_STRING("git grep "); | ||
| 58 | } | ||
| 59 | return false; | ||
| 60 | case GIT_LOG: | ||
| 61 | if (record->event.pressed) { | ||
| 62 | SEND_STRING("git log --decorate --oneline --graph "); | ||
| 63 | } | ||
| 64 | return false; | ||
| 65 | case GIT_INIT: | ||
| 66 | if (record->event.pressed) { | ||
| 67 | SEND_STRING("git init "); | ||
| 68 | } | ||
| 69 | return false; | ||
| 70 | case GIT_MV: | ||
| 71 | if (record->event.pressed) { | ||
| 72 | SEND_STRING("git mv "); | ||
| 73 | } | ||
| 74 | return false; | ||
| 75 | case GIT_MERGE: | ||
| 76 | if (record->event.pressed) { | ||
| 77 | SEND_STRING("git merge "); | ||
| 78 | } | ||
| 79 | return false; | ||
| 80 | case GIT_PUSH: | ||
| 81 | if (record->event.pressed) { | ||
| 82 | SEND_STRING("git push "); | ||
| 83 | } | ||
| 84 | return false; | ||
| 85 | case GIT_PULL: | ||
| 86 | if (record->event.pressed) { | ||
| 87 | SEND_STRING("git pull "); | ||
| 88 | } | ||
| 89 | return false; | ||
| 90 | case GIT_REBASE: | ||
| 91 | if (record->event.pressed) { | ||
| 92 | SEND_STRING("git rebase "); | ||
| 93 | } | ||
| 94 | return false; | ||
| 95 | case GIT_REMOTE: | ||
| 96 | if (record->event.pressed) { | ||
| 97 | SEND_STRING("git remote "); | ||
| 98 | } | ||
| 99 | return false; | ||
| 100 | case GIT_RESET: | ||
| 101 | if (record->event.pressed) { | ||
| 102 | SEND_STRING("git reset "); | ||
| 103 | } | ||
| 104 | return false; | ||
| 105 | case GIT_SHOW: | ||
| 106 | if (record->event.pressed) { | ||
| 107 | SEND_STRING("git show "); | ||
| 108 | } | ||
| 109 | return false; | ||
| 110 | case GIT_STASH: | ||
| 111 | if (record->event.pressed) { | ||
| 112 | SEND_STRING("git stash "); | ||
| 113 | } | ||
| 114 | return false; | ||
| 115 | case GIT_STATUS: | ||
| 116 | if (record->event.pressed) { | ||
| 117 | SEND_STRING("git status "); | ||
| 118 | } | ||
| 119 | return false; | ||
| 120 | case GIT_TAG: | ||
| 121 | if (record->event.pressed) { | ||
| 122 | SEND_STRING("git tag "); | ||
| 123 | } | ||
| 124 | return false; | ||
| 125 | } | ||
| 126 | return true; | ||
| 127 | } | ||
diff --git a/users/greatwizard/git.h b/users/greatwizard/git.h new file mode 100644 index 000000000..c3b4a617d --- /dev/null +++ b/users/greatwizard/git.h | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "greatwizard.h" | ||
| 20 | |||
| 21 | bool process_record_git(uint16_t keycode, keyrecord_t *record); | ||
| 22 | |||
| 23 | #define GIT_BRC GIT_BRANCH | ||
| 24 | #define GIT_CKT GIT_CHECKOUT | ||
| 25 | #define GIT_CPK GIT_CHERRYPICK | ||
| 26 | #define GIT_CMT GIT_COMMIT | ||
| 27 | #define GIT_DIF GIT_DIFF | ||
| 28 | #define GIT_FTC GIT_FETCH | ||
| 29 | #define GIT_GRP GIT_GREP | ||
| 30 | #define GIT_INI GIT_INIT | ||
| 31 | #define GIT_MRG GIT_MERGE | ||
| 32 | #define GIT_PUS GIT_PUSH | ||
| 33 | #define GIT_PUL GIT_PULL | ||
| 34 | #define GIT_RBS GIT_REBASE | ||
| 35 | #define GIT_RMT GIT_REMOTE | ||
| 36 | #define GIT_RST GIT_RESET | ||
| 37 | #define GIT_SHW GIT_SHOW | ||
| 38 | #define GIT_STS GIT_STASH | ||
| 39 | #define GIT_STT GIT_STATUS | ||
diff --git a/users/greatwizard/greatwizard.c b/users/greatwizard/greatwizard.c new file mode 100644 index 000000000..46ee41436 --- /dev/null +++ b/users/greatwizard/greatwizard.c | |||
| @@ -0,0 +1,112 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "greatwizard.h" | ||
| 17 | |||
| 18 | void eeconfig_init_user(void) { | ||
| 19 | user_config_t user_config; | ||
| 20 | user_config.raw = 0; | ||
| 21 | #ifdef RGBLIGHT_ENABLE | ||
| 22 | user_config.rgb_layer_change = true; | ||
| 23 | #endif | ||
| 24 | eeconfig_update_user(user_config.raw); | ||
| 25 | keyboard_init(); | ||
| 26 | } | ||
| 27 | |||
| 28 | void keyboard_post_init_user(void) { | ||
| 29 | #ifdef RGBLIGHT_ENABLE | ||
| 30 | keyboard_post_init_rgb(); | ||
| 31 | #endif | ||
| 32 | } | ||
| 33 | |||
| 34 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 35 | #ifdef RGBLIGHT_ENABLE | ||
| 36 | process_record_rgb(keycode, record); | ||
| 37 | #endif | ||
| 38 | #ifdef LAYER_GAME | ||
| 39 | process_record_game(keycode, record); | ||
| 40 | #endif | ||
| 41 | #ifdef LAYER_GIT | ||
| 42 | process_record_git(keycode, record); | ||
| 43 | #endif | ||
| 44 | #ifdef LAYERS_PROGRAMMER | ||
| 45 | process_record_pg(keycode, record); | ||
| 46 | #endif | ||
| 47 | switch (keycode) { | ||
| 48 | case QWERTY: | ||
| 49 | if (record->event.pressed) { | ||
| 50 | set_single_persistent_default_layer(_QWERTY); | ||
| 51 | } | ||
| 52 | return false; | ||
| 53 | case WORKMAN: | ||
| 54 | if (record->event.pressed) { | ||
| 55 | set_single_persistent_default_layer(_WORKMAN); | ||
| 56 | } | ||
| 57 | return false; | ||
| 58 | case COLEMAK: | ||
| 59 | if (record->event.pressed) { | ||
| 60 | set_single_persistent_default_layer(_COLEMAK); | ||
| 61 | } | ||
| 62 | return false; | ||
| 63 | case DVORAK: | ||
| 64 | if (record->event.pressed) { | ||
| 65 | set_single_persistent_default_layer(_DVORAK); | ||
| 66 | } | ||
| 67 | return false; | ||
| 68 | } | ||
| 69 | return true; | ||
| 70 | } | ||
| 71 | |||
| 72 | #ifdef ENCODER_ENABLE | ||
| 73 | void encoder_update_user(uint8_t index, bool clockwise) { | ||
| 74 | switch (get_highest_layer(layer_state)) { | ||
| 75 | case _QWERTY: | ||
| 76 | #ifdef LAYERS_PROGRAMMER | ||
| 77 | case _PROGRAMMER_SHIFTED: | ||
| 78 | #endif | ||
| 79 | if (clockwise) { | ||
| 80 | tap_code(KC_AUDIO_VOL_UP); | ||
| 81 | } else { | ||
| 82 | tap_code(KC_AUDIO_VOL_DOWN); | ||
| 83 | } | ||
| 84 | break; | ||
| 85 | default: | ||
| 86 | if (clockwise) { | ||
| 87 | tap_code(KC_MEDIA_NEXT_TRACK); | ||
| 88 | } else { | ||
| 89 | tap_code(KC_MEDIA_PREV_TRACK); | ||
| 90 | } | ||
| 91 | break; | ||
| 92 | } | ||
| 93 | } | ||
| 94 | #endif | ||
| 95 | |||
| 96 | layer_state_t layer_state_set_user(layer_state_t state) { | ||
| 97 | state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); | ||
| 98 | #ifdef RGBLIGHT_ENABLE | ||
| 99 | state = layer_state_set_rgb(state); | ||
| 100 | #endif | ||
| 101 | #ifdef LAYERS_ORTHO | ||
| 102 | state = layer_state_set_ortho(state); | ||
| 103 | #endif | ||
| 104 | return state; | ||
| 105 | } | ||
| 106 | |||
| 107 | bool led_update_user(led_t led_state) { | ||
| 108 | #ifdef RGBLIGHT_ENABLE | ||
| 109 | led_update_rgb(led_state); | ||
| 110 | #endif | ||
| 111 | return true; | ||
| 112 | } | ||
diff --git a/users/greatwizard/greatwizard.h b/users/greatwizard/greatwizard.h new file mode 100644 index 000000000..d2e15854a --- /dev/null +++ b/users/greatwizard/greatwizard.h | |||
| @@ -0,0 +1,135 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "keymap_helpers.h" | ||
| 20 | #ifdef TAP_DANCE_ENABLE | ||
| 21 | # include "tap_dances.h" | ||
| 22 | #endif | ||
| 23 | #ifdef RGBLIGHT_ENABLE | ||
| 24 | # include "underglow.h" | ||
| 25 | #endif | ||
| 26 | #ifdef LAYER_FN | ||
| 27 | # include "fn.h" | ||
| 28 | #endif | ||
| 29 | #ifdef LAYER_GAME | ||
| 30 | # include "game.h" | ||
| 31 | #endif | ||
| 32 | #ifdef LAYER_GIT | ||
| 33 | # include "git.h" | ||
| 34 | #endif | ||
| 35 | #ifdef LAYERS_ORTHO | ||
| 36 | # include "ortho.h" | ||
| 37 | #endif | ||
| 38 | #ifdef LAYERS_PROGRAMMER | ||
| 39 | # include "programmer.h" | ||
| 40 | #endif | ||
| 41 | |||
| 42 | typedef union { | ||
| 43 | uint32_t raw; | ||
| 44 | struct { | ||
| 45 | #ifdef RGBLIGHT_ENABLE | ||
| 46 | bool rgb_layer_change : 1; | ||
| 47 | #endif | ||
| 48 | }; | ||
| 49 | } user_config_t; | ||
| 50 | |||
| 51 | enum layers { | ||
| 52 | _QWERTY, | ||
| 53 | _WORKMAN, | ||
| 54 | _COLEMAK, | ||
| 55 | _DVORAK, | ||
| 56 | #ifdef LAYER_GAME | ||
| 57 | _GAME, | ||
| 58 | #endif | ||
| 59 | #ifdef LAYERS_PROGRAMMER | ||
| 60 | _QWERTY_PROGRAMMER, | ||
| 61 | _WORKMAN_PROGRAMMER, | ||
| 62 | _COLEMAK_PROGRAMMER, | ||
| 63 | _DVORAK_PROGRAMMER, | ||
| 64 | _PROGRAMMER_SHIFTED, | ||
| 65 | #endif | ||
| 66 | #ifdef LAYERS_ORTHO | ||
| 67 | _LOWER, | ||
| 68 | _RAISE, | ||
| 69 | _ADJUST, | ||
| 70 | #endif | ||
| 71 | #ifdef LAYER_FN | ||
| 72 | _FN, | ||
| 73 | #endif | ||
| 74 | #ifdef LAYER_GIT | ||
| 75 | _GIT, | ||
| 76 | #endif | ||
| 77 | }; | ||
| 78 | |||
| 79 | enum keycodes { | ||
| 80 | // Persistent layers switcher keys | ||
| 81 | QWERTY = SAFE_RANGE, | ||
| 82 | WORKMAN, | ||
| 83 | COLEMAK, | ||
| 84 | DVORAK, | ||
| 85 | #ifdef LAYER_GAME | ||
| 86 | GAME, | ||
| 87 | #endif | ||
| 88 | #ifdef LAYERS_PROGRAMMER | ||
| 89 | // Workman Programmer | ||
| 90 | QWERTY_PROGRAMMER, | ||
| 91 | WORKMAN_PROGRAMMER, | ||
| 92 | COLEMAK_PROGRAMMER, | ||
| 93 | DVORAK_PROGRAMMER, | ||
| 94 | PROGRAMMER_SHIFTED, | ||
| 95 | PG_GRV, | ||
| 96 | PG_1, | ||
| 97 | PG_2, | ||
| 98 | PG_3, | ||
| 99 | PG_4, | ||
| 100 | PG_5, | ||
| 101 | PG_6, | ||
| 102 | PG_7, | ||
| 103 | PG_8, | ||
| 104 | PG_9, | ||
| 105 | PG_0, | ||
| 106 | #endif | ||
| 107 | // RGB Underglow lights based on the layer key | ||
| 108 | RGB_LAYER, | ||
| 109 | #ifdef LAYER_GIT | ||
| 110 | // GIT commands | ||
| 111 | GIT_ADD, | ||
| 112 | GIT_BRANCH, | ||
| 113 | GIT_CHECKOUT, | ||
| 114 | GIT_CHERRYPICK, | ||
| 115 | GIT_COMMIT, | ||
| 116 | GIT_DIFF, | ||
| 117 | GIT_FETCH, | ||
| 118 | GIT_GREP, | ||
| 119 | GIT_LOG, | ||
| 120 | GIT_INIT, | ||
| 121 | GIT_MV, | ||
| 122 | GIT_MERGE, | ||
| 123 | GIT_PUSH, | ||
| 124 | GIT_PULL, | ||
| 125 | GIT_REBASE, | ||
| 126 | GIT_REMOTE, | ||
| 127 | GIT_RESET, | ||
| 128 | GIT_SHOW, | ||
| 129 | GIT_STASH, | ||
| 130 | GIT_STATUS, | ||
| 131 | GIT_TAG | ||
| 132 | #endif | ||
| 133 | }; | ||
| 134 | |||
| 135 | #define RGB_LYR RGB_LAYER | ||
diff --git a/users/greatwizard/keymap_helpers.h b/users/greatwizard/keymap_helpers.h new file mode 100644 index 000000000..af9f4dfaa --- /dev/null +++ b/users/greatwizard/keymap_helpers.h | |||
| @@ -0,0 +1,61 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | |||
| 20 | #define _______________QWERTY_LEFT1________________ KC_Q, KC_W, KC_E, KC_R, KC_T | ||
| 21 | #define _______________QWERTY_LEFT2________________ KC_A, KC_S, KC_D, KC_F, KC_G | ||
| 22 | #define _______________QWERTY_LEFT3________________ KC_Z, KC_X, KC_C, KC_V, KC_B | ||
| 23 | |||
| 24 | #define _______________QWERTY_RIGHT1_______________ KC_Y, KC_U, KC_I, KC_O, KC_P | ||
| 25 | #define _______________QWERTY_RIGHT2_______________ KC_H, KC_J, KC_K, KC_L, KC_SCLN | ||
| 26 | #define _______________QWERTY_RIGHT3_______________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH | ||
| 27 | |||
| 28 | #define _______________WORKMAN_LEFT1_______________ KC_Q, KC_D, KC_R, KC_W, KC_B | ||
| 29 | #define _______________WORKMAN_LEFT2_______________ KC_A, KC_S, KC_H, KC_T, KC_G | ||
| 30 | #define _______________WORKMAN_LEFT3_______________ KC_Z, KC_X, KC_M, KC_C, KC_V | ||
| 31 | |||
| 32 | #define _______________WORKMAN_RIGHT1______________ KC_J, KC_F, KC_U, KC_P, KC_SCLN | ||
| 33 | #define _______________WORKMAN_RIGHT2______________ KC_Y, KC_N, KC_E, KC_O, KC_I | ||
| 34 | #define _______________WORKMAN_RIGHT3______________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH | ||
| 35 | |||
| 36 | #define _______________COLEMAK_LEFT1_______________ KC_Q, KC_W, KC_F, KC_P, KC_G | ||
| 37 | #define _______________COLEMAK_LEFT2_______________ KC_A, KC_R, KC_S, KC_T, KC_D | ||
| 38 | #define _______________COLEMAK_LEFT3_______________ KC_Z, KC_X, KC_C, KC_V, KC_B | ||
| 39 | |||
| 40 | #define _______________COLEMAK_RIGHT1______________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN | ||
| 41 | #define _______________COLEMAK_RIGHT2______________ KC_H, KC_N, KC_E, KC_I, KC_O | ||
| 42 | #define _______________COLEMAK_RIGHT3______________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH | ||
| 43 | |||
| 44 | #define _______________DVORAK_LEFT1________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y | ||
| 45 | #define _______________DVORAK_LEFT2________________ KC_A, KC_O, KC_E, KC_U, KC_I | ||
| 46 | #define _______________DVORAK_LEFT3________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X | ||
| 47 | |||
| 48 | #define _______________DVORAK_RIGHT1_______________ KC_F, KC_G, KC_C, KC_R, KC_L | ||
| 49 | #define _______________DVORAK_RIGHT2_______________ KC_D, KC_H, KC_T, KC_N, KC_S | ||
| 50 | #define _______________DVORAK_RIGHT3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z | ||
| 51 | |||
| 52 | #define _______________NUMBER_LEFT_________________ KC_1, KC_2, KC_3, KC_4, KC_5 | ||
| 53 | #define _______________NUMBER_RIGHT________________ KC_6, KC_7, KC_8, KC_9, KC_0 | ||
| 54 | |||
| 55 | #define _________________GIT_LEFT1_________________ GIT_CPK, GIT_SHW, GIT_RBS, GIT_RST, GIT_TAG | ||
| 56 | #define _________________GIT_LEFT2_________________ GIT_ADD, GIT_STT, GIT_DIF, GIT_FTC, GIT_GRP | ||
| 57 | #define _________________GIT_LEFT3_________________ _______, _______, GIT_CMT, GIT_MV, GIT_BRC | ||
| 58 | |||
| 59 | #define _________________GIT_RIGHT1________________ _______, GIT_PUL, GIT_INI, GIT_RMT, GIT_PUS | ||
| 60 | #define _________________GIT_RIGHT2________________ GIT_STS, _______, GIT_CKT, GIT_LOG, _______ | ||
| 61 | #define _________________GIT_RIGHT3________________ _______, GIT_MRG, _______, _______, _______ | ||
diff --git a/users/greatwizard/ortho.c b/users/greatwizard/ortho.c new file mode 100644 index 000000000..90b25b930 --- /dev/null +++ b/users/greatwizard/ortho.c | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "ortho.h" | ||
| 17 | |||
| 18 | layer_state_t layer_state_set_ortho(layer_state_t state) { | ||
| 19 | state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); | ||
| 20 | return state; | ||
| 21 | } | ||
diff --git a/users/greatwizard/ortho.h b/users/greatwizard/ortho.h new file mode 100644 index 000000000..7fb5d5e6c --- /dev/null +++ b/users/greatwizard/ortho.h | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "greatwizard.h" | ||
| 20 | |||
| 21 | layer_state_t layer_state_set_ortho(layer_state_t state); | ||
| 22 | |||
| 23 | #define LOWER MO(_LOWER) | ||
| 24 | #define RAISE MO(_RAISE) | ||
diff --git a/users/greatwizard/programmer.c b/users/greatwizard/programmer.c new file mode 100644 index 000000000..e0f71ea06 --- /dev/null +++ b/users/greatwizard/programmer.c | |||
| @@ -0,0 +1,174 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "programmer.h" | ||
| 17 | |||
| 18 | bool process_record_pg(uint16_t keycode, keyrecord_t *record) { | ||
| 19 | switch (keycode) { | ||
| 20 | case QWERTY_PROGRAMMER: | ||
| 21 | if (record->event.pressed) { | ||
| 22 | set_single_persistent_default_layer(_QWERTY_PROGRAMMER); | ||
| 23 | } | ||
| 24 | return false; | ||
| 25 | case WORKMAN_PROGRAMMER: | ||
| 26 | if (record->event.pressed) { | ||
| 27 | set_single_persistent_default_layer(_WORKMAN_PROGRAMMER); | ||
| 28 | } | ||
| 29 | return false; | ||
| 30 | case COLEMAK_PROGRAMMER: | ||
| 31 | if (record->event.pressed) { | ||
| 32 | set_single_persistent_default_layer(_COLEMAK_PROGRAMMER); | ||
| 33 | } | ||
| 34 | return false; | ||
| 35 | case DVORAK_PROGRAMMER: | ||
| 36 | if (record->event.pressed) { | ||
| 37 | set_single_persistent_default_layer(_DVORAK_PROGRAMMER); | ||
| 38 | } | ||
| 39 | return false; | ||
| 40 | case PG_GRV: | ||
| 41 | if (record->event.pressed) { | ||
| 42 | uint8_t current_mods = get_mods(); | ||
| 43 | if (current_mods & MOD_MASK_SHIFT) { | ||
| 44 | clear_mods(); | ||
| 45 | SEND_STRING("`"); | ||
| 46 | set_mods(current_mods); | ||
| 47 | } else { | ||
| 48 | SEND_STRING("~"); | ||
| 49 | } | ||
| 50 | } | ||
| 51 | return false; | ||
| 52 | case PG_1: | ||
| 53 | if (record->event.pressed) { | ||
| 54 | uint8_t current_mods = get_mods(); | ||
| 55 | if (current_mods & MOD_MASK_SHIFT) { | ||
| 56 | clear_mods(); | ||
| 57 | SEND_STRING("1"); | ||
| 58 | set_mods(current_mods); | ||
| 59 | } else { | ||
| 60 | SEND_STRING("!"); | ||
| 61 | } | ||
| 62 | } | ||
| 63 | return false; | ||
| 64 | case PG_2: | ||
| 65 | if (record->event.pressed) { | ||
| 66 | uint8_t current_mods = get_mods(); | ||
| 67 | if (current_mods & MOD_MASK_SHIFT) { | ||
| 68 | clear_mods(); | ||
| 69 | SEND_STRING("2"); | ||
| 70 | set_mods(current_mods); | ||
| 71 | } else { | ||
| 72 | SEND_STRING("@"); | ||
| 73 | } | ||
| 74 | } | ||
| 75 | return false; | ||
| 76 | case PG_3: | ||
| 77 | if (record->event.pressed) { | ||
| 78 | uint8_t current_mods = get_mods(); | ||
| 79 | if (current_mods & MOD_MASK_SHIFT) { | ||
| 80 | clear_mods(); | ||
| 81 | SEND_STRING("3"); | ||
| 82 | set_mods(current_mods); | ||
| 83 | } else { | ||
| 84 | SEND_STRING("#"); | ||
| 85 | } | ||
| 86 | } | ||
| 87 | return false; | ||
| 88 | case PG_4: | ||
| 89 | if (record->event.pressed) { | ||
| 90 | uint8_t current_mods = get_mods(); | ||
| 91 | if (current_mods & MOD_MASK_SHIFT) { | ||
| 92 | clear_mods(); | ||
| 93 | SEND_STRING("4"); | ||
| 94 | set_mods(current_mods); | ||
| 95 | } else { | ||
| 96 | SEND_STRING("$"); | ||
| 97 | } | ||
| 98 | } | ||
| 99 | return false; | ||
| 100 | case PG_5: | ||
| 101 | if (record->event.pressed) { | ||
| 102 | uint8_t current_mods = get_mods(); | ||
| 103 | if (current_mods & MOD_MASK_SHIFT) { | ||
| 104 | clear_mods(); | ||
| 105 | SEND_STRING("5"); | ||
| 106 | set_mods(current_mods); | ||
| 107 | } else { | ||
| 108 | SEND_STRING("%"); | ||
| 109 | } | ||
| 110 | } | ||
| 111 | return false; | ||
| 112 | case PG_6: | ||
| 113 | if (record->event.pressed) { | ||
| 114 | uint8_t current_mods = get_mods(); | ||
| 115 | if (current_mods & MOD_MASK_SHIFT) { | ||
| 116 | clear_mods(); | ||
| 117 | SEND_STRING("6"); | ||
| 118 | set_mods(current_mods); | ||
| 119 | } else { | ||
| 120 | SEND_STRING("^"); | ||
| 121 | } | ||
| 122 | } | ||
| 123 | return false; | ||
| 124 | case PG_7: | ||
| 125 | if (record->event.pressed) { | ||
| 126 | uint8_t current_mods = get_mods(); | ||
| 127 | if (current_mods & MOD_MASK_SHIFT) { | ||
| 128 | clear_mods(); | ||
| 129 | SEND_STRING("7"); | ||
| 130 | set_mods(current_mods); | ||
| 131 | } else { | ||
| 132 | SEND_STRING("&"); | ||
| 133 | } | ||
| 134 | } | ||
| 135 | return false; | ||
| 136 | case PG_8: | ||
| 137 | if (record->event.pressed) { | ||
| 138 | uint8_t current_mods = get_mods(); | ||
| 139 | if (current_mods & MOD_MASK_SHIFT) { | ||
| 140 | clear_mods(); | ||
| 141 | SEND_STRING("8"); | ||
| 142 | set_mods(current_mods); | ||
| 143 | } else { | ||
| 144 | SEND_STRING("*"); | ||
| 145 | } | ||
| 146 | } | ||
| 147 | return false; | ||
| 148 | case PG_9: | ||
| 149 | if (record->event.pressed) { | ||
| 150 | uint8_t current_mods = get_mods(); | ||
| 151 | if (current_mods & MOD_MASK_SHIFT) { | ||
| 152 | clear_mods(); | ||
| 153 | SEND_STRING("9"); | ||
| 154 | set_mods(current_mods); | ||
| 155 | } else { | ||
| 156 | SEND_STRING("("); | ||
| 157 | } | ||
| 158 | } | ||
| 159 | return false; | ||
| 160 | case PG_0: | ||
| 161 | if (record->event.pressed) { | ||
| 162 | uint8_t current_mods = get_mods(); | ||
| 163 | if (current_mods & MOD_MASK_SHIFT) { | ||
| 164 | clear_mods(); | ||
| 165 | SEND_STRING("0"); | ||
| 166 | set_mods(current_mods); | ||
| 167 | } else { | ||
| 168 | SEND_STRING(")"); | ||
| 169 | } | ||
| 170 | } | ||
| 171 | return false; | ||
| 172 | } | ||
| 173 | return true; | ||
| 174 | } | ||
diff --git a/users/greatwizard/programmer.h b/users/greatwizard/programmer.h new file mode 100644 index 000000000..a79aada24 --- /dev/null +++ b/users/greatwizard/programmer.h | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "greatwizard.h" | ||
| 20 | |||
| 21 | bool process_record_pg(uint16_t keycode, keyrecord_t *record); | ||
| 22 | |||
| 23 | #define QWERTYP QWERTY_PROGRAMMER | ||
| 24 | #define WORKMNP WORKMAN_PROGRAMMER | ||
| 25 | #define COLEMKP COLEMAK_PROGRAMMER | ||
| 26 | #define DVORAKP DVORAK_PROGRAMMER | ||
| 27 | #ifdef TAP_DANCE_LSFT_CAPS | ||
| 28 | # define PG_LSCP TD(TD_PG_LSFT_CAPS) | ||
| 29 | #else | ||
| 30 | # define PG_LSCP LM(_PROGRAMMER_SHIFTED, MOD_LSFT) | ||
| 31 | #endif | ||
diff --git a/users/greatwizard/readme.md b/users/greatwizard/readme.md new file mode 100644 index 000000000..bc2df7f9b --- /dev/null +++ b/users/greatwizard/readme.md | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | # GreatWizard Userspace | ||
| 2 | |||
| 3 | ## Features | ||
| 4 | |||
| 5 | - ⌨️ Switchable and persistent base layers: Qwerty, Workman, Workman, Colemak, Dvorak, 🎮 Game | ||
| 6 | - ⌨️ Programmer flavored base layers available | ||
| 7 | - 💃🕺 Tap Dances | ||
| 8 | - 🆙 Auto Shift | ||
| 9 | - 👨💻 One shot keys git commands layer | ||
| 10 | - 🌈 RGB Underglow lights based on the layer | ||
| 11 | - ⚙️ Rotary encoder for volume level and next/previous media | ||
| 12 | - 🗜️ Enable link time optimization | ||
| 13 | |||
| 14 | ## Community Layouts | ||
| 15 | |||
| 16 | - [ortholinear 4x12](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/ortho_4x12/greatwizard) | ||
| 17 | - [ortholinear 5x12](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/ortho_5x12/greatwizard) | ||
| 18 | |||
| 19 | ## Build Options | ||
| 20 | |||
| 21 | ### Layers | ||
| 22 | |||
| 23 | - `LAYERS_ORTHO`: add Lower, Raise and Adjust layers/keycodes | ||
| 24 | - `LAYERS_PROGRAMMER`: add Programmer layers/keycodes | ||
| 25 | - `LAYER_GAME`: add Game layer/keycode | ||
| 26 | - `LAYER_GIT`: add GIT layer/keycode | ||
| 27 | - `LAYER_FN`: add Fn layer/keycode | ||
| 28 | |||
| 29 | ### Tap Dances | ||
| 30 | |||
| 31 | - `TAP_DANCE_LALT_GIT`: Double tap on LGUI to use the one shot keys git commands layer | ||
| 32 | - `TAP_DANCE_LSFT_CAPS`: Double tap on LSHIFT to set Caps Lock | ||
diff --git a/users/greatwizard/rules.mk b/users/greatwizard/rules.mk new file mode 100644 index 000000000..92bb4ccd1 --- /dev/null +++ b/users/greatwizard/rules.mk | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | SRC += greatwizard.c | ||
| 2 | |||
| 3 | ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) | ||
| 4 | SRC += tap_dances.c | ||
| 5 | endif | ||
| 6 | |||
| 7 | ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) | ||
| 8 | SRC += underglow.c | ||
| 9 | endif | ||
| 10 | |||
| 11 | ifeq ($(strip $(LAYER_GAME)), yes) | ||
| 12 | SRC += game.c | ||
| 13 | endif | ||
| 14 | |||
| 15 | ifeq ($(strip $(LAYER_GIT)), yes) | ||
| 16 | SRC += git.c | ||
| 17 | endif | ||
| 18 | |||
| 19 | ifeq ($(strip $(LAYERS_ORTHO)), yes) | ||
| 20 | SRC += ortho.c | ||
| 21 | endif | ||
| 22 | |||
| 23 | ifeq ($(strip $(LAYERS_PROGRAMMER)), yes) | ||
| 24 | SRC += programmer.c | ||
| 25 | endif | ||
| 26 | |||
| 27 | ifneq ($(PLATFORM),CHIBIOS) | ||
| 28 | LTO_ENABLE = yes # Enable link time optimization | ||
| 29 | endif | ||
| 30 | |||
| 31 | AUTO_SHIFT_ENABLE = yes # Autoshift by holding down a key | ||
diff --git a/users/greatwizard/tap_dances.c b/users/greatwizard/tap_dances.c new file mode 100644 index 000000000..c6be995c4 --- /dev/null +++ b/users/greatwizard/tap_dances.c | |||
| @@ -0,0 +1,105 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "tap_dances.h" | ||
| 17 | |||
| 18 | uint8_t cur_dance(qk_tap_dance_state_t *state) { | ||
| 19 | if (state->count == 1) { | ||
| 20 | if (state->interrupted || !state->pressed) return SINGLE_TAP; | ||
| 21 | else return SINGLE_HOLD; | ||
| 22 | } else if (state->count == 2) { | ||
| 23 | if (state->interrupted) return DOUBLE_SINGLE_TAP; | ||
| 24 | else if (state->pressed) return DOUBLE_HOLD; | ||
| 25 | else return DOUBLE_TAP; | ||
| 26 | } | ||
| 27 | if (state->count == 3) { | ||
| 28 | if (state->interrupted || !state->pressed) return TRIPLE_TAP; | ||
| 29 | else return TRIPLE_HOLD; | ||
| 30 | } else return 8; | ||
| 31 | } | ||
| 32 | |||
| 33 | static tap tap_state = { | ||
| 34 | .is_press_action = true, | ||
| 35 | .state = 0 | ||
| 36 | }; | ||
| 37 | |||
| 38 | #ifdef TAP_DANCE_LALT_GIT | ||
| 39 | void lalt_finished(qk_tap_dance_state_t *state, void *user_data) { | ||
| 40 | tap_state.state = cur_dance(state); | ||
| 41 | switch (tap_state.state) { | ||
| 42 | case SINGLE_HOLD: | ||
| 43 | register_mods(MOD_BIT(KC_LALT)); | ||
| 44 | break; | ||
| 45 | case DOUBLE_SINGLE_TAP: | ||
| 46 | case DOUBLE_TAP: | ||
| 47 | set_oneshot_layer(_GIT, ONESHOT_START); | ||
| 48 | break; | ||
| 49 | } | ||
| 50 | } | ||
| 51 | |||
| 52 | void lalt_reset(qk_tap_dance_state_t *state, void *user_data) { | ||
| 53 | switch (tap_state.state) { | ||
| 54 | case SINGLE_HOLD: | ||
| 55 | unregister_mods(MOD_BIT(KC_LALT)); | ||
| 56 | break; | ||
| 57 | case DOUBLE_SINGLE_TAP: | ||
| 58 | case DOUBLE_TAP: | ||
| 59 | clear_oneshot_layer_state(ONESHOT_PRESSED); | ||
| 60 | break; | ||
| 61 | } | ||
| 62 | tap_state.state = 0; | ||
| 63 | } | ||
| 64 | #endif | ||
| 65 | |||
| 66 | #ifdef TAP_DANCE_LSFT_CAPS | ||
| 67 | # ifdef LAYERS_PROGRAMMER | ||
| 68 | void pg_lsft_finished(qk_tap_dance_state_t *state, void *user_data) { | ||
| 69 | tap_state.state = cur_dance(state); | ||
| 70 | switch (tap_state.state) { | ||
| 71 | case SINGLE_HOLD: | ||
| 72 | register_mods(MOD_BIT(KC_LSFT)); | ||
| 73 | layer_on(_PROGRAMMER_SHIFTED); | ||
| 74 | break; | ||
| 75 | case DOUBLE_SINGLE_TAP: | ||
| 76 | case DOUBLE_TAP: | ||
| 77 | tap_code(KC_CAPS); | ||
| 78 | layer_on(_PROGRAMMER_SHIFTED); | ||
| 79 | break; | ||
| 80 | } | ||
| 81 | } | ||
| 82 | |||
| 83 | void pg_lsft_reset(qk_tap_dance_state_t *state, void *user_data) { | ||
| 84 | switch (tap_state.state) { | ||
| 85 | case SINGLE_HOLD: | ||
| 86 | unregister_mods(MOD_BIT(KC_LSFT)); | ||
| 87 | layer_off(_PROGRAMMER_SHIFTED); | ||
| 88 | break; | ||
| 89 | } | ||
| 90 | tap_state.state = 0; | ||
| 91 | } | ||
| 92 | # endif | ||
| 93 | #endif | ||
| 94 | |||
| 95 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 96 | #ifdef TAP_DANCE_LALT_GIT | ||
| 97 | [TD_LALT_GIT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lalt_finished, lalt_reset), | ||
| 98 | #endif | ||
| 99 | #ifdef TAP_DANCE_LSFT_CAPS | ||
| 100 | [TD_LSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), | ||
| 101 | # ifdef LAYERS_PROGRAMMER | ||
| 102 | [TD_PG_LSFT_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, pg_lsft_finished, pg_lsft_reset), | ||
| 103 | # endif | ||
| 104 | #endif | ||
| 105 | }; | ||
diff --git a/users/greatwizard/tap_dances.h b/users/greatwizard/tap_dances.h new file mode 100644 index 000000000..944ae4555 --- /dev/null +++ b/users/greatwizard/tap_dances.h | |||
| @@ -0,0 +1,65 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "greatwizard.h" | ||
| 20 | |||
| 21 | typedef struct { | ||
| 22 | bool is_press_action; | ||
| 23 | uint8_t state; | ||
| 24 | } tap; | ||
| 25 | |||
| 26 | enum { | ||
| 27 | SINGLE_TAP = 1, | ||
| 28 | SINGLE_HOLD, | ||
| 29 | DOUBLE_TAP, | ||
| 30 | DOUBLE_HOLD, | ||
| 31 | DOUBLE_SINGLE_TAP, | ||
| 32 | TRIPLE_TAP, | ||
| 33 | TRIPLE_HOLD | ||
| 34 | }; | ||
| 35 | |||
| 36 | enum { | ||
| 37 | #ifdef TAP_DANCE_LALT_GIT | ||
| 38 | TD_LALT_GIT, | ||
| 39 | #endif | ||
| 40 | #ifdef TAP_DANCE_LSFT_CAPS | ||
| 41 | TD_LSFT_CAPS, | ||
| 42 | # ifdef LAYERS_PROGRAMMER | ||
| 43 | TD_PG_LSFT_CAPS, | ||
| 44 | # endif | ||
| 45 | #endif | ||
| 46 | }; | ||
| 47 | |||
| 48 | uint8_t cur_dance(qk_tap_dance_state_t *state); | ||
| 49 | |||
| 50 | #ifdef TAP_DANCE_LALT_GIT | ||
| 51 | void lalt_finished(qk_tap_dance_state_t *state, void *user_data); | ||
| 52 | void lalt_reset(qk_tap_dance_state_t *state, void *user_data); | ||
| 53 | # define TD_LALT TD(TD_LALT_GIT) | ||
| 54 | #endif | ||
| 55 | |||
| 56 | #ifdef TAP_DANCE_LSFT_CAPS | ||
| 57 | # ifdef LAYERS_PROGRAMMER | ||
| 58 | void pg_lsft_finished(qk_tap_dance_state_t *state, void *user_data); | ||
| 59 | void pg_lsft_reset(qk_tap_dance_state_t *state, void *user_data); | ||
| 60 | # endif | ||
| 61 | #endif | ||
| 62 | |||
| 63 | #ifdef TAP_DANCE_LSFT_CAPS | ||
| 64 | # define TD_LSCP TD(TD_LSFT_CAPS) | ||
| 65 | #endif | ||
diff --git a/users/greatwizard/underglow.c b/users/greatwizard/underglow.c new file mode 100644 index 000000000..db31290ac --- /dev/null +++ b/users/greatwizard/underglow.c | |||
| @@ -0,0 +1,109 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include "underglow.h" | ||
| 17 | |||
| 18 | void keyboard_post_init_rgb(void) { | ||
| 19 | user_config_t user_config; | ||
| 20 | user_config.raw = eeconfig_read_user(); | ||
| 21 | if (!user_config.rgb_layer_change) { | ||
| 22 | return; | ||
| 23 | } | ||
| 24 | rgblight_enable_noeeprom(); | ||
| 25 | rgblight_sethsv_noeeprom_orange(); | ||
| 26 | rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); | ||
| 27 | } | ||
| 28 | |||
| 29 | bool process_record_rgb(uint16_t keycode, keyrecord_t *record) { | ||
| 30 | switch (keycode) { | ||
| 31 | case RGB_LAYER: | ||
| 32 | if (record->event.pressed) { | ||
| 33 | user_config_t user_config; | ||
| 34 | user_config.raw = eeconfig_read_user(); | ||
| 35 | user_config.rgb_layer_change ^= 1; | ||
| 36 | eeconfig_update_user(user_config.raw); | ||
| 37 | if (user_config.rgb_layer_change) { | ||
| 38 | layer_state_set(layer_state); | ||
| 39 | } | ||
| 40 | } | ||
| 41 | return false; | ||
| 42 | case RGB_MODE_FORWARD ... RGB_MODE_RGBTEST: | ||
| 43 | if (record->event.pressed) { | ||
| 44 | user_config_t user_config; | ||
| 45 | user_config.raw = eeconfig_read_user(); | ||
| 46 | if (user_config.rgb_layer_change) { | ||
| 47 | user_config.rgb_layer_change = false; | ||
| 48 | eeconfig_update_user(user_config.raw); | ||
| 49 | } | ||
| 50 | } | ||
| 51 | return true; | ||
| 52 | } | ||
| 53 | return true; | ||
| 54 | } | ||
| 55 | |||
| 56 | layer_state_t layer_state_set_rgb(layer_state_t state) { | ||
| 57 | user_config_t user_config; | ||
| 58 | user_config.raw = eeconfig_read_user(); | ||
| 59 | if (!user_config.rgb_layer_change) { | ||
| 60 | return state; | ||
| 61 | } | ||
| 62 | switch (get_highest_layer(state)) { | ||
| 63 | case _QWERTY: | ||
| 64 | #ifdef LAYERS_PROGRAMMER | ||
| 65 | case _PROGRAMMER_SHIFTED: | ||
| 66 | #endif | ||
| 67 | rgblight_sethsv_noeeprom_orange(); | ||
| 68 | break; | ||
| 69 | #ifdef LAYERS_ORTHO | ||
| 70 | case _LOWER: | ||
| 71 | rgblight_sethsv_noeeprom_red(); | ||
| 72 | break; | ||
| 73 | case _RAISE: | ||
| 74 | rgblight_sethsv_noeeprom_blue(); | ||
| 75 | break; | ||
| 76 | case _ADJUST: | ||
| 77 | rgblight_sethsv_noeeprom_purple(); | ||
| 78 | break; | ||
| 79 | #endif | ||
| 80 | #ifdef LAYER_FN | ||
| 81 | case _FN: | ||
| 82 | rgblight_sethsv_noeeprom_chartreuse(); | ||
| 83 | break; | ||
| 84 | #endif | ||
| 85 | #ifdef LAYER_GIT | ||
| 86 | case _GIT: | ||
| 87 | rgblight_sethsv_noeeprom_teal(); | ||
| 88 | break; | ||
| 89 | #endif | ||
| 90 | default: | ||
| 91 | rgblight_sethsv_noeeprom_white(); | ||
| 92 | break; | ||
| 93 | } | ||
| 94 | return state; | ||
| 95 | } | ||
| 96 | |||
| 97 | bool led_update_rgb(led_t led_state) { | ||
| 98 | user_config_t user_config; | ||
| 99 | user_config.raw = eeconfig_read_user(); | ||
| 100 | if (!user_config.rgb_layer_change) { | ||
| 101 | return true; | ||
| 102 | } | ||
| 103 | if (led_state.caps_lock) { | ||
| 104 | rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); | ||
| 105 | } else { | ||
| 106 | rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); | ||
| 107 | } | ||
| 108 | return true; | ||
| 109 | } | ||
diff --git a/users/greatwizard/underglow.h b/users/greatwizard/underglow.h new file mode 100644 index 000000000..7e073b857 --- /dev/null +++ b/users/greatwizard/underglow.h | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #pragma once | ||
| 17 | |||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "greatwizard.h" | ||
| 20 | |||
| 21 | void keyboard_post_init_rgb(void); | ||
| 22 | bool process_record_rgb(uint16_t keycode, keyrecord_t *record); | ||
| 23 | layer_state_t layer_state_set_rgb(layer_state_t state); | ||
| 24 | bool led_update_rgb(led_t led_state); | ||
