diff options
Diffstat (limited to 'keyboards/40percentclub/gherkin/keymaps/stevexyz/keymap.c')
| -rw-r--r-- | keyboards/40percentclub/gherkin/keymaps/stevexyz/keymap.c | 246 |
1 files changed, 246 insertions, 0 deletions
diff --git a/keyboards/40percentclub/gherkin/keymaps/stevexyz/keymap.c b/keyboards/40percentclub/gherkin/keymaps/stevexyz/keymap.c new file mode 100644 index 000000000..188c1cd5d --- /dev/null +++ b/keyboards/40percentclub/gherkin/keymaps/stevexyz/keymap.c | |||
| @@ -0,0 +1,246 @@ | |||
| 1 | /* Copyright 2019 Stefano Marago' | ||
| 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 | |||
| 17 | |||
| 18 | /* | ||
| 19 | * see jj40/stevexyz for more information | ||
| 20 | */ | ||
| 21 | |||
| 22 | |||
| 23 | #include QMK_KEYBOARD_H | ||
| 24 | |||
| 25 | enum layers { | ||
| 26 | LAYER_HOME, // home base layer | ||
| 27 | LAYER_FUNC, // function keys and cursors | ||
| 28 | LAYER_NUMSYM, // numbers and other characters | ||
| 29 | LAYER_SYST, // media, mouse and other system keys | ||
| 30 | LAYER_ARROWPAD, | ||
| 31 | LAYER_NUMPAD, | ||
| 32 | LAYER_MEDIAPAD, | ||
| 33 | }; | ||
| 34 | |||
| 35 | enum custom_keycodes { | ||
| 36 | CK_TRIPLEZERO = SAFE_RANGE, | ||
| 37 | }; | ||
| 38 | |||
| 39 | |||
| 40 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 41 | |||
| 42 | /* | ||
| 43 | * LEGEND: | ||
| 44 | * | ||
| 45 | * ,--------------------------------. | ||
| 46 | * | Top row: shifted character | | ||
| 47 | * | Central row: standard char | | ||
| 48 | * | Bottom row: hold modifier | | ||
| 49 | * `--------------------------------' | ||
| 50 | * | ||
| 51 | * "____" means free to be assigned | ||
| 52 | * | ||
| 53 | */ | ||
| 54 | |||
| 55 | /* Qwerty Home Layer | ||
| 56 | * ,---------------------------------------------------------------------. | ||
| 57 | * | | | | | | | | | | | | ||
| 58 | * | Q | W | E | R | T | Y | U | I | O | P | | ||
| 59 | * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 60 | * |------+------+------+------+-------------+------+------+------+------| | ||
| 61 | * | | | | | | | | | | | | ||
| 62 | * | A | S | D | F | G | H | J | K | L | Enter| | ||
| 63 | * | Shift| FnNav|NumSym| AltGr| OSkey| OSkey| AltGr| FnNav|NumSym| Shift| | ||
| 64 | * '------+------+------+------+------+------|------+------+------+------' | ||
| 65 | * | | | | | | | | | | ||
| 66 | * | Z | X | C | V | B | N | M | Space| | ||
| 67 | * | Ctrl | Alt | FnNav|NumSym| Shift| Alt | Ctrl | Shift| | ||
| 68 | * '-------------------------------------------------------' | ||
| 69 | */ | ||
| 70 | [LAYER_HOME] = LAYOUT_ortho_3x10( | ||
| 71 | LT(LAYER_ARROWPAD, KC_Q), LT(LAYER_NUMPAD, KC_W), LT(LAYER_MEDIAPAD, KC_E), KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, | ||
| 72 | MT(MOD_LSFT, KC_A), LT(LAYER_FUNC, KC_S), LT(LAYER_NUMSYM, KC_D), MT(MOD_RALT, KC_F), MT(MOD_LGUI, KC_G), MT(MOD_RGUI, KC_H), MT(MOD_RALT, KC_J), LT(LAYER_FUNC, KC_K), LT(LAYER_NUMSYM, KC_L), MT(MOD_RSFT, KC_ENT), | ||
| 73 | XXXXXXX, MT(MOD_LCTL, KC_Z), MT(MOD_LALT, KC_X), LT(LAYER_FUNC, KC_C), LT(LAYER_NUMSYM, KC_V), MT(MOD_LSFT, KC_B), MT(MOD_LALT, KC_N), MT(MOD_RCTL, KC_M), MT(MOD_RSFT, KC_SPC), XXXXXXX ), | ||
| 74 | |||
| 75 | /* Function and Navigation Layer | ||
| 76 | * ,---------------------------------------------------------------------. | ||
| 77 | * | | | | | | | | | | | | ||
| 78 | * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | | ||
| 79 | * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 80 | * |------+------+------+------+-------------+------+------+------+------| | ||
| 81 | * | | | | | | | | | | | | ||
| 82 | * | ESC | Home | PgDn | PgUp | End | Left | Down | Up | Right| Baksp| | ||
| 83 | * | Shift| ____ |SysLay| AltGr| OSkey| OSkey| AltGr| ____ |SysLay| Shift| | ||
| 84 | * '------+------+------+------+------+------|------+------+------+------' | ||
| 85 | * | | | | | | | | | | ||
| 86 | * | ____ | ____ | | ____ | ____ | ____ | ____ | ____ | | ||
| 87 | * | Ctrl | Alt | ____ |SysLay| Shift| Alt | Ctrl | Shift| | ||
| 88 | * '-------------------------------------------------------' | ||
| 89 | */ | ||
| 90 | [LAYER_FUNC] = LAYOUT_ortho_3x10( | ||
| 91 | KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, | ||
| 92 | MT(MOD_LSFT, KC_ESC), KC_HOME, LT(LAYER_SYST, KC_PGDN), MT(MOD_RALT, KC_PGUP), MT(MOD_LGUI, KC_END), MT(MOD_RGUI, KC_LEFT), MT(MOD_RALT, KC_DOWN), KC_UP, LT(LAYER_SYST, KC_RGHT), MT(MOD_RSFT, KC_BSPC), | ||
| 93 | XXXXXXX, KC_LCTL, KC_LALT, KC_NO, MO(LAYER_SYST), KC_LSFT, KC_LALT, KC_RCTL, MT(MOD_RSFT, KC_SPC), XXXXXXX ), | ||
| 94 | |||
| 95 | /* Number and Symbols Layer | ||
| 96 | * ,---------------------------------------------------------------------. | ||
| 97 | * | ! | @ | # | $ | % | ^ | & | * | ( | ) | | ||
| 98 | * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | ||
| 99 | * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 100 | * |------+------+------+------+-------------+------+------+------+------| | ||
| 101 | * | | ~ | _ | + | { | } | | | : | " | | | ||
| 102 | * | TAB | ` | - | = | [ | ] | \ | ; | ' | Del | | ||
| 103 | * | Shift|SysLay| ____ | AltGr| OSkey| OSkey| AltGr|SysLay| ____ | Shift| | ||
| 104 | * ' -----+------+------+------+------+------|------+------+------+------' | ||
| 105 | * | | | | | < | > | ? | | | ||
| 106 | * | ____ | ____ | ____ | | , | . | / | ____ | | ||
| 107 | * | Ctrl | Alt |SysLay| ____ | Shift| Alt | Ctrl | Shift| | ||
| 108 | * '-------------------------------------------------------' | ||
| 109 | */ | ||
| 110 | [LAYER_NUMSYM] = LAYOUT_ortho_3x10( | ||
| 111 | KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, | ||
| 112 | MT(MOD_LSFT, KC_TAB), LT(LAYER_SYST, KC_GRV), KC_MINS, MT(MOD_RALT, KC_EQL), MT(MOD_LGUI, KC_LBRC), MT(MOD_RGUI, KC_RBRC), MT(MOD_RALT, KC_BSLS), LT(LAYER_SYST, KC_SCLN), KC_QUOT, MT(MOD_RSFT, KC_DEL), | ||
| 113 | XXXXXXX, KC_LCTL, KC_LALT, MO(LAYER_SYST), KC_NO, MT(MOD_LSFT, KC_COMM), MT(MOD_LALT, KC_DOT), MT(MOD_RCTL, KC_SLSH), MT(MOD_RSFT, KC_SPC), XXXXXXX ), | ||
| 114 | |||
| 115 | /* System Layer | ||
| 116 | * ,---------------------------------------------------------------------. | ||
| 117 | * | | | | | | | | | | | | ||
| 118 | * | F11 | F12 | Play | Next |MsWhlU|MsBtn1|OSMenu|SysReq|MsBtn2|Backsp| | ||
| 119 | * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 120 | * |------+------+------+------+-------------+------+------+------+------| | ||
| 121 | * | | | | | | | | | | | | ||
| 122 | * | Caps | Mute | Vol- | Vol+ |MsWhlD|MsLeft|MSDown| MsUp |MsRigh| Ins | | ||
| 123 | * | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | Shift| | ||
| 124 | * '------+------+------+------+------+------|------+------+------+------' | ||
| 125 | * | | | | | | | | | | ||
| 126 | * | ____ | ____ | | |PrnScr|ScrLck|Pause | ____ | | ||
| 127 | * | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | Shift| | ||
| 128 | * '-------------------------------------------------------' | ||
| 129 | * simplified view (for media and mouse there are dedicated layers) | ||
| 130 | * ,---------------------------------------------------------------------. | ||
| 131 | * | | | | | | | | | | | | ||
| 132 | * | F11 | F12 | | | | |OSMenu|SysReq| |Backsp| | ||
| 133 | * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 134 | * |------+------+------+------+-------------+------+------+------+------| | ||
| 135 | * | | | | | | | | | | | | ||
| 136 | * | Caps | | | | | | | | | Ins | | ||
| 137 | * | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | Shift| | ||
| 138 | * '------+------+------+------+------+------|------+------+------+------+ | ||
| 139 | * | | | | | | | | | | ||
| 140 | * | | | | |PrnScr|ScrLck|Pause | | | ||
| 141 | * | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | Shift| | ||
| 142 | * '-------------------------------------------------------' | ||
| 143 | */ | ||
| 144 | [LAYER_SYST] = LAYOUT_ortho_3x10( | ||
| 145 | KC_F11, KC_F12, KC_MPLY, KC_MNXT, KC_MS_WH_UP, KC_MS_BTN1, KC_APP, KC_SYSREQ, KC_MS_BTN2, KC_BSPC, | ||
| 146 | MT(MOD_LSFT, KC_CAPS), KC_MUTE, KC_VOLD, KC_VOLU, KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, MT(MOD_RSFT, KC_INS), | ||
| 147 | XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, MT(MOD_RSFT, KC_SPC), XXXXXXX ), | ||
| 148 | |||
| 149 | /* ArrowPad (mod su Q) /------mouse-------\ /-----cursor-------\ | ||
| 150 | * ,---------------------------------------------------------------------. | ||
| 151 | * | | | | | | | | | | | | ||
| 152 | * | | | |MsBtn1| MsUp |MsBtn2| Home | Up | PgUp |Backsp| | ||
| 153 | * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 154 | * |------+------+------+------+-------------+------+------+------+------| | ||
| 155 | * | | | | | | | | | | | | ||
| 156 | * | | | |MsLeft|MsDown|MsRigh| Left | Down | Right| Enter| | ||
| 157 | * | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 158 | * '------+------+------+------+------+------|------+------+------+------' | ||
| 159 | * | | | | | | | | | | ||
| 160 | * | | |MsWhlU|MsDown|MsWhlD| End | Down | PdDn | | ||
| 161 | * | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 162 | * '-------------------------------------------------------' | ||
| 163 | */ | ||
| 164 | [LAYER_ARROWPAD] = LAYOUT_ortho_3x10( | ||
| 165 | KC_NO, KC_NO, KC_NO, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_HOME, KC_UP, KC_PGUP, KC_BSPC, | ||
| 166 | KC_LSFT, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_ENT, | ||
| 167 | XXXXXXX, KC_LCTL, KC_LALT, KC_MS_WH_UP, KC_MS_DOWN, KC_MS_WH_DOWN, KC_END, KC_DOWN, KC_PGDN, XXXXXXX ), | ||
| 168 | |||
| 169 | /* NumPad (mod su W) | ||
| 170 | * ,---------------------------------------------------------------------. | ||
| 171 | * | | | | | | | | | | | | ||
| 172 | * | | | / | * | - |Backsp| 7 | 8 | 9 | 0 | | ||
| 173 | * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 174 | * |------+------+------+------+-------------+------+------+------+------| | ||
| 175 | * | | | | | | | | | | | | ||
| 176 | * | | | | = | + | . | 4 | 5 | 6 | Enter| | ||
| 177 | * | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 178 | * '------+------+------+------+------+------|------+------+------+------' | ||
| 179 | * | | | | | | | | | | ||
| 180 | * | | | | Tab | , | 1 | 2 | 3 | | ||
| 181 | * | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 182 | * '-------------------------------------------------------' | ||
| 183 | */ | ||
| 184 | [LAYER_NUMPAD] = LAYOUT_ortho_3x10( | ||
| 185 | KC_NO, KC_NO, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_BSPC, KC_7, KC_8, KC_9, KC_0, | ||
| 186 | KC_LSFT, KC_NO, KC_NO, KC_KP_EQUAL, KC_KP_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ENT, | ||
| 187 | XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_TAB, KC_COMM, KC_1, KC_2, KC_3, XXXXXXX ), | ||
| 188 | |||
| 189 | /* MediaPad (mod su E) | ||
| 190 | * ,---------------------------------------------------------------------. | ||
| 191 | * | | | | | | | | | | | | ||
| 192 | * | | | | | | | | Vol+ | | | | ||
| 193 | * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 194 | * |------+------+------+------+-------------+------+------+------+------| | ||
| 195 | * | | | | | | | | | | | | ||
| 196 | * | | | | | | | Prev | Play | Next | | | ||
| 197 | * | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 198 | * '------+------+------+------+------+------|------+------+------+------' | ||
| 199 | * | | | | | | | | | | ||
| 200 | * | | | | | | Mute | Vol- | | | ||
| 201 | * | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ | | ||
| 202 | * '-------------------------------------------------------' | ||
| 203 | */ | ||
| 204 | [LAYER_MEDIAPAD] = LAYOUT_ortho_3x10( | ||
| 205 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU, KC_NO, KC_NO, | ||
| 206 | KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, | ||
| 207 | XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_NO, XXXXXXX ), | ||
| 208 | |||
| 209 | }; | ||
| 210 | |||
| 211 | |||
| 212 | void matrix_init_user(void) { | ||
| 213 | // eeconfig_init(); // reset keyboard to a standard default state; useful when new releases messup with eeprom values | ||
| 214 | // set num lock on at start (for numonly layer to work) | ||
| 215 | if (!host_keyboard_led_state().num_lock) { | ||
| 216 | tap_code(KC_NUMLOCK); | ||
| 217 | } | ||
| 218 | } | ||
| 219 | |||
| 220 | void matrix_scan_user(void) { | ||
| 221 | } | ||
| 222 | |||
| 223 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 224 | switch (keycode) { | ||
| 225 | case CK_TRIPLEZERO: | ||
| 226 | if (record->event.pressed) { | ||
| 227 | SEND_STRING("000"); | ||
| 228 | } // else { when released... } | ||
| 229 | break; | ||
| 230 | } | ||
| 231 | return true; | ||
| 232 | }; | ||
| 233 | |||
| 234 | void keyboard_pre_init_user(void) { | ||
| 235 | // Call the keyboard pre init code. | ||
| 236 | |||
| 237 | // Set our LED pins as output | ||
| 238 | setPinOutput(D5); | ||
| 239 | setPinOutput(B0); | ||
| 240 | } | ||
| 241 | |||
| 242 | bool led_update_user(led_t led_state) { | ||
| 243 | writePin(D5, !led_state.num_lock); | ||
| 244 | writePin(B0, !led_state.caps_lock); | ||
| 245 | return false; // prevent keyboard from processing state | ||
| 246 | } | ||
