qmk_firmware

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

keymap.c (3647B)


      1 /* Copyright 2021 yushakobo
      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 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     19   [_BASE] =LAYOUT (
     20     KC_PSCR,   KC_SCRL,   KC_PAUS,   KC_MUTE,
     21     KC_INS,    KC_HOME,   KC_PGUP,   KC_ESC,    KC_PSLS,    KC_PAST,   KC_PMNS,
     22     KC_DEL,    KC_END,    KC_PGDN,   KC_P7,     KC_P8,      KC_P9,     KC_PPLS,
     23                                      KC_P4,     KC_P5,      KC_P6,     KC_PPLS,
     24     S(KC_TAB), KC_UP,     KC_TAB,    KC_P1,     KC_P2,      KC_P3,     LT(1,KC_PENT),
     25     KC_LEFT,   KC_DOWN,   KC_RGHT,   KC_P0,     TAP_00,     KC_PDOT,   LT(1,KC_PENT)
     26   ),
     27 
     28   [_FN1] =LAYOUT (
     29     QK_BOOT,   EE_CLR,    KC_NO,     KC_NO,
     30     KC_NO,     KC_NO,     KC_NO,     KC_NUM,    KC_QUOT,   KC_PEQL,    KC_NO,
     31     KC_CAPS,   KC_NUM,    KC_SCRL,   S(KC_9),   KC_UP,     S(KC_0),    S(KC_SPC),
     32                                      KC_LEFT,   MS_BTN3,   KC_RGHT,    S(KC_SPC),
     33     KC_TRNS,   S(KC_ENT), KC_TRNS,   KC_BSPC,   KC_DOWN,   KC_DEL,     KC_TRNS,
     34     MS_BTN1,   KC_ENT,    S(KC_SPC),LT(2,KC_SPC),KC_SPC,   KC_COMM,    KC_TRNS
     35   ),
     36 
     37   [_FN2] =LAYOUT (
     38     UG_TOGG,   UG_NEXT,   UG_PREV,   KC_NO,
     39     UG_HUEU,   UG_SATU,   UG_VALU,   KC_NO,     KC_NO,     KC_NO,     KC_NO,
     40     UG_HUED,   UG_SATD,   UG_VALD,   KC_NO,     KC_NO,     KC_NO,     KC_NO,
     41                                      KC_NO,     KC_NO,     KC_NO,     KC_NO,
     42     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
     43     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO
     44   ),
     45 
     46   [_FN3] =LAYOUT (
     47     KC_NO,     KC_NO,     KC_NO,     KC_NO,
     48     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
     49     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
     50                                      KC_NO,     KC_NO,     KC_NO,     KC_NO,
     51     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,
     52     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO
     53   )
     54 };
     55 
     56 #ifdef RGBLIGHT_LAYERS
     57 # define LOCK_COLOR_1 HSV_TEAL
     58 
     59 const rgblight_segment_t PROGMEM navpad_capslock[] = RGBLIGHT_LAYER_SEGMENTS(
     60   {4, 1, LOCK_COLOR_1}
     61 );
     62 
     63 const rgblight_segment_t PROGMEM navpad_numlock[] = RGBLIGHT_LAYER_SEGMENTS(
     64   {0, 1, LOCK_COLOR_1},
     65   {5, 1, LOCK_COLOR_1}
     66 );
     67 
     68 const rgblight_segment_t PROGMEM navpad_scrolllock[] = RGBLIGHT_LAYER_SEGMENTS(
     69   {2, 1, LOCK_COLOR_1},
     70   {6, 1, LOCK_COLOR_1}
     71 );
     72 
     73 
     74 bool led_update_user(led_t led_state) {
     75     rgblight_set_layer_state(0, host_keyboard_led_state().caps_lock);
     76     rgblight_set_layer_state(1, (host_keyboard_led_state().num_lock && IS_LAYER_ON(_BASE)));
     77     rgblight_set_layer_state(2, host_keyboard_led_state().scroll_lock);
     78     return true;
     79 }
     80 
     81 const rgblight_segment_t* const PROGMEM navpad_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
     82   navpad_capslock,
     83   navpad_numlock,
     84   navpad_scrolllock
     85 );
     86 
     87 void keyboard_post_init_user(void) {
     88     rgblight_sethsv_noeeprom(HSV_WHITE);
     89     // Enable the LED layers
     90     rgblight_layers = navpad_rgb_layers;
     91 }
     92 #endif