add keymap and rgb sleep setting for gmmk2
Some checks are pending
Build QMK firmware / QMK Userspace Build (push) Waiting to run
Build QMK firmware / QMK Userspace Publish (push) Blocked by required conditions

This commit is contained in:
2025-02-12 00:32:00 +01:00
parent 35edec2998
commit 4ed1c1de0e
3 changed files with 125 additions and 2 deletions

View File

@@ -0,0 +1 @@
#define RGB_DISABLE_WHEN_USB_SUSPENDED

View 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;
}