Skip to content

Commit

Permalink
Add custom keymap for GMMK2
Browse files Browse the repository at this point in the history
it's like moved from and old repo cuz i couldn't figure out how to fork
the keychron one even though i had the original forked. it's a whole
story

Update from 2024: I just wanna say, those were the days, my Git
workflow would just be copying the changes from an old repo when I wanted
to change something with remotes. I understood even less about Git than
I do now. I find it really funny now. I'm probably gonna find this
commit message sometime in the far far future and laugh at myself even
more. Life is wild. I wonder what were the choices that led to me
journaling in a commit message of a qmk_firmware fork.
PS: the original commit message also had really weird formatting, I
fixed that but left the rest of it untouched, I wanted to preserve it
for its historical value.
  • Loading branch information
chupsondev committed Feb 29, 2024
1 parent 4e369d4 commit ca10467
Show file tree
Hide file tree
Showing 6 changed files with 191 additions and 3 deletions.
13 changes: 13 additions & 0 deletions keyboards/gmmk/gmmk2/p96/ansi/keymaps/chupson/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#define MK_3_SPEED

#define MK_C_OFFSET_0 4
#define MK_C_INTERVAL_0 16

#define MK_C_OFFSET_1 16
#define MK_C_INTERVAL_1 16

#define MK_C_OFFSET_2 32
#define MK_C_INTERVAL_2 16

#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_KEYRELEASES
174 changes: 174 additions & 0 deletions keyboards/gmmk/gmmk2/p96/ansi/keymaps/chupson/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
/* Copyright 2021 Glorious, LLC <[email protected]>
*
* 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
#include "print.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.
enum custom_layers {
_QWERTY_MAC,
_MOUSE_MAC,
_QWERTY_LIN,
_MOUSE_LIN,
_FUNCTION_MAC,
_FUNCTION_LIN,
};

enum custom_keycodes {
KC_M_QW = SAFE_RANGE,
KC_M_MO,
KC_L_QW,
KC_L_MO,
MA_EMIL,
MA_USER,
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY_MAC] = 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_PSCR, KC_DEL, KC_INS, KC_PGUP, KC_PGDN,
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_BSLS, 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_ENT, KC_P4, KC_P5, KC_P6,
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, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(_FUNCTION_MAC), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),

[_MOUSE_MAC] = LAYOUT(
KC_M_QW, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, KC_MS_U, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, XXXXXXX, XXXXXXX, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, UC_WIN, XXXXXXX, KC_BTN1, XXXXXXX, XXXXXXX, KC_M_QW, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),

[_QWERTY_LIN] = 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_PSCR, KC_DEL, KC_INS, KC_PGUP, KC_PGDN,
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_BSLS, 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_ENT, KC_P4, KC_P5, KC_P6,
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, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FUNCTION_MAC), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),

[_MOUSE_LIN] = LAYOUT(
KC_L_QW, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, KC_MS_U, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, XXXXXXX, XXXXXXX, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, UC_WIN, XXXXXXX, KC_BTN1, XXXXXXX, XXXXXXX, KC_L_QW, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),

[_FUNCTION_MAC] = LAYOUT(
XXXXXXX, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MRWD, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_L_QW, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, KC_M_QW, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MA_EMIL, MA_USER, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, KC_M_MO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),

[_FUNCTION_LIN] = LAYOUT(
XXXXXXX, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MRWD, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_L_QW, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, KC_M_QW, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MA_EMIL, MA_USER, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, KC_L_MO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),
};

void chupson_layout_set_default_mode_rgb(void) {
rgb_matrix_enable();
rgb_matrix_set_speed(180);
rgb_matrix_sethsv(HSV_WHITE);
rgb_matrix_mode(RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS);
}

void chupson_layout_set_mouse_mode_rgb(void) {
rgb_matrix_enable();
rgb_matrix_set_speed(255);
rgb_matrix_sethsv(195, 220, 200);
rgb_matrix_mode(RGB_MATRIX_BREATHING);
}

void chupson_layout_set_boot_rgb(void) {
rgb_matrix_enable();
rgb_matrix_set_speed(255);
rgb_matrix_sethsv(HSV_RED);
rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR);
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_M_QW:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY_MAC);
chupson_layout_set_default_mode_rgb();
}
return false;
case KC_M_MO:
if (record->event.pressed) {
set_single_persistent_default_layer(_MOUSE_MAC);
chupson_layout_set_mouse_mode_rgb();
}
return false;
case KC_L_QW:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY_LIN);
chupson_layout_set_default_mode_rgb();
}
return false;
case KC_L_MO:
if (record->event.pressed) {
set_single_persistent_default_layer(_MOUSE_LIN);
chupson_layout_set_mouse_mode_rgb();
}
return false;
case MA_EMIL:
if (record->event.pressed) {
SEND_STRING("[email protected]");
}
return false;
case MA_USER:
if (record->event.pressed) {
SEND_STRING("chupson");
}
return false;
case QK_BOOT:
if (record->event.pressed) {
chupson_layout_set_boot_rgb();
}
return true;
}
return true;
}

void keyboard_post_init_user(void) {
chupson_layout_set_default_mode_rgb();
set_single_persistent_default_layer(_QWERTY_MAC);
}


bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (host_keyboard_led_state().caps_lock) {
for(uint8_t i = 100; i < 119; i++) {
RGB_MATRIX_INDICATOR_SET_COLOR(i, 255, 255, 255);
}
} else {
for(uint8_t i = 100; i < 119; i++) {
RGB_MATRIX_INDICATOR_SET_COLOR(i, 0, 0, 0);
}
}
return false;
}

1 change: 1 addition & 0 deletions keyboards/gmmk/gmmk2/p96/ansi/keymaps/chupson/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# ANSI GMMKV2 96% Layout
2 changes: 1 addition & 1 deletion lib/chibios
Submodule chibios updated 4788 files
2 changes: 1 addition & 1 deletion lib/chibios-contrib
Submodule chibios-contrib updated 274 files
2 changes: 1 addition & 1 deletion lib/pico-sdk
Submodule pico-sdk updated 237 files

0 comments on commit ca10467

Please sign in to comment.