keymap.c (1692B)
1 /* Copyright 2021 gtips 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 // Defines names for use in layer keycodes and the keymap 19 enum layer_names { 20 _BASE, 21 _LOWER, 22 }; 23 24 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 25 /* Base */ 26 [_BASE] = LAYOUT( 27 KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, TG(_LOWER) 28 ), 29 [_LOWER] = LAYOUT( 30 UG_TOGG, LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______ 31 ) 32 }; 33 34 bool encoder_update_user(uint8_t index, bool clockwise) { 35 if (index == 0) { 36 if (IS_LAYER_ON(_LOWER)) { 37 tap_code16((clockwise == true) ? MS_WHLD : MS_WHLU); 38 } else { 39 tap_code((clockwise == true) ? KC_VOLD : KC_VOLU); 40 } 41 } 42 return true; 43 } 44 45 layer_state_t layer_state_set_user(layer_state_t state) { 46 switch (get_highest_layer(state)) { 47 case _LOWER: 48 rgblight_setrgb (RGB_RED); 49 break; 50 default: // for any other layers, or the default layer 51 rgblight_setrgb (RGB_TEAL); 52 break; 53 } 54 return state; 55 }