qmk_firmware

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

keymap.c (5525B)


      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 #include "navpad_prefs.h"
     19 
     20 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     21   [_BASE] =LAYOUT (
     22     KC_PSCR,   KC_SCRL,   KC_PAUS,   KC_MUTE,
     23     KC_INS,    KC_HOME,   KC_PGUP,   KC_ESC,    KC_PSLS,    KC_PAST,   KC_PMNS,                     KC_6,       KC_7,       KC_8,       KC_9,       KC_0,       KC_DEL,
     24     KC_DEL,    KC_END,    KC_PGDN,   KC_P7,     KC_P8,      KC_P9,     KC_PPLS,                     KC_Y,       KC_U,       KC_I,       KC_O,       KC_P,       KC_BSPC,
     25                                      KC_P4,     KC_P5,      KC_P6,     KC_PPLS,                     KC_H,       KC_J,       KC_K,       KC_L,       KC_SCLN,    KC_QUOT,
     26     S(KC_TAB), KC_UP,     KC_TAB,    KC_P1,     KC_P2,      KC_P3,     LT(1,KC_PENT), KC_RBRC, 	    KC_N,       KC_M,       KC_COMM,    KC_DOT,     KC_SLSH,    KC_ENT,
     27     KC_LEFT,   KC_DOWN,   KC_RGHT,   KC_P0,     KC_P0,      KC_PDOT,   LT(1,KC_PENT), LT(1,KC_SPC),LT(2,KC_ENT),KC_NO,      KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT
     28   ),
     29 
     30   [_FN1] =LAYOUT (
     31     QK_BOOT,   EE_CLR,    KC_NO,     KC_NO,
     32     KC_NO,     KC_NO,     KC_NO,     KC_NUM,    KC_QUOT,   KC_PEQL,    KC_NO,                       KC_1,       KC_2,       KC_3,       KC_4,       KC_5,       KC_DEL,
     33     KC_CAPS,   KC_NUM,    KC_SCRL,   S(KC_9),   KC_UP,     S(KC_0),    S(KC_SPC),                   KC_Q,       KC_W,       KC_E,       KC_R,       KC_T,       KC_BSPC,
     34                                      KC_LEFT,   MS_BTN3,   KC_RGHT,    S(KC_SPC),                   KC_A,       KC_S,       KC_D,       KC_F,       KC_G,       KC_QUOT,
     35     KC_TRNS,   S(KC_ENT), KC_TRNS,   KC_BSPC,   KC_DOWN,   KC_DEL,     KC_TRNS,       KC_RBRC,      KC_Z,       KC_X,       KC_C,       KC_V,       KC_B,       KC_ENT,
     36     MS_BTN1,   KC_ENT,    S(KC_SPC),LT(2,KC_SPC),KC_SPC,   KC_COMM,    KC_TRNS,       KC_TRNS,      KC_TRNS,    KC_NO,      KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT
     37   ),
     38 
     39   [_FN2] =LAYOUT (
     40     UG_TOGG,   UG_NEXT,   UG_PREV,   KC_NO,
     41     UG_HUEU,   UG_SATU,   UG_VALU,   KC_NO,     KC_NO,     KC_NO,     KC_NO,                        KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
     42     UG_HUED,   UG_SATD,   UG_VALD,   KC_NO,     KC_NO,     KC_NO,     KC_NO,                        KC_BSPC,    KC_DEL,     KC_NO,      KC_NO,      KC_NO,      KC_NO,
     43                                      KC_NO,     KC_NO,     KC_NO,     KC_NO,                        KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_NO,      KC_NO,
     44     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,         KC_RBRC,       KC_HOME,    KC_PGDN,    KC_PGUP,    KC_END,     KC_NO,      KC_NO,
     45     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,         KC_TRNS,       KC_TRNS,    KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO
     46   ),
     47 
     48   [_FN3] =LAYOUT (
     49     KC_NO,     KC_NO,     KC_NO,     KC_NO,
     50     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,                        KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
     51     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     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,      KC_NO,      KC_NO,      KC_NO,
     53     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,         KC_RBRC,       KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO,
     54     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,     KC_NO,         KC_TRNS,       KC_TRNS,    KC_NO,      KC_NO,      KC_NO,      KC_NO,      KC_NO
     55   )
     56 };
     57 
     58 #ifdef RGBLIGHT_LAYERS
     59 # define LOCK_COLOR_1 HSV_TEAL
     60 
     61 const rgblight_segment_t PROGMEM navpad_capslock[] = RGBLIGHT_LAYER_SEGMENTS(
     62   {4,  1, LOCK_COLOR_1},
     63   {15, 1, LOCK_COLOR_1}
     64 );
     65 
     66 const rgblight_segment_t PROGMEM navpad_numlock[] = RGBLIGHT_LAYER_SEGMENTS(
     67   {0,  1, LOCK_COLOR_1},
     68   {5,  1, LOCK_COLOR_1},
     69   {14, 1, LOCK_COLOR_1}
     70 );
     71 
     72 const rgblight_segment_t PROGMEM navpad_scrolllock[] = RGBLIGHT_LAYER_SEGMENTS(
     73   {2,  1, LOCK_COLOR_1},
     74   {6,  1, LOCK_COLOR_1},
     75   {26, 1, LOCK_COLOR_1}
     76 );
     77 
     78 bool led_update_user(led_t led_state) {
     79     rgblight_set_layer_state(0, host_keyboard_led_state().caps_lock);
     80     rgblight_set_layer_state(1, (host_keyboard_led_state().num_lock && IS_LAYER_ON(_BASE)));
     81     rgblight_set_layer_state(2, host_keyboard_led_state().scroll_lock);
     82     return true;
     83 }
     84 
     85 const rgblight_segment_t* const PROGMEM navpad_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
     86   navpad_capslock,
     87   navpad_numlock,
     88   navpad_scrolllock
     89 );
     90 
     91 void keyboard_post_init_user(void) {
     92     rgblight_sethsv_noeeprom(HSV_WHITE);
     93     // Enable the LED layers
     94     rgblight_layers = navpad_rgb_layers;
     95 }
     96 #endif