qmk_firmware

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

keymap.c (15480B)


      1 /* Copyright 2020 Pylon
      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 3 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 
     17 #include QMK_KEYBOARD_H
     18 
     19     /* Due to how the matrix is setup - the right split backspace key is, for firmware purposes the key to the right of up arrow, which on the actual keyboard is a blocker*/
     20 
     21 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     22    [0] = LAYOUT_all(
     23 	KC_MUTE, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 ,                  KC_MPRV, KC_MPLY,  KC_MNXT ,          KC_INS , KC_HOME, KC_PGUP,
     24     KC_ESC , KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  , KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11 , KC_F12 ,                  KC_PSCR, KC_SCRL,  KC_PAUSE,          KC_DEL , KC_END , KC_PGDN,
     25     KC_GRV , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_MINS, KC_EQL ,  KC_BSPC, KC_BSPC,        KC_CALC,           KC_NUM  , KC_PSLS, KC_PAST, KC_PMNS,
     26     KC_TAB , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_LBRC, KC_RBRC,  KC_BSLS,                 UG_TOGG,           KC_P7   , KC_P8  , KC_P9  , KC_PEQL,
     27     KC_CAPS, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   , KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_QUOT, KC_ENT ,  KC_ENT ,                 KC_MSEL,           KC_P4   , KC_P5  , KC_P6  , KC_PPLS,
     28     KC_LSFT, KC_BSLS, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,                           KC_UP  ,           KC_P1   , KC_P2  , KC_P3  , KC_PENT,
     29     KC_LCTL, KC_LGUI, KC_LALT,          KC_SPC , KC_SPC , KC_SPC ,                   KC_RALT, KC_APP , KC_RCTL,                          KC_LEFT,  KC_DOWN, KC_RGHT,  KC_P0   , KC_P0  , KC_PDOT
     30     ),
     31 
     32    [1] = LAYOUT_all(
     33 
     34     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     35     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     36     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______, _______,        _______,           _______ , _______, _______, _______,
     37     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     38     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     39     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                           _______,           _______ , _______, _______, _______,
     40     _______,_______,_______ ,         _______ ,_______ ,_______ ,                  _______ ,_______ ,_______ ,                          _______,  _______, _______,  _______ , _______, _______
     41     ),
     42 
     43    [2] = LAYOUT_all(
     44 
     45     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     46     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     47     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______, _______,        _______,           _______ , _______, _______, _______,
     48     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     49     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     50     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                           _______,           _______ , _______, _______, _______,
     51     _______,_______,_______ ,         _______ ,_______ ,_______ ,                  _______ ,_______ ,_______ ,                          _______,  _______, _______,  _______ , _______, _______
     52     ),
     53 
     54    [3] = LAYOUT_all(
     55 
     56     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     57     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     58     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______, _______,        _______,           _______ , _______, _______, _______,
     59     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     60     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     61     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                           _______,           _______ , _______, _______, _______,
     62     _______,_______,_______ ,         _______ ,_______ ,_______ ,                  _______ ,_______ ,_______ ,                          _______,  _______, _______,  _______ , _______, _______
     63     ),
     64 
     65    [4] = LAYOUT_all(
     66 
     67     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     68     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     69     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______, _______,        _______,           _______ , _______, _______, _______,
     70     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     71     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     72     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                           _______,           _______ , _______, _______, _______,
     73     _______,_______,_______ ,         _______ ,_______ ,_______ ,                  _______ ,_______ ,_______ ,                          _______,  _______, _______,  _______ , _______, _______
     74     ),
     75 
     76    [5] = LAYOUT_all(
     77 
     78     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     79     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     80     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______, _______,        _______,           _______ , _______, _______, _______,
     81     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     82     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     83     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                           _______,           _______ , _______, _______, _______,
     84     _______,_______,_______ ,         _______ ,_______ ,_______ ,                  _______ ,_______ ,_______ ,                          _______,  _______, _______,  _______ , _______, _______
     85     ),
     86 
     87    [6] = LAYOUT_all(
     88 
     89     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     90     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
     91     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______, _______,        _______,           _______ , _______, _______, _______,
     92     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     93     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
     94     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                           _______,           _______ , _______, _______, _______,
     95     _______,_______,_______ ,         _______ ,_______ ,_______ ,                  _______ ,_______ ,_______ ,                          _______,  _______, _______,  _______ , _______, _______
     96     ),
     97 
     98    [7] = LAYOUT_all(
     99 
    100     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
    101     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                  _______, _______,  _______ ,          _______, _______, _______,
    102     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______, _______,        _______,           _______ , _______, _______, _______,
    103     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
    104     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,  _______,                 _______,           _______ , _______, _______, _______,
    105     _______,_______,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,                           _______,           _______ , _______, _______, _______,
    106     _______,_______,_______ ,         _______ ,_______ ,_______ ,                  _______ ,_______ ,_______ ,                          _______,  _______, _______,  _______ , _______, _______
    107     ),
    108 };
    109 
    110 uint8_t go_to_layer = 0; /* Used for the layer changing code for the encoder below */
    111 
    112 bool encoder_update_user(uint8_t index, bool clockwise) {
    113     if (matrix_is_on(6, 10)) { /* Use the knob to change layers when holding down Menu key. Unfortunately using layers to initiate this behavior is not possible.  */
    114         if (clockwise) {
    115 
    116             layer_off(go_to_layer);
    117 
    118             if(go_to_layer<7) {
    119                 go_to_layer++;
    120             }
    121             else {
    122                 go_to_layer=0;
    123             }
    124 
    125             layer_on(go_to_layer);
    126 
    127         }
    128 
    129         else {
    130 
    131             layer_off(go_to_layer);
    132 
    133             /* update go_to_layer*/
    134             if(go_to_layer>0) {
    135                 go_to_layer--;
    136             }
    137             else {
    138                 go_to_layer=7;
    139             }
    140 
    141             layer_on(go_to_layer);
    142 
    143         }
    144 	}
    145 
    146 	else { /* normal operation as volume knob */
    147         if (clockwise) {
    148             tap_code(KC_VOLU);
    149 		}
    150         else {
    151             tap_code(KC_VOLD);
    152 		}
    153 	}
    154     return true;
    155 }
    156 
    157 /*Default layer is white.*/
    158 /*Remember to also change the color in keyboard_post_init_kb in boston.c to make the startup color match the layer 0 color */
    159 const rgblight_segment_t PROGMEM layer_0[] = RGBLIGHT_LAYER_SEGMENTS(
    160     {0, 4, 0, 0, 128}  /*White*/
    161 );
    162 
    163 const rgblight_segment_t PROGMEM layer_1[] = RGBLIGHT_LAYER_SEGMENTS(
    164     {0, 4, 0, 255, 128} /*Red*/
    165 );
    166 
    167 const rgblight_segment_t PROGMEM layer_2[] = RGBLIGHT_LAYER_SEGMENTS(
    168     {0, 4, 21, 255, 128} /*Orange*/
    169 );
    170 
    171 const rgblight_segment_t PROGMEM layer_3[] = RGBLIGHT_LAYER_SEGMENTS(
    172     {0, 4, 43, 255, 128} /*Yellow*/
    173 );
    174 
    175 const rgblight_segment_t PROGMEM layer_4[] = RGBLIGHT_LAYER_SEGMENTS(
    176     {0, 4, 75, 255, 128} /*Green*/
    177 );
    178 
    179 const rgblight_segment_t PROGMEM layer_5[] = RGBLIGHT_LAYER_SEGMENTS(
    180     {0, 4, 135, 255, 128} /*Teal*/
    181 );
    182 
    183 const rgblight_segment_t PROGMEM layer_6[] = RGBLIGHT_LAYER_SEGMENTS(
    184     {0, 4, 160, 255, 128} /*Blue*/
    185 );
    186 
    187 const rgblight_segment_t PROGMEM layer_7[] = RGBLIGHT_LAYER_SEGMENTS(
    188     {0, 4, 190, 255, 128} /*Magenta*/
    189 );
    190 
    191 const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
    192     layer_0,
    193     layer_1,
    194     layer_2,
    195     layer_3,
    196     layer_4,
    197     layer_5,
    198     layer_6,
    199     layer_7
    200 );
    201 
    202 void keyboard_post_init_user(void) {
    203     // Enable the LED layers
    204     rgblight_layers = my_rgb_layers;
    205 }
    206 
    207 layer_state_t layer_state_set_user(layer_state_t state) {
    208     // Both layers will light up if both kb layers are active
    209     rgblight_set_layer_state(0, layer_state_cmp(state, 0));
    210     rgblight_set_layer_state(1, layer_state_cmp(state, 1));
    211     rgblight_set_layer_state(2, layer_state_cmp(state, 2));
    212     rgblight_set_layer_state(3, layer_state_cmp(state, 3));
    213     rgblight_set_layer_state(4, layer_state_cmp(state, 4));
    214     rgblight_set_layer_state(5, layer_state_cmp(state, 5));
    215     rgblight_set_layer_state(6, layer_state_cmp(state, 6));
    216     rgblight_set_layer_state(7, layer_state_cmp(state, 7));
    217     return state;
    218 }
    219 
    220 bool led_update_user(led_t led_state) {
    221     rgblight_set_layer_state(0, true);
    222     return true;
    223 }