qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

keymap.c (2166B)


      1 /*
      2 Copyright 2019 Yiancar
      3 
      4 This program is free software: you can redistribute it and/or modify
      5 it under the terms of the GNU General Public License as published by
      6 the Free Software Foundation, either version 2 of the License, or
      7 (at your option) any later version.
      8 
      9 This program is distributed in the hope that it will be useful,
     10 but WITHOUT ANY WARRANTY; without even the implied warranty of
     11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12 GNU General Public License for more details.
     13 
     14 You should have received a copy of the GNU General Public License
     15 along with this program.  If not, see <http://www.gnu.org/licenses/>.
     16 */
     17 #include QMK_KEYBOARD_H
     18 
     19 // Defines the keycodes used by our macros in process_record_user
     20 enum custom_keycodes {
     21   DCAPS = SAFE_RANGE,
     22 };
     23 
     24 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     25   [0] = LAYOUT( /* Base */
     26     KC_1,     KC_2,  KC_3,  KC_4,  KC_5,  KC_6,  KC_7,  KC_8,  KC_9,     KC_0,    KC_SCLN,  KC_CIRC,  KC_BSPC,  KC_ENT,     KC_0,  KC_1,  KC_2,  KC_3,  KC_4,
     27     KC_TAB,   KC_Q,  KC_W,  KC_E,  KC_R,  KC_T,  KC_Z,  KC_U,  KC_I,     KC_O,    KC_P,     KC_RBRC,  KC_PLUS,              KC_5,  KC_6,  KC_7,  KC_8,  KC_9,
     28     DCAPS,    KC_A,  KC_S,  KC_D,  KC_F,  KC_G,  KC_H,  KC_J,  KC_K,     KC_L,    KC_BSLS,  KC_RBRC,  KC_DLR,   KC_EQL,     KC_0,  KC_1,  KC_2,  KC_3,  KC_4,
     29     KC_LSFT,  KC_Y,  KC_X,  KC_C,  KC_V,  KC_B,  KC_N,  KC_M,  KC_COMM,  KC_DOT,  KC_MINS,                                  KC_5,  KC_6,  KC_7,  KC_8,  KC_9,
     30                                           KC_SPC
     31   ),
     32 };
     33 
     34 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     35   switch (keycode) {
     36     case DCAPS:
     37       if (record->event.pressed) {
     38         // When keycode DCAPS is pressed.
     39         // This is needed for mac.
     40         tap_code(KC_CAPS);
     41       } else {
     42         // When keycode DCAPS is released.
     43       }
     44       break;
     45   }
     46   return true;
     47 }
     48 
     49 void matrix_init_user(void) {
     50   gpio_set_pin_output(B0);
     51   gpio_write_pin_low(B0);
     52 }
     53 
     54 bool led_update_user(led_t led_state) {
     55     if (led_state.caps_lock) {
     56         gpio_write_pin_high(B0);
     57     } else {
     58         gpio_write_pin_low(B0);
     59     }
     60     return false;
     61 }