add keymap and rgb sleep setting for gmmk2
This commit is contained in:
1
keyboards/gmmk/gmmk2/p96/iso/keymaps/matze/config.h
Normal file
1
keyboards/gmmk/gmmk2/p96/iso/keymaps/matze/config.h
Normal file
@@ -0,0 +1 @@
|
|||||||
|
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||||
120
keyboards/gmmk/gmmk2/p96/iso/keymaps/matze/keymap.c
Normal file
120
keyboards/gmmk/gmmk2/p96/iso/keymaps/matze/keymap.c
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
/* 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 <limits.h>
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
#define _BL 0
|
||||||
|
#define _FL 1
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Keymap _BL: Base Layer (Default Layer)
|
||||||
|
*/
|
||||||
|
[_BL] = LAYOUT(
|
||||||
|
QK_GESC, 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_DEL, KC_PSCR, KC_INS, KC_HOME, KC_END,
|
||||||
|
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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
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_ENT, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||||
|
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_NUHS, KC_P4, KC_P5, KC_P6,
|
||||||
|
KC_LSFT, KC_NUBS, 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,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
|
||||||
|
|
||||||
|
/* Keymap _FL: Function Layer
|
||||||
|
*/
|
||||||
|
[_FL] = LAYOUT(
|
||||||
|
QK_BOOT, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MRWD, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, RM_SATU, RM_SATD, RM_SPDD, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______,
|
||||||
|
_______, UC_WIN, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_NEXT, _______, _______)
|
||||||
|
};
|
||||||
|
|
||||||
|
#define VAL_ROOT 255, 12, 12
|
||||||
|
#define VAL_WEIS 255, 255, 255
|
||||||
|
#define CO_ROOT {VAL_ROOT}
|
||||||
|
#define CO_WEIS {VAL_WEIS}
|
||||||
|
#define CAPS_EN_CO VAL_ROOT
|
||||||
|
#define CAPS_IDX 54
|
||||||
|
#define NUM_EN_CO VAL_ROOT
|
||||||
|
#define NUM_IDX 32
|
||||||
|
#define SIDECO_ROOT 255, 4, 4
|
||||||
|
#define SIDECO_OFF 0, 0, 0
|
||||||
|
#define LEFT_SIDE_LED_START 100
|
||||||
|
#define LEFT_SIDE_LED_END 109
|
||||||
|
#define LEFT_SIDE_LEN 9
|
||||||
|
#define RIGHT_SIDE_LED_START 110
|
||||||
|
#define RIGHT_SIDE_LED_END 120
|
||||||
|
#define RIGHT_SIDE_LEN 10
|
||||||
|
#define BLIP_WIDTH 1
|
||||||
|
#define BLIP_SPEED INT_MAX / 40;
|
||||||
|
|
||||||
|
int blip_pos = 0 + BLIP_WIDTH;
|
||||||
|
int blip_speed = BLIP_SPEED;
|
||||||
|
|
||||||
|
int keycolors[MATRIX_ROWS*MATRIX_COLS][3] = {
|
||||||
|
CO_ROOT, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS,
|
||||||
|
CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS,
|
||||||
|
CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS,
|
||||||
|
CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS,
|
||||||
|
CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS,
|
||||||
|
CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS, CO_WEIS,
|
||||||
|
};
|
||||||
|
|
||||||
|
void rgb_matrix_set_color_area(int a, int b, int red, int green, int blue) {
|
||||||
|
for (int i = a; i < b; i++) {
|
||||||
|
rgb_matrix_set_color(i, red, green, blue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_special_leds(void){
|
||||||
|
if (host_keyboard_led_state().caps_lock) {
|
||||||
|
rgb_matrix_set_color_area(LEFT_SIDE_LED_START, RIGHT_SIDE_LED_END, SIDECO_OFF);
|
||||||
|
rgb_matrix_set_color(CAPS_IDX, CAPS_EN_CO);
|
||||||
|
|
||||||
|
if (blip_pos+blip_speed-BLIP_WIDTH < 0) {
|
||||||
|
blip_speed = -blip_speed;
|
||||||
|
}
|
||||||
|
|
||||||
|
blip_pos += blip_speed;
|
||||||
|
|
||||||
|
int left_scaled_blip_pos = blip_pos / (INT_MAX / LEFT_SIDE_LEN);
|
||||||
|
int left_blip_start = LEFT_SIDE_LED_START + left_scaled_blip_pos;
|
||||||
|
int right_scaled_blip_pos = blip_pos / (INT_MAX / RIGHT_SIDE_LEN);
|
||||||
|
int right_blip_start = RIGHT_SIDE_LED_START + right_scaled_blip_pos;
|
||||||
|
//rgb_matrix_set_color_area(0, 18 * ((float)blip_pos / INT_MAX), 0, 255, 0);
|
||||||
|
|
||||||
|
rgb_matrix_set_color_area(left_blip_start, left_blip_start+BLIP_WIDTH, SIDECO_ROOT);
|
||||||
|
rgb_matrix_set_color_area(right_blip_start, right_blip_start+BLIP_WIDTH, SIDECO_ROOT);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
rgb_matrix_set_color_area(LEFT_SIDE_LED_START, RIGHT_SIDE_LED_END, SIDECO_ROOT);
|
||||||
|
}
|
||||||
|
if (host_keyboard_led_state().num_lock) {
|
||||||
|
rgb_matrix_set_color(NUM_IDX, NUM_EN_CO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Function to set the LED colors
|
||||||
|
bool rgb_matrix_indicators_user(void) {
|
||||||
|
for(int i = 0; i < MATRIX_ROWS*MATRIX_COLS; i++){
|
||||||
|
rgb_matrix_set_color(i, keycolors[i][0], keycolors[i][1], keycolors[i][2]);
|
||||||
|
}
|
||||||
|
set_special_leds();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user