My Keymap

 avatar
unknown
plain_text
4 years ago
18 kB
21
Indexable
/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

//      ESC      F1       F2       F3       F4       F5       F6       F7       F8       F9       F10      F11      F12	     Prt           Rotary(Mute)
//      ~        1        2        3        4        5        6        7        8        9        0         -       (=)	     BackSpc           Del
//      Tab      Q        W        E        R        T        Y        U        I        O        P        [        ]        \                 PgUp
//      Caps     A        S        D        F        G        H        J        K        L        ;        "                 Enter             PgDn
//      Sh_L              Z        X        C        V        B        N        M        ,        .        ?                 Sh_R     Up       End
//      Ct_L     Win_L    Alt_L                               SPACE                               Alt_R    FN       Ct_R     Left     Down     Right


    // The FN key by default maps to a momentary toggle to layer 1 to provide access to the RESET key (to put the board into bootloader mode). Without
    // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB
    // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI
    // if that's your preference.
    //
    // To put the keyboard in bootloader mode, use FN+backslash. If you accidentally put it into bootloader, you can just unplug the USB cable and
    // it'll be back to normal when you plug it back in.
    [0] = LAYOUT(
        KC_ESC,    LGUI(KC_1),   LGUI(KC_2),   LGUI(KC_3),   LGUI(KC_4),   KC_MRWD, KC_MFFD, KC_COPY,  KC_PSTE,   KC__VOLDOWN,   KC__VOLUP,  KC_BRMD, KC_BRMU,  KC_MPLY,          KC__MUTE,
        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,          RGB_MOD,
        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,          RGB_SAI,
        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,                     RGB_VAI,
        KC_LSFT,   KC_Z,         KC_X,         KC_C,         KC_V,         KC_B,    KC_N,    KC_M,     KC_COMM,   KC_DOT,        KC_SLSH,    KC_RSFT,           KC_UP,            RGB_M_P,
        MO(1),     KC_LALT,      KC_LGUI,                            KC_SPC,                           KC_RGUI,   MO(1),         KC_RCTL,             KC_LEFT,  KC_DOWN,  KC_RGHT
    ),

    [1] = LAYOUT(
        _______, LSG(KC_4), LSG(KC_5), _______, _______,   _______,   _______, _______, _______, _______, _______, _______, _______, _______,          RGB_TOG,
        _______, _______,   _______,   _______, _______,   _______,   _______, _______, _______, _______, _______, _______, _______, _______,          RGB_M_B,
        _______, _______,   KC_UP,     _______, _______,   _______,   _______, _______, _______, _______, _______, _______, _______, RESET,            _______,
        _______, KC_LEFT,   KC_DOWN,   KC_RGHT, _______,   _______,   _______, _______, _______, _______, _______, _______,          LSG(KC_ENT),      LGUI(KC_E),
        _______,            _______,   _______, _______,   _______,   _______, _______, _______, _______, _______, _______,          _______, _______, LGUI(KC_D),
        _______, _______,   _______,                                _______,                            _______, _______, _______,   _______, _______, _______
    ),


};

bool encoder_update_user(uint8_t index, bool clockwise) {
    if (index == 0) {
        switch (biton32(layer_state)) {
            case 1:
                if (clockwise) {
                    rgb_matrix_increase_hue();
                } else {
                    rgb_matrix_decrease_hue();
                }
                break;
                
            default:
                if (clockwise) {
                    tap_code16(KC_VOLU);
                } else {
                    tap_code16(KC_VOLD);
                }
                break;
        }
    }
    return true;
}

void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
    if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) {
        RGB_MATRIX_INDICATOR_SET_COLOR(3, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(67, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(70, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(73, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(76, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(80, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(83, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(87, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(91, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(68, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(71, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(77, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(81, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(84, 255, 0, 0); //capslock key
        RGB_MATRIX_INDICATOR_SET_COLOR(88, 255, 0, 0); //capslock key
    }
    switch(get_highest_layer(layer_state)){  // special handling per layer
                case 1:  //layer one
                    RGB_MATRIX_INDICATOR_SET_COLOR(3, 255, 0, 0);  // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(67, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(70, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(73, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(76, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(80, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(83, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(87, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(91, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(68, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(71, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(77, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(81, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(84, 255, 0, 0); // RED
                    RGB_MATRIX_INDICATOR_SET_COLOR(88, 255, 0, 0); // RED
                    break;
                default:
                    break;
                break;
    }
}


// RGB LED layout

// led number, function of the key

//  67, Side led 01    0, ESC      6, F1       12, F2       18, F3       23, F4       28, F5       34, F6       39, F7       44, F8       50, F9       56, F10      61, F11      66, F12      69, Prt       Rotary(Mute)   68, Side led 12
//  70, Side led 02    1, ~        7, 1        13, 2        19, 3        24, 4        29, 5        35, 6        40, 7        45, 8        51, 9        57, 0        62, -_       78, (=+)     85, BackSpc   72, Del        71, Side led 13
//  73, Side led 03    2, Tab      8, Q        14, W        20. E        25, R        30, T        36, Y        41, U        46, I        52, O        58, P        63, [{       89, ]}       93, \|        75, PgUp       74, Side led 14
//  76, Side led 04    3, Caps     9, A        15, S        21, D        26, F        31, G        37, H        42, J        47, K        53, L        59, ;:       64, '"                    96, Enter     86, PgDn       77, Side led 15
//  80, Side led 05    4, Sh_L     10, Z       16, X        22, C        27, V        32, B        38, N        43, M        48, ,<       54, .<       60, /?                    90, Sh_R     94, Up        82, End        81, Side led 16
//  83, Side led 06    5, Ct_L     11,Win_L    17, Alt_L                              33, SPACE                              49, Alt_R    55, FN                    65, Ct_R     95, Left     97, Down      79, Right      84, Side led 17
//  87, Side led 07                                                                                                                                                                                                        88, Side led 18
//  91, Side led 08


/* Copyright 2020 Christopher Courtney, aka Drashna Jael're  (@drashna) <drashna@live.com>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
//
//#ifdef RGBLIGHT_ENABLE
//
//#    include "drashna.h"
//#    include "rgb_stuff.h"
//#    include "eeprom.h"
//
//bool has_initialized;
//
//void rgblight_sethsv_default_helper(uint8_t index) { rgblight_sethsv_at(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val(), index); }
//
//#    ifdef RGBLIGHT_TWINKLE
//static rgblight_fadeout lights[RGBLED_NUM];
//
///* Handler for fading/twinkling effect */
//void scan_rgblight_fadeout(void) {  // Don't effing change this function .... rgblight_sethsv is supppppper intensive
//    bool litup = false;
//
//    for (uint8_t light_index = 0; light_index < RGBLED_NUM; ++light_index) {
//        if (lights[light_index].enabled && sync_timer_elapsed(lights[light_index].timer) > 10) {
//            rgblight_fadeout *light = &lights[light_index];
//            litup                   = true;
//
//            if (light->life) {
//                light->life -= 1;
//                if (get_highest_layer(layer_state) == 0) {
//                    sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]);
//                }
//                light->timer = sync_timer_read();
//            } else {
//                if (light->enabled && get_highest_layer(layer_state) == 0) {
//                    rgblight_sethsv_default_helper(light_index);
//                }
//                litup = light->enabled = false;
//            }
//        }
//    }
//    if (litup && get_highest_layer(layer_state) == 0) {
//        rgblight_set();
//    }
//}

///* Triggers a LED to fade/twinkle.
// * This function handles the selection of the LED and prepres for it to be used.
// */
//void start_rgb_light(void) {
//    uint8_t indices[RGBLED_NUM];
//    uint8_t indices_count  = 0;
//    uint8_t min_life       = 0xFF;
//    uint8_t min_life_index = -1;
//
//    for (uint8_t index = 0; index < RGBLED_NUM; ++index) {
//        if (lights[index].enabled) {
//            if (min_life_index == -1 || lights[index].life < min_life) {
//                min_life       = lights[index].life;
//                min_life_index = index;
//            }
//            continue;
//        }
//
//        indices[indices_count] = index;
//        ++indices_count;
//    }
//
//    uint8_t light_index;
//    if (!indices_count) {
//        light_index = min_life_index;
//    } else {
//        light_index = indices[rand() % indices_count];
//    }
//
//    rgblight_fadeout *light = &lights[light_index];
//    light->enabled          = true;
//    light->timer            = sync_timer_read();
//    light->life             = 0xC0 + rand() % 0x40;
//
//    light->hue = rgblight_get_hue() + (rand() % 0xB4) - 0x54;
//
//    rgblight_sethsv_at(light->hue, 255, light->life, light_index);
//}
//#    endif
//
//bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) {
//    uint16_t temp_keycode = keycode;
//    // Filter out the actual keycode from MT and LT keys.
//    if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
//        temp_keycode &= 0xFF;
//    }
//
//    switch (temp_keycode) {
//#    ifdef RGBLIGHT_TWINKLE
//        case KC_A ... KC_SLASH:
//        case KC_F1 ... KC_F12:
//        case KC_INSERT ... KC_UP:
//        case KC_KP_SLASH ... KC_KP_DOT:
//        case KC_F13 ... KC_F24:
//        case KC_AUDIO_MUTE ... KC_MEDIA_REWIND:
//            if (record->event.pressed) {
//                start_rgb_light();
//            }
//            break;
//#    endif  // RGBLIGHT_TWINKLE
//    }
//    return true;
//}
//
//#    if defined(RGBLIGHT_STARTUP_ANIMATION)
//static bool     is_enabled;
//static bool     is_rgblight_startup;
//static uint8_t  old_hue;
//static uint16_t rgblight_startup_loop_timer;
//#    endif
//
//void keyboard_post_init_rgb_light(void) {
//#    if defined(RGBLIGHT_STARTUP_ANIMATION)
//    is_enabled = rgblight_is_enabled();
//    if (userspace_config.rgb_layer_change) {
//        rgblight_enable_noeeprom();
//    }
//    if (rgblight_is_enabled()) {
//        layer_state_set_rgb_light(layer_state);
//        old_hue = rgblight_get_hue();
//        rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
//        is_rgblight_startup = true;
//    }
//#    endif
//    layer_state_set_rgb_light(layer_state);
//}
//
//void matrix_scan_rgb_light(void) {
//#    ifdef RGBLIGHT_TWINKLE
//    scan_rgblight_fadeout();
//#    endif  // RGBLIGHT_ENABLE
//
//#    if defined(RGBLIGHT_STARTUP_ANIMATION)
//    if (is_rgblight_startup && is_keyboard_master()) {
//        if (sync_timer_elapsed(rgblight_startup_loop_timer) > 10) {
//            static uint8_t counter;
//            counter++;
//            rgblight_sethsv_noeeprom((counter + old_hue) % 255, 255, 255);
//            rgblight_startup_loop_timer = sync_timer_read();
//            if (counter == 255) {
//                is_rgblight_startup = false;
//                if (!is_enabled) {
//                    rgblight_disable_noeeprom();
//                }
//                if (userspace_config.rgb_layer_change) {
//                    layer_state_set_rgb_light(layer_state);
//                }
//            }
//        }
//    }
//#    endif
//}
//
//void rgblight_set_hsv_and_mode(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode) {
//    rgblight_sethsv_noeeprom(hue, sat, val);
//    // wait_us(175);  // Add a slight delay between color and mode to ensure it's processed correctly
//    rgblight_mode_noeeprom(mode);
//}
//
//layer_state_t layer_state_set_rgb_light(layer_state_t state) {
//#    ifdef RGBLIGHT_ENABLE
//    if (userspace_config.rgb_layer_change) {
//        switch (get_highest_layer(state | default_layer_state)) {
//            case _MACROS: // mouse
//                if (!layer_state_cmp(state, _GAMEPAD) && !layer_state_cmp(state, _DIABLO)) {
//                    rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_BREATHING + 3);
//                }
//                break;
//            case _MEDIA:
//                rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_KNIGHT + 1);
//                break;
//            case _GAMEPAD:
//                rgblight_set_hsv_and_mode(HSV_ORANGE, RGBLIGHT_MODE_SNAKE + 2);
//                break;
//            case _DIABLO:
//                rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_BREATHING + 3);
//                break;
//            case _RAISE:
//                rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_BREATHING + 3);
//                break;
//            case _LOWER:
//                rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3);
//                break;
//            case _ADJUST:
//                rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_KNIGHT + 2);
//                break;
//            case _COLEMAK:
//                rgblight_set_hsv_and_mode(HSV_MAGENTA, RGBLIGHT_MODE_STATIC_LIGHT);
//                break;
//            case _DVORAK:
//                rgblight_set_hsv_and_mode(HSV_SPRINGGREEN, RGBLIGHT_MODE_STATIC_LIGHT);
//                break;
//            case _WORKMAN:
//                rgblight_set_hsv_and_mode(HSV_GOLDENROD, RGBLIGHT_MODE_STATIC_LIGHT);
//                break;
//            case _NORMAN:
//                rgblight_set_hsv_and_mode(HSV_CORAL, RGBLIGHT_MODE_STATIC_LIGHT);
//                break;
//            case _MALTRON:
//                rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_STATIC_LIGHT);
//                break;
//            case _EUCALYN:
//                rgblight_set_hsv_and_mode(HSV_PINK, RGBLIGHT_MODE_STATIC_LIGHT);
//                break;
//            case _CARPLAX:
//                rgblight_set_hsv_and_mode(HSV_BLUE, RGBLIGHT_MODE_STATIC_LIGHT);
//                break;
//            default:
//                rgblight_set_hsv_and_mode(HSV_CYAN, RGBLIGHT_MODE_STATIC_LIGHT);
//                break;
//        }
//    }
//#    endif  // RGBLIGHT_ENABLE
//
//    return state;
//}
//
//#endif
Editor is loading...