keymap.c (1753B)
1 /* Copyright 2019 Yiancar 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 QMK_KEYBOARD_H 17 18 uint8_t led_state = 1; 19 20 // Defines the keycodes used by our macros in process_record_user 21 enum custom_keycodes { 22 MECHBOARDURL = SAFE_RANGE, 23 QMKURL, 24 MKUK, 25 LEDCHANGE 26 }; 27 28 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 29 [0] = LAYOUT( /* Base */ 30 MECHBOARDURL, QMKURL, MKUK, LEDCHANGE 31 ), 32 }; 33 34 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 35 switch (keycode) { 36 case MECHBOARDURL: 37 if (record->event.pressed) { 38 SEND_STRING("https://mechboards.co.uk/" SS_TAP(X_ENTER)); 39 } 40 break; 41 case QMKURL: 42 if (record->event.pressed) { 43 SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); 44 } 45 break; 46 case MKUK: 47 if (record->event.pressed) { 48 SEND_STRING("MKUK4 was amazing!"); 49 } 50 break; 51 case LEDCHANGE: 52 if (record->event.pressed) { 53 led_state = !led_state; 54 gpio_write_pin(F6, led_state); 55 } 56 break; 57 } 58 return true; 59 } 60 61 void matrix_init_user(void) { 62 gpio_set_pin_output(F6); 63 gpio_write_pin_low(F6); 64 }