qmk_firmware

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

keymap.c (2201B)


      1 // Copyright 2022 Sergey Vlasov (@sigprof)
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 
      4 #include QMK_KEYBOARD_H
      5 
      6 // Defines names for use in layer keycodes and the keymap
      7 enum layer_names {
      8     _BASE,
      9     _RGB,
     10 };
     11 
     12 // Shorter defines for some QMK keycodes (to keep the keymap aligned)
     13 #define U_LTESC LT(_RGB, KC_ESC)
     14 
     15 // clang-format off
     16 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     17     // Base
     18     [_BASE] = LAYOUT_top(
     19             KC_HOME,      KC_MUTE,     KC_MPLY,
     20         KC_1,    KC_2,    KC_3,    KC_4,    KC_5,
     21         KC_6,    KC_7,    KC_8,    KC_9,    KC_0,
     22         U_LTESC, KC_TAB,  KC_SPC,  KC_BSPC, KC_ENT
     23     ),
     24 
     25     // RGB configuration
     26     [_RGB] = LAYOUT_top(
     27             RGB_M_P,      RGB_M_B,     RGB_M_R,
     28         RM_NEXT, RM_HUEU, RM_SATU, RM_VALU, RM_SPDU,
     29         RM_PREV, RM_HUED, RM_SATD, RM_VALD, RM_SPDD,
     30         KC_TRNS, RM_TOGG, RGB_M_P, RGB_M_B, RGB_M_R
     31     ),
     32 };
     33 // clang-format on
     34 
     35 bool encoder_update_user(uint8_t index, bool clockwise) {
     36     uint8_t layer = get_highest_layer(layer_state | default_layer_state);
     37 
     38     switch (index) {
     39         case 0:
     40             // Left encoder
     41             if (layer == _RGB) {
     42                 if (clockwise) {
     43                     rgblight_increase_hue();
     44                 } else {
     45                     rgblight_decrease_hue();
     46                 }
     47             } else {
     48                 tap_code(clockwise ? KC_PGDN : KC_PGUP);
     49             }
     50             break;
     51 
     52         case 1:
     53             // Center encoder
     54             if (layer == _RGB) {
     55                 if (clockwise) {
     56                     rgblight_increase_sat();
     57                 } else {
     58                     rgblight_decrease_sat();
     59                 }
     60             } else {
     61                 tap_code_delay(clockwise ? KC_VOLU : KC_VOLD, 10);
     62             }
     63             break;
     64 
     65         case 2:
     66             // Right encoder
     67             if (layer == _RGB) {
     68                 if (clockwise) {
     69                     rgblight_increase_val();
     70                 } else {
     71                     rgblight_decrease_val();
     72                 }
     73             } else {
     74                 tap_code_delay(clockwise ? KC_MNXT : KC_MPRV, 10);
     75             }
     76             break;
     77     }
     78     return false;
     79 }