qmk_firmware

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

keymap.c (3129B)


      1 /*
      2 Copyright 2022 imchipwood && deveth0
      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 
     18 #include QMK_KEYBOARD_H
     19 
     20 // clang-format off
     21 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     22     /*
     23             BASE LAYER - Num Pad
     24     /-----------------------------------------------------`
     25     |             |    7    |    8    |    9    |    -    |
     26     |             |---------|---------|---------|---------|
     27     |             |    4    |    5    |    6    |    +    |
     28     |             |---------|---------|---------|---------|
     29     |             |    1    |    2    |    3    |    *    |
     30     |-------------|---------|---------|---------|---------|
     31     |    Mute     |  TT(1)  |    0    |         |  Enter  |
     32     \-----------------------------------------------------'
     33     */
     34     [0] = LAYOUT(
     35                     KC_P7,      KC_P8,    KC_P9,             KC_PMNS,
     36                     KC_P4,      KC_P5,    KC_P6,             KC_PPLS,
     37                     KC_P1,      KC_P2,    KC_P3,             KC_PAST,
     38         KC_MUTE,    TT(1),      KC_P0,    _______,           KC_ENTER
     39     ),
     40     /*
     41             SUB LAYER  - RGB controls, Modes on encoder
     42     /-----------------------------------------------------`
     43     |             | On/Off  | Bright- | Bright+ |  Reset  |
     44     |             |---------|---------|---------|---------|
     45     |             |         | Hue-    | Hue+    |         |
     46     |             |---------|---------|---------|---------|
     47     |             |         | Sat-    | Sat+    |         |
     48     |-------------|---------|---------|---------|---------|
     49     |             |  TT(1)  | Effect- | Effect+ |         |
     50     \-----------------------------------------------------'
     51     */
     52     [1] = LAYOUT(
     53                     RM_TOGG,    RM_VALD,     RM_VALU,      QK_BOOT,
     54                     KC_NO,      RM_HUED,     RM_HUEU,      KC_NO,
     55                     KC_NO,      RM_SATD,     RM_SATU,      KC_NO,
     56         KC_NO,      _______,    RM_SPDD,     RM_SPDU,      KC_NO
     57     ),
     58 };
     59 // clang-format on
     60 
     61 bool encoder_update_user(uint8_t index, bool clockwise) {
     62     switch (get_highest_layer(layer_state)) {
     63         case 0:
     64             // main layer, volume
     65             if (clockwise) {
     66                 tap_code(KC_VOLU);
     67             } else {
     68                 tap_code(KC_VOLD);
     69             }
     70             break;
     71         default:
     72             // rgb control layer, effects
     73             if (clockwise) {
     74                 rgblight_step();
     75             } else {
     76                 rgblight_step_reverse();
     77             }
     78             break;
     79     }
     80     return false;
     81 }