diff options
Diffstat (limited to 'keyboards/gmmk/pro/keymaps')
29 files changed, 970 insertions, 1052 deletions
diff --git a/keyboards/gmmk/pro/keymaps/default/keymap.c b/keyboards/gmmk/pro/keymaps/default/keymap.c deleted file mode 100644 index b08400cd8d..0000000000 --- a/keyboards/gmmk/pro/keymaps/default/keymap.c +++ /dev/null @@ -1,65 +0,0 @@ -/* 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, 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_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, KC_DEL, - 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_PGUP, - 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_PGDN, - 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_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - -}; - - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - return true; -} diff --git a/keyboards/gmmk/pro/keymaps/iso/keymap.c b/keyboards/gmmk/pro/keymaps/iso/keymap.c deleted file mode 100644 index 402becbe6e..0000000000 --- a/keyboards/gmmk/pro/keymaps/iso/keymap.c +++ /dev/null @@ -1,65 +0,0 @@ -/* 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+backspace. 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_iso( - 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_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, KC_DEL, - 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_PGUP, - 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_ENT, KC_PGDN, - 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_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT_iso( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - -}; - - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - return true; -} diff --git a/keyboards/gmmk/pro/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/keymaps/jonavin/keymap.c deleted file mode 100644 index 8b37449576..0000000000 --- a/keyboards/gmmk/pro/keymaps/jonavin/keymap.c +++ /dev/null @@ -1,308 +0,0 @@ -/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com> - Copyright 2021 Jonavin - -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 "rgb_matrix_map.h" - -#define ARRAYSIZE(arr) sizeof(arr)/sizeof(arr[0]) - -enum custom_layers { - _BASE, - _FN1, - _MO2, - _MO3, -}; - -enum custom_keycodes { - KC_00 = SAFE_RANGE, - KC_WINLCK, //Toggles Win key on and off - RGB_TOI, // Timeout idle time up - RGB_TOD, // Timeout idle time down -}; - -// Tap Dance Definitions -enum custom_tapdance { - TD_LSFT_CAPSLOCK, -}; - -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for shift, twice for Caps Lock - [TD_LSFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), -}; - -#define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK) - -bool _isWinKeyDisabled = false; - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Ins 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 - - - [_BASE] = LAYOUT( - 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_INS, 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, KC_DEL, - 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_PGUP, - TT(_MO2), 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_PGDN, - KC_LSFTCAPS, 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_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [_FN1] = LAYOUT( - _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_CALC, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, - _______, _______, RGB_VAI, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, RESET, KC_HOME, - KC_CAPS, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - _______, _______, RGB_HUI, _______, _______, _______, KC_NLCK, _______, RGB_TOD, RGB_TOI, _______, _______, RGB_MOD, _______, - _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI - ), - - [_MO2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______, - _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, _______, _______, _______, KC_HOME, - _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT, KC_END, - _______, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NO, KC_P0, KC_00, KC_PDOT, KC_PSLS, _______, RCTL(KC_PGUP), _______, - _______, _______, _______, KC_BSPC, _______, _______, _______, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT) - ), - - [_MO3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -}; - - -// TIMEOUTS -#define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes -#define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) -static uint16_t timeout_timer = 0; -static uint16_t timeout_counter = 0; //in minute intervals -static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; - -void timeout_reset_timer(void) { - timeout_timer = timer_read(); - timeout_counter = 0; -}; - -void timeout_update_threshold(bool increase) { - if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; - if (!increase && timeout_threshold > 0) timeout_threshold--; -}; - - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_00: - if (record->event.pressed) { - // when keycode KC_00 is pressed - SEND_STRING("00"); - } else { - // when keycode KC_00 is released - } - break; - case KC_WINLCK: - if (record->event.pressed) { - _isWinKeyDisabled = !_isWinKeyDisabled; //toggle status - if(_isWinKeyDisabled) { - process_magic(GUI_OFF, record); - } else { - process_magic(GUI_ON, record); - } - } else unregister_code16(keycode); - break; - case RGB_TOI: - if(record->event.pressed) { - timeout_update_threshold(true); - } else unregister_code16(keycode); - break; - case RGB_TOD: - if(record->event.pressed) { - timeout_update_threshold(false); //decrease timeout - } else unregister_code16(keycode); - break; - default: - if (record->event.pressed) { //reset activity timer - #ifdef RGB_MATRIX_ENABLE - rgb_matrix_enable(); - #endif - timeout_reset_timer(); - } - break; - } - return true; -}; - -void matrix_scan_user(void) { - if (timeout_threshold > 0) { - if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick - timeout_counter++; - timeout_timer = timer_read(); - } - #ifdef RGB_MATRIX_ENABLE - if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { - rgb_matrix_disable_noeeprom(); - } - #endif - } // timeout_threshold = 0 will disable timeout -}; - - -#ifdef ENCODER_ENABLE // Encoder Functionality - uint8_t selected_layer = 0; - - bool encoder_update_user(uint8_t index, bool clockwise) { - if ( clockwise ) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers - if(selected_layer < 3) { - selected_layer ++; - layer_move(selected_layer); - } - } else if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up - unregister_mods(MOD_BIT(KC_LSFT)); - register_code(KC_PGDN); - register_mods(MOD_BIT(KC_LSFT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next word - tap_code16(LCTL(KC_RGHT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next track - tap_code(KC_MEDIA_NEXT_TRACK); - } else { - switch (selected_layer) { - case _FN1: - timeout_update_threshold(true); - break; - default: - tap_code(KC_VOLU); // Otherwise it just changes volume - break; - } - } - } else { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { - if (selected_layer > 0) { - selected_layer --; - layer_move(selected_layer); - } - } else if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { - unregister_mods(MOD_BIT(KC_LSFT)); - register_code(KC_PGUP); - register_mods(MOD_BIT(KC_LSFT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate previous word - tap_code16(LCTL(KC_LEFT)); - } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media previous track - tap_code(KC_MEDIA_PREV_TRACK); - } else { - switch (selected_layer) { - case _FN1: - timeout_update_threshold(false); - break; - default: - tap_code(KC_VOLD); - break; - } - } - } - - return true; - } -#endif - -#ifdef RGB_MATRIX_ENABLE - // Capslock, Scroll lock and Numlock indicator on Left side lights. - void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { - if (IS_HOST_LED_ON(USB_LED_SCROLL_LOCK)) { - rgb_matrix_set_color(LED_L1, RGB_GREEN); - rgb_matrix_set_color(LED_L2, RGB_GREEN); - } - if (!IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // on if NUM lock is OFF - rgb_matrix_set_color(LED_L3, RGB_MAGENTA); - rgb_matrix_set_color(LED_L4, RGB_MAGENTA); - } - if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { - rgb_matrix_set_color(LED_L5, RGB_RED); - rgb_matrix_set_color(LED_L6, RGB_RED); - rgb_matrix_set_color(LED_L7, RGB_RED); - } - if (_isWinKeyDisabled) { - rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled - } - switch(get_highest_layer(layer_state)){ // special handling per layer - case _FN1: // on Fn layer select what the encoder does when pressed - rgb_matrix_set_color(LED_R2, RGB_RED); - rgb_matrix_set_color(LED_R3, RGB_RED); - rgb_matrix_set_color(LED_R4, RGB_RED); - rgb_matrix_set_color(LED_FN, RGB_RED); //FN key - - // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code - if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_RED); - else if (timeout_threshold < 140) { - rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_RED); - rgb_matrix_set_color(LED_LIST_NUMROW[(timeout_threshold % 10)], RGB_RED); - } else { // >= 140 minutes, just show these 3 lights - rgb_matrix_set_color(LED_LIST_NUMROW[10], RGB_RED); - rgb_matrix_set_color(LED_LIST_NUMROW[11], RGB_RED); - rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_RED); - } - break; - case _MO2: - for (uint8_t i=0; i<ARRAYSIZE(LED_LIST_NUMPAD); i++) { - rgb_matrix_set_color(LED_LIST_NUMPAD[i], RGB_MAGENTA); - } - rgb_matrix_set_color(LED_R4, RGB_MAGENTA); - rgb_matrix_set_color(LED_R5, RGB_MAGENTA); - rgb_matrix_set_color(LED_R6, RGB_MAGENTA); - break; - case _MO3: - rgb_matrix_set_color(LED_R6, RGB_GREEN); - rgb_matrix_set_color(LED_R7, RGB_GREEN); - rgb_matrix_set_color(LED_R8, RGB_GREEN); - break; - default: - break; - } - } - - void suspend_power_down_user(void) { - rgb_matrix_set_suspend_state(true); - } - - void suspend_wakeup_init_user(void) { - rgb_matrix_set_suspend_state(false); - } -#endif - - -void keyboard_post_init_user(void) { - - if (IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // turn on Num lock by defautl so that the numpad layer always has predictable results - tap_code(KC_NUMLOCK); - } - timeout_timer = timer_read(); // set inital time for ide timeout - #ifdef RGB_MATRIX_ENABLE - rgb_matrix_set_color_all(RGB_NAUTILUS); // Default startup colour - #endif -} diff --git a/keyboards/gmmk/pro/keymaps/jonavin/readme.md b/keyboards/gmmk/pro/keymaps/jonavin/readme.md deleted file mode 100644 index f4f3401abc..0000000000 --- a/keyboards/gmmk/pro/keymaps/jonavin/readme.md +++ /dev/null @@ -1,40 +0,0 @@ -# jonavin's GMMK Pro layout - -- Add Fn layer keys from Glorious Core mapping that's missing in the default qmk mapping -- Add PrtScr, Scroll Lock, Break, NumLock to Fn layer -- Implement Win key lock using Fn+Win like in Glorious Core firmware -- Layer 2 mod on Caps Lock with double-tap to switch to this layer, double tap to switch back -- Layer 2 provides arrows on WASD and additional nav keys + right hand numpad with 00; an be used for Alt Code entry -- Layer 2 left spacebar Backspace -- add double tap of Left Shift to toggle Caps Lock -- additional encoder functionality - - FN Layer - change rgb idle timeout - - holding Left shift, change layers - - holding right shift, Navigate page up/down - - holding Left Ctrl, navigate prev/next word - - holding Left Alt, change media prev/next track - - default is change volume - -- LED/RGB Functionality - - RGB idle timeout (default 5 minutes) - - Can be changed in FN layer with < and > or encoder - - setting to zero disables timeout - - indicators in FN layer using RGB in FN and number rows to show the timeout in minutes - - LED address location map as enum definition - - LED group lists for arrows, numpad, F row, num row, left and right side LEDs - - default startuo in single mode with default colour - - Capslock, Scroll Lock, and Num Lock (not set) indicator on left side LED - - Layer indicator on right side LED - - Fn key light up red when Fn layer activate - - Win Key light up red when Win Lock mode enabled - - Layer 2 activation lights up Numpad area - -## All layers diagram -Default layer -![image](https://user-images.githubusercontent.com/71780717/124177658-82324880-da7e-11eb-9421-b69100131062.png) - -Fn Layer -![image](https://user-images.githubusercontent.com/71780717/126086069-bc539ffc-3ab6-4ebb-9bef-5005f8add294.png) - -Layer 2 (Caps Lock Mod) -![image](https://user-images.githubusercontent.com/71780717/124177683-8b231a00-da7e-11eb-9434-e2475f679a54.png) diff --git a/keyboards/gmmk/pro/keymaps/jonavin/rgb_matrix_map.h b/keyboards/gmmk/pro/keymaps/jonavin/rgb_matrix_map.h deleted file mode 100644 index 1ee5388905..0000000000 --- a/keyboards/gmmk/pro/keymaps/jonavin/rgb_matrix_map.h +++ /dev/null @@ -1,144 +0,0 @@ -/* Copyright 2021 Jonavin Eng - * - * 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 RGB_MATRIX_ENABLE - - // Custom RGB Colours - #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps - #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Naurilus Font colours - - // RGB LED locations - enum led_location_map { - LED_ESC, // 0, ESC, k13 - LED_GRV, // 1, ~, k16 - LEB_TAB, // 2, Tab, k11 - LED_CAPS, // 3, Caps, k21 - LED_LSFT, // 4, Sh_L, k00 - LED_LCTL, // 5, Ct_L, k06 - LED_F1, // 6, F1, k26 - LED_1, // 7, 1, k17 - LED_Q, // 8, Q, k10 - LED_A, // 9, A, k12 - LED_Z, // 10, Z, k14 - LED_LWIN, // 11, Win_L, k90 - LED_F2, // 12, F2, k36 - LED_2, // 13, 2, k27 - LED_W, // 14, W, k20 - LED_S, // 15, S, k22 - LED_X, // 16, X, k24 - LED_LALT, // 17, Alt_L, k93 - LED_F3, // 18, F3, k31 - LED_3, // 19, 3, k37 - LED_E, // 20, E, k30 - LED_D, // 21, D, k32 - LED_C, // 22, C, k34 - LED_F4, // 23, F4, k33 - LED_4, // 24, 4, k47 - LED_R, // 25, R, k40 - LED_F, // 26, F, k42 - LED_V, // 27, V, k44 - LED_F5, // 28, F5, k07 - LED_5, // 29, 5, k46 - LED_T, // 30, T, k41 - LED_G, // 31, G, k43 - LED_B, // 32, B, k45 - LED_SPC, // 33, SPACE, k94 - LED_F6, // 34, F6, k63 - LED_6, // 35, 6, k56 - LED_Y, // 36, Y, k51 - LED_H, // 37, H, k53 - LED_N, // 38, N, k55 - LED_F7, // 39, F7, k71 - LED_7, // 40, 7, k57 - LED_U, // 41, U, k50 - LED_J, // 42, J, k52 - LED_M, // 43, M, k54 - LED_F8, // 44, F8, k76 - LED_8, // 45, 8, k67 - LED_I, // 46, I, k60 - LED_K, // 47, K, k62 - LED_COMM, // 48, ,, k64 - LED_RALT, // 49, Alt_R, k95 - LED_F9, // 50, F9, ka6 - LED_9, // 51, 9, k77 - LED_O, // 52, O, k70 - LED_L, // 53, L, k72 - LED_DOT, // 54, ., k74 - LED_FN, // 55, FN, k92 - LED_F10, // 56, F10, ka7 - LED_0, // 57, 0, k87 - LED_P, // 58, P, k80 - LED_SCLN, // 59, ;, k82 - LED_SLSH, // 60, ?, k85 - LED_F11, // 61, F11, ka3 - LED_MINS, // 62, -, k86 - LED_LBRC, // 63, [, k81 - LED_QUOT, // 64, ", k83 - LED_RCTL, // 65, Ct_R, k04 - LED_F12, // 66, F12, ka5 - LED_L1, // 67, LED, l01 - LED_R1, // 68, LED, l11 - LED_INS, // 69, Prt, k97 -- remapped to INS - LED_L2, // 70, LED, l02 - LED_R2, // 71, LED, l12 - LED_DEL, // 72, Del, k65 - LED_L3, // 73, LED, l03 - LED_R3, // 74, LED, l13 - LED_PGUP, // 75, PgUp, k15 - LED_L4, // 76, LED, l04 - LED_R4, // 77, LED, l14 - LED_EQL, // 78, =, k66 - LED_RIGHT, // 79, Right, k05 - LED_L5, // 80, LED, l05 - LED_R5, // 81, LED, l15 - LED_END, // 82, End, k75 - LED_L6, // 83, LED, l06 - LED_R6, // 84, LED, l16 - LED_BSPC, // 85, BSpc, ka1 - LED_PGDN, // 86, PgDn, k25 - LED_L7, // 87, LED, l07 - LED_R7, // 88, LED, l17 - LED_RBRC, // 89, ], k61 - LED_RSFT, // 90, Sh_R, k91 - LED_L8, // 91, LED, l08 - LED_R8, // 92, LED, l18 - LED_BSLS, // 93, \, ka2 - LED_UP, // 94, Up, k35 - LED_LEFT, // 95, Left, k03 - LED_ENT, // 96, Enter, ka4 - LED_DOWN // 97, Down, k73 - }; - - const uint8_t LED_LIST_WASD[] = { LED_W, LED_A, LED_S, LED_D }; - - const uint8_t LED_LIST_ARROWS[] = { LED_LEFT, LED_RIGHT, LED_UP, LED_DOWN }; - - const uint8_t LED_LIST_FUNCROW[] = { LED_ESC, LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8, LED_F9, LED_F10, LED_F11, LED_F12, LED_INS}; - - const uint8_t LED_LIST_NUMROW[] = { LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_DEL}; - - const uint8_t LED_LIST_NUMPAD[] = { - LED_7, LED_8, LED_9, - LED_U, LED_I, LED_O, - LED_J, LED_K, LED_L, - LED_M, LED_COMM, LED_DOT - }; - - const uint8_t LED_SIDE_LEFT[] = { LED_L1, LED_L2, LED_L3, LED_L4, LED_L5, LED_L6, LED_L7, LED_L8}; - - const uint8_t LED_SIDE_RIGHT[] = { LED_R1, LED_R2, LED_R3, LED_R4, LED_R5, LED_R6, LED_R7, LED_R8}; - -#endif diff --git a/keyboards/gmmk/pro/keymaps/jonavin/rules.mk b/keyboards/gmmk/pro/keymaps/jonavin/rules.mk deleted file mode 100644 index f4f3d49392..0000000000 --- a/keyboards/gmmk/pro/keymaps/jonavin/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -VIA_ENABLE = yes -MOUSEKEY_ENABLE = no -TAP_DANCE_ENABLE = yes -BOOTMAGIC_ENABLE = lite diff --git a/keyboards/gmmk/pro/keymaps/mike1808/.gitignore b/keyboards/gmmk/pro/keymaps/mike1808/.gitignore new file mode 100644 index 0000000000..03b2b46668 --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/.gitignore @@ -0,0 +1 @@ +secrets.h diff --git a/keyboards/gmmk/pro/keymaps/mike1808/README.md b/keyboards/gmmk/pro/keymaps/mike1808/README.md new file mode 100644 index 0000000000..cb17239882 --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/README.md @@ -0,0 +1,19 @@ +QMK layout for gmmk/pro +======================= + +## Secrets +The format is the same as [drashna's](../../../../users/drashna/readme_secrets.md) secrets implementation. Create a `secret.h` and define your secrets like this: + +```c +static const char* secrets[] = {"secret1", "secret2", "secret3", "secret4", "secret5"}; +``` + +## Rotary encoder knob +You can hookup your encoder functions by defining new encoder states in [encoder.h](./encoder.h), then in [encoder.c](./encoder.c) assign static variable `state` your new state depending on your desired condition and add callbacks to `encoder_mapping` array. + +## RGB Matrix Ledmaps +RGB Matrix ledmaps is the future allowing you assign colors to individual keys on every keymap layer. + +You can see some examples of my usage in the bottom of [keymap.c](./keymap.c). + +Color defines are just HSV colors wrapped in curly braces, like `#define RED { HSV_RED }`. diff --git a/keyboards/gmmk/pro/keymaps/mike1808/config.h b/keyboards/gmmk/pro/keymaps/mike1808/config.h new file mode 100644 index 0000000000..1205b8817b --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/config.h @@ -0,0 +1,31 @@ +/* Copyright 2021 Mikael Manukyan <arm.localhost@gmail.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/>. + */ + +#define COMBO_COUNT 1 +#define COMBO_TERM 100 + +#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED true +#define RGB_DISABLE_TIMEOUT 90000 + +#define MACRO_TIMER 5 + +#define TAPPING_TOGGLE 3 + +#define WPM_SMOOTHING 0.1 + +// this is for macOS so keyboard can work after sleep +#define NO_USB_STARTUP_CHECK diff --git a/keyboards/gmmk/pro/keymaps/mike1808/encoder.c b/keyboards/gmmk/pro/keymaps/mike1808/encoder.c new file mode 100644 index 0000000000..049f4df7e4 --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/encoder.c @@ -0,0 +1,111 @@ +/* Copyright 2021 Mikael Manukyan <arm.localhost@gmail.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 "encoder.h" +#include "mike1808.h" +#include "print.h" +#include "utils.h" +#include "process_record.h" +#include "rgb_matrix_ledmaps.h" + +static uint8_t state = ENCODER_DEFAULT; + +// clang-format off +const encoder_callback encoder_mapping[][2] = { + [ENCODER_VOLUME] = {&volume_up, &volume_down}, +#ifdef RGB_MATRIX_ENABLE + [ENCODER_RGB_HUE] = {&rgb_matrix_increase_hue_noeeprom, &rgb_matrix_decrease_hue_noeeprom}, + [ENCODER_RGB_SAT] = {&rgb_matrix_increase_sat_noeeprom, &rgb_matrix_decrease_sat_noeeprom}, + [ENCODER_RGB_VAL] = {&rgb_matrix_increase_val_noeeprom, &rgb_matrix_decrease_val_noeeprom}, + [ENCODER_RGB_EFFECT] = {&rgb_matrix_step_noeeprom, &rgb_matrix_step_reverse_noeeprom}, + [ENCODER_RGB_EFFECT_SPEED] = {&rgb_matrix_increase_speed_noeeprom, &rgb_matrix_decrease_speed_noeeprom}, +#endif // RGB_MATRIX_ENABLE +}; + +// clang-format on + +void volume_up() { tap_code(KC_VOLU); } + +void volume_down() { tap_code(KC_VOLD); } + +bool encoder_update_user(uint8_t index, bool clockwise) { + dprintf("current encoder state is: %d\n", state); + + if (clockwise) { + (*encoder_mapping[state][0])(); + } else { + (*encoder_mapping[state][1])(); + } + + return true; +} + +void handle_rgb_key(bool pressed) { + dprintf("handle_rgb_key %d\f", pressed); + + if (pressed) { + rgb_matrix_layers_disable(); + } else { + rgb_matrix_layers_enable(); + } +} + +static KeyPressState *rgb_state; + +void keyboard_post_init_encoder() { + rgb_state = NewKeyPressState(handle_rgb_key); +} + +bool process_record_encoder(uint16_t keycode, keyrecord_t *record) { +#ifdef RGB_MATRIX_ENABLE + switch (keycode) { + case KC_RGB_ENC_HUE ... KC_RGB_ENC_EFFECT: + if (record->event.pressed) { +# ifdef RGB_MATRIX_LEDMAPS_ENABLED + // disable layers so we can adjust RGB effects + rgb_state->press(rgb_state); +# endif // RGB_MATRIX_LEDMAPS_ENABLED + + switch (keycode) { + case KC_RGB_ENC_HUE: + state = ENCODER_RGB_HUE; + break; + case KC_RGB_ENC_SAT: + state = ENCODER_RGB_SAT; + break; + case KC_RGB_ENC_VAL: + state = ENCODER_RGB_VAL; + break; + case KC_RGB_ENC_EFFECT_SPEED: + state = ENCODER_RGB_EFFECT_SPEED; + break; + case KC_RGB_ENC_EFFECT: + state = ENCODER_RGB_EFFECT; + break; + } + } else { +# ifdef RGB_MATRIX_LEDMAPS_ENABLED + rgb_state->release(rgb_state); +# endif // RGB_MATRIX_LEDMAPS_ENABLED + state = ENCODER_DEFAULT; + store_rgb_state_to_eeprom(); + } + + return false; + } +#endif // RGB_MATRIX_ENABLE + + return true; +} diff --git a/keyboards/gmmk/pro/keymaps/mike1808/encoder.h b/keyboards/gmmk/pro/keymaps/mike1808/encoder.h new file mode 100644 index 0000000000..204922730e --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/encoder.h @@ -0,0 +1,35 @@ +/* Copyright 2021 Mikael Manukyan <arm.localhost@gmail.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/>. + */ + +// To add a new functionality define a new state here and then assign +// the handler to the `encoder_callback` +#include "quantum.h" + +enum encoder_state { + ENCODER_VOLUME = 0, + ENCODER_RGB_HUE, + ENCODER_RGB_SAT, + ENCODER_RGB_VAL, + ENCODER_RGB_EFFECT_SPEED, + ENCODER_RGB_EFFECT, +}; + +typedef void (*encoder_callback)(void); + +#define ENCODER_DEFAULT ENCODER_VOLUME + +void volume_up(void); +void volume_down(void); diff --git a/keyboards/gmmk/pro/keymaps/mike1808/fun.c b/keyboards/gmmk/pro/keymaps/mike1808/fun.c new file mode 100644 index 0000000000..f553874eb0 --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/fun.c @@ -0,0 +1,49 @@ +/* Copyright 2021 Mikael Manukyan <arm.localhost@gmail.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 "mike1808.h" +#include "print.h" + +static bool wpm_rgb_enabled = false; +static uint8_t rgb_mode; + +void rgb_matrix_indicators_keymap(void) { + if (wpm_rgb_enabled && rgb_matrix_is_enabled()) { + uint8_t wpm = get_current_wpm(); + dprintf("WPM = %d\n", wpm); + HSV hsv = rgb_matrix_get_hsv(); + hsv.h = wpm; + RGB rgb = hsv_to_rgb(hsv); + rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b); + } +} + +bool process_record_fun(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed && keycode == KC_WPM_RGB) { + if (wpm_rgb_enabled) { + wpm_rgb_enabled = false; + rgb_matrix_mode(rgb_mode); + } else { + wpm_rgb_enabled = true; + rgb_mode = rgb_matrix_get_mode(); + rgb_matrix_enable(); + rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR); + } + + return false; + } + + return true; +} diff --git a/keyboards/gmmk/pro/keymaps/mike1808/keymap.c b/keyboards/gmmk/pro/keymaps/mike1808/keymap.c new file mode 100644 index 0000000000..30c59e941d --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/keymap.c @@ -0,0 +1,127 @@ +/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>, Mikael Manukyan <arm.localhost@gmail.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 "mike1808.h" + +const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [JK_ESC] = COMBO(jk_combo, KC_ESC), +}; + +// clang-format off +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 + [LINUX] = LAYOUT( + 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_DEL, 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, KC_HOME, + 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_PGUP, + KC_ESC, 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_PGDN, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, TT_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [WINDOWS] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [MACOS] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LALT, KC_LGUI, _______, _______, _______, _______, _______, _______, _______ + ), + + [FUNCTIONS] = LAYOUT( + _______, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_PSCR, _______, + _______, KC_LINX, KC_MAC, KC_WIN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RST, _______, + KC_CAPS, _______, _______, _______, _______, OS_GIT, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_RGBH, KC_RGBS, KC_RGBV, KC_RGBE, KC_RGBP, KC_WRGB, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, RGB_TOG, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + + [GIT] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, G_DIFF, _______, _______, _______, _______, _______, _______, G_PULL, G_PUSH, _______, _______, _______, + _______, G_ADD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, G_CHECK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +#ifdef RGB_MATRIX_LEDMAPS_ENABLED + +#define ______ {0, 0, 0} + +const ledmap PROGMEM ledmaps[] = { + // LU = Left Underglow, RU = Right Underglow + // LU_1 ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute) RU_1 + // LU_2 ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del RU_2 + // LU_3 Tab Q W E R T Y U I O P [ ] \ PgUp RU_3 + // LU_4 Caps A S D F G H J K L ; " Enter PgDn RU_4 + // LU_5 Sh_L Z X C V B N M , . ? Sh_R Up End RU_5 + // LU_6 Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right RU_6 + [LINUX] = RGB_MATRIX_LAYOUT_LEDMAP( + PURPLE, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + PURPLE, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + PURPLE, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + PURPLE, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + PURPLE, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + PURPLE, ______, RED, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE + ), + [WINDOWS] = RGB_MATRIX_LAYOUT_LEDMAP( + GREEN, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + GREEN, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + GREEN, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + GREEN, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + GREEN, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + GREEN, ______, RED, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE + ), + [MACOS] = RGB_MATRIX_LAYOUT_LEDMAP( + YELLOW, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + YELLOW, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + YELLOW, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + YELLOW, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + YELLOW, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + YELLOW, ______, ______, RED, ______, ______, ______, ______, ______, ______, ______, PURPLE + ), + + [FUNCTIONS] = RGB_MATRIX_LAYOUT_LEDMAP( + CYAN, GREEN, GREEN, GREEN, GREEN, GREEN, GREEN, ______, ______, ______, ______, GREEN, GREEN, GREEN, GREEN, ______, PURPLE, + CYAN, ______, GOLD, GOLD, GOLD, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, GOLD, PURPLE, + CYAN, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, TEAL, ______, PURPLE, + CYAN, TURQ, ______, ______, ______, ______, TURQ, ______, ______, ______, ______, ______, ______, ______, ______, PURPLE, + CYAN, ______, RED, RED, RED, RED, RED, RED, ______, ______, ______, ______, ______, RED, ______, PURPLE, + CYAN, ______, ______, BLUE, ______, ______, ______, ______, ______, ______, ______, PURPLE + ), +}; + +#endif // RGB_MATRIX_LEDMAPS_ENABLED +// clang-format on diff --git a/keyboards/gmmk/pro/keymaps/mike1808/mike1808.c b/keyboards/gmmk/pro/keymaps/mike1808/mike1808.c new file mode 100644 index 0000000000..8813846096 --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/mike1808.c @@ -0,0 +1,68 @@ +/* Copyright 2021 Mikael Manukyan <arm.localhost@gmail.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 "mike1808.h" + +#if (__has_include("secrets.h") && !defined(NO_SECRETS)) +# include "secrets.h" +#else +// `PROGMEM const char secret[][x]` may work better, but it takes up more space in the firmware +// And I'm not familiar enough to know which is better or why... +static const char *const secret[] = {"test1", "test2", "test3", "test4", "test5"}; +#endif + +// userspace_config_t userspace_config; + +bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_SECRET_1 ... KC_SECRET_5: // Secrets! Externally defined strings, not stored in repo + if (!record->event.pressed) { + clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); + send_string_with_delay(secrets[keycode - KC_SECRET_1], MACRO_TIMER); + } + return false; + break; + } + return true; +} + +void suspend_power_down_user(void) { +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_set_suspend_state(true); +#endif // RGB_MATRIX_ENABLE +} + +void suspend_wakeup_init_user(void) { +#ifdef RGB_MATRIX_ENABLE + rgb_matrix_set_suspend_state(false); +#endif // RGB_MATRIX_ENABLE +} + +#ifdef RGB_MATRIX_ENABLE +void rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { + // Turn on sideglow when CAPS LOCK is activated + if (host_keyboard_led_state().caps_lock) { + HSV hsv = {CAPS_LOCK_COLOR}; + hsv.v = rgb_matrix_get_val(); + RGB rgb = hsv_to_rgb(hsv); + + for (uint8_t i = led_min; i < led_max; i++) { + if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { + RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b); + } + } + } +} +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/gmmk/pro/keymaps/mike1808/mike1808.h b/keyboards/gmmk/pro/keymaps/mike1808/mike1808.h new file mode 100644 index 0000000000..bc010108fb --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/mike1808.h @@ -0,0 +1,111 @@ +/* Copyright 2021 Mikael Manukyan <arm.localhost@gmail.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/>. + */ +#pragma once +#include QMK_KEYBOARD_H +#include "rgb_matrix_ledmaps.h" + +enum layout_names { + LINUX = 0, // Base Layout: The main keyboard layout that has all the characters + WINDOWS, // Base ayout for Windows + MACOS, // Base Layout for MacOS + FUNCTIONS, // Function Layout: The function key activated layout with default functions and + // some added ones + GIT, // GIT Layout: GIT shortcuts and macros + SECRETS, // Layer with secrets +}; + +enum custom_keycodes { + KC_CCCV = SAFE_RANGE, // Hold to copy, tap to paste + KC_LINUX, + KC_MAC, + KC_WIN, + + KC_SECRET_1, + KC_SECRET_2, + KC_SECRET_3, + KC_SECRET_4, + KC_SECRET_5, + + KC_RGB_ENC_HUE, + KC_RGB_ENC_SAT, + KC_RGB_ENC_VAL, + KC_RGB_ENC_EFFECT_SPEED, + KC_RGB_ENC_EFFECT, + + KC_WPM_RGB, +}; + +enum git_macros { + // The start of this enum should always be equal to end of ctrl_keycodes + 1 + G_INIT = KC_WPM_RGB + 1, // git init + G_CLONE, // git clone + G_CONF, // git config --global + G_ADD, // git add + G_DIFF, // git diff + G_RESET, // git reset + G_REBAS, // git rebase + G_BRANH, // git branch + G_CHECK, // git checkout + G_MERGE, // git merge + G_REMTE, // git remote add + G_FETCH, // git fetch + G_PULL, // git pull + G_PUSH, // git push + G_COMM, // git commit + G_STAT, // git status + G_LOG, // git log + NEW_SAFE_RANGE, +}; + +enum combos { + JK_ESC, // jk to ESC for Vim +}; + +#define KC_SEC1 KC_SECRET_1 +#define KC_SEC2 KC_SECRET_2 +#define KC_SEC3 KC_SECRET_3 +#define KC_SEC4 KC_SECRET_4 +#define KC_SEC5 KC_SECRET_5 + +#define KC_RGBH KC_RGB_ENC_HUE +#define KC_RGBS KC_RGB_ENC_SAT +#define KC_RGBV KC_RGB_ENC_VAL +#define KC_RGBE KC_RGB_ENC_EFFECT +#define KC_RGBP KC_RGB_ENC_EFFECT_SPEED + +#define KC_WRGB KC_WPM_RGB + +#define KC_LINX KC_LINUX + +#define KC_RESET RESET +#define KC_RST KC_RESET + +#define OS_GIT OSL(GIT) +#define TT_FN TT(FUNCTIONS) + +#define OS_LGUI OSM(MOD_LGUI) +#define OS_RGUI OSM(MOD_RGUI) +#define OS_LSFT OSM(MOD_LSFT) +#define OS_RSFT OSM(MOD_RSFT) +#define OS_LCTL OSM(MOD_LCTL) +#define OS_RCTL OSM(MOD_RCTL) +#define OS_LALT OSM(MOD_LALT) +#define OS_RALT OSM(MOD_RALT) +#define OS_MEH OSM(MOD_MEH) +#define OS_HYPR OSM(MOD_HYPR) + +#define CAPS_LOCK_COLOR HSV_RED + diff --git a/keyboards/gmmk/pro/keymaps/mike1808/process_record.c b/keyboards/gmmk/pro/keymaps/mike1808/process_record.c new file mode 100644 index 0000000000..ac0164e73f --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/process_record.c @@ -0,0 +1,119 @@ +/* Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>, + Mikael Manukyan <arm.localhost@gmail.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 "mike1808.h" +#include "print.h" +#include "process_record.h" + +uint16_t copy_paste_timer; + +__attribute__((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { + return true; +} +__attribute__((weak)) bool process_record_encoder(uint16_t keycode, keyrecord_t *record) { + return true; +} +__attribute__((weak)) bool process_record_fun(uint16_t keycode, keyrecord_t *record) { + return true; +} + +__attribute__((weak)) void keyboard_post_init_encoder(void) { return; } + +static const char *git_commands[] = { + "git init ", "git clone ", "git config --global ", "git add ", + "git diff ", "git reset ", "git rebase ", "git branch -b \"", + "git checkout ", "git merge ", "git remote add ", "git fetch ", + "git pull ", "git push ", "git commit ", "git status ", + "git log ", +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // If console is enabled, it will print the matrix position and status of each key pressed +#ifdef KEYLOGGER_ENABLE + uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %b, time: %5u, int: %b, count: %u\n", + keycode, record->event.key.col, record->event.key.row, record->event.pressed, + record->event.time, record->tap.interrupted, record->tap.count); +#endif // KEYLOGGER_ENABLE + switch (keycode) { + case KC_LINUX ... KC_WIN: + if (record->event.pressed) { + dprintf("set_single_persistent_default_layer %d\n", keycode - KC_LINUX + LINUX); + set_single_persistent_default_layer(keycode - KC_LINUX + LINUX); + return false; + } + + break; + + case KC_CCCV: // One key copy/paste + if (record->event.pressed) { + copy_paste_timer = timer_read(); + } else { + if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy + if (layer_state_is(MACOS)) { + tap_code16(LGUI(KC_C)); + } else { + tap_code16(LCTL(KC_C)); + } + } else { // Tap, paste + if (layer_state_is(MACOS)) { + tap_code16(LGUI(KC_V)); + } else { + tap_code16(LCTL(KC_V)); + } + } + } + break; + + case G_INIT ... G_LOG: + if (record->event.pressed) { + clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); + send_string_with_delay(git_commands[keycode - G_INIT], MACRO_TIMER); + return false; + } + break; +#ifdef RGB_MATRIX_ENABLE + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); + rgb_matrix_set_color_all(0, 0, 0); + } break; + case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: { + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + rgb_matrix_set_color_all(0, 0, 0); + } break; + case LED_FLAG_UNDERGLOW: { + // This line is for LED idle timer. It disables the toggle so you can turn + // off LED completely if you like + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_disable(); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + rgb_matrix_enable(); + } break; + } + } + return false; +#endif // RGB_MATRIX_ENABLE + } + + return process_record_encoder(keycode, record) && process_record_secrets(keycode, record) && + process_record_fun(keycode, record); +} + +void keyboard_post_init_user() { keyboard_post_init_encoder(); } diff --git a/keyboards/gmmk/pro/keymaps/jonavin/config.h b/keyboards/gmmk/pro/keymaps/mike1808/process_record.h index b77cb05f5f..1021751655 100644 --- a/keyboards/gmmk/pro/keymaps/jonavin/config.h +++ b/keyboards/gmmk/pro/keymaps/mike1808/process_record.h @@ -1,4 +1,4 @@ -/* Copyright 2021 Jonavin Eng +/* Copyright 2021 Mikael Manukyan <arm.localhost@gmail.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 @@ -13,21 +13,14 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ - #pragma once +#include "mike1808.h" + -#define TAPPING_TOGGLE 2 -// TT set to two taps +bool process_record_secrets(uint16_t keycode, keyrecord_t *record); -/* Handle GRAVESC combo keys */ -#define GRAVE_ESC_ALT_OVERRIDE - //Always send Escape if Alt is pressed -#define GRAVE_ESC_CTRL_OVERRIDE - //Always send Escape if Control is pressed +bool process_record_encoder(uint16_t keycode, keyrecord_t *record); -#define TAPPING_TERM 180 +bool process_record_fun(uint16_t keycode, keyrecord_t *record); -#ifdef RGB_MATRIX_ENABLE - #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR - #define RGB_DISABLE_WHEN_USB_SUSPENDED true -#endif +void keyboard_post_init_encoder(void); diff --git a/keyboards/gmmk/pro/keymaps/mike1808/rgb_matrix_ledmaps.c b/keyboards/gmmk/pro/keymaps/mike1808/rgb_matrix_ledmaps.c new file mode 100644 index 0000000000..6f4d333ede --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/rgb_matrix_ledmaps.c @@ -0,0 +1,71 @@ +/* Copyright 2021 Mikael Manukyan <arm.localhost@gmail.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 "rgb_matrix_ledmaps.h" + +__attribute__((weak)) void rgb_matrix_indicators_keymap(void) { return; } +__attribute__((weak)) void rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { + return; +} + +#ifdef RGB_MATRIX_LEDMAPS_ENABLED + +static bool enabled = true; + +#endif // RGB_MATRIX_LEDMAPS_ENABLED + +void rgb_matrix_indicators_user(void) { rgb_matrix_indicators_keymap(); } +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +#ifdef RGB_MATRIX_LEDMAPS_ENABLED + if (rgb_matrix_is_enabled() && enabled) { + set_layer_rgb(led_min, led_max, get_highest_layer(layer_state | default_layer_state)); + } + +#endif // RGB_MATRIX_LEDMAPS_ENABLED + rgb_matrix_indicators_advanced_keymap(led_min, led_max); +} + +#ifdef RGB_MATRIX_LEDMAPS_ENABLED + +void set_layer_rgb(uint8_t led_min, uint8_t led_max, int layer) { + const ledmap *l = &(ledmaps[layer]); + + uint8_t val = rgb_matrix_get_val(); + + for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + HSV hsv = { + .h = (*l)[i][0], + .s = (*l)[i][1], + .v = val, + }; + + if (hsv.h || hsv.s) { + RGB rgb = hsv_to_rgb(hsv); + RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b); + } + } +} + +void rgb_matrix_layers_enable() { + dprintf("ledmaps are enabled\n"); + enabled = true; +} + +void rgb_matrix_layers_disable() { + dprintf("ledmaps are disabled\n"); + enabled = false; +} + +#endif // RGB_MATRIX_LEDMAPS_ENABLED diff --git a/keyboards/gmmk/pro/keymaps/mike1808/rgb_matrix_ledmaps.h b/keyboards/gmmk/pro/keymaps/mike1808/rgb_matrix_ledmaps.h new file mode 100644 index 0000000000..eace217d18 --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/rgb_matrix_ledmaps.h @@ -0,0 +1,100 @@ +/* Copyright 2021 Mikael Manukyan <arm.localhost@gmail.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/>. + */ +#pragma once + +#include "quantum.h" + +#ifdef RGB_MATRIX_LEDMAPS_ENABLED + +// no association keycode +# define XXX \ + { 0, 0, 0 } + +// clang-format off +# define RGB_MATRIX_LAYOUT_LEDMAP( \ + ul1, k13, k26, k36, k31, k33, k07, k63, k71, k76, ka6, ka7, ka3, ka5, k97, k01, ur1, \ + ul2, k16, k17, k27, k37, k47, k46, k56, k57, k67, k77, k87, k86, k66, ka1, k65, ur2, \ + ul3, k11, k10, k20, k30, k40, k41, k51, k50, k60, k70, k80, k81, k61, ka2, k15, ur3, \ + ul4, k21, k12, k22, k32, k42, k43, k53, k52, k62, k72, k82, k83, ka4, k25, ur4, \ + ul5, k00, k14, k24, k34, k44, k45, k55, k54, k64, k74, k85, k91, k35, k75, ur5, \ + ul6, k06, k90, k93, k94, k95, k92, k04, k03, k73, k05, ur6 \ + ) \ + { \ + k13, k16, k11, k21, k00, k06, k26, k17, \ + k10, k12, k14, k90, k36, k27, k20, k22, \ + k24, k93, k31, k37, k30, k32, k34, k33, \ + k47, k40, k42, k44, k07, k46, k41, k43, \ + k45, k94, k63, k56, k51, k53, k55, k71, \ + k57, k50, k52, k54, k76, k67, k60, k62, \ + k64, k95, ka6, k77, k70, k72, k74, k92, \ + ka7, k87, k80, k82, k85, ka3, k86, k81, \ + k83, k04, ka5, ul1, ur1, k97, ul2, ur2, \ + k65, ul2, ur2, k15, ul3, ur3, k66, k05, \ + ul3, ur3, k75, ul4, ur4, ka1, k25, ul5, \ + ur5, k61, k91, ul6, ur6, ka2, k35, k03, \ + ka4, k73 \ + } +// clang-format on +typedef uint8_t ledmap[DRIVER_LED_TOTAL][3]; +extern const ledmap ledmaps[]; + +void set_layer_rgb(uint8_t led_min, uint8_t led_max, int layer); + +void rgb_matrix_layers_enable(void); +void rgb_matrix_layers_disable(void); + +// Just a handy defines to make our ledmaps look better +# define RED \ + { HSV_RED } +# define CORAL \ + { HSV_CORAL } +# define ORANGE \ + { HSV_ORANGE } +# define GOLDEN \ + { HSV_GOLDENROD } +# define GOLD \ + { HSV_GOLD } +# define YELLOW \ + { HSV_YELLOW } +# define CHART \ + { HSV_CHARTREUSE } +# define GREEN \ + { HSV_GREEN } +# define SPRING \ + { HSV_SPRINGGREEN } +# define TURQ \ + { HSV_TURQUOISE } +# define TEAL \ + { HSV_TEAL } +# define CYAN \ + { HSV_CYAN } +# define AZURE \ + { HSV_AZURE } +# define BLUE \ + { HSV_BLUE } +# define PURPLE \ + { HSV_PURPLE } +# define MAGENT \ + { HSV_MAGENTA } +# define PINK \ + { HSV_PINK } +# define BLACK \ + { HSV_BLACK } + +#endif // RGB_MATRIX_LEDMAPS_ENABLED + +void rgb_matrix_indicators_keymap(void); +void rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max); diff --git a/keyboards/gmmk/pro/keymaps/mike1808/rules.mk b/keyboards/gmmk/pro/keymaps/mike1808/rules.mk new file mode 100644 index 0000000000..a6d4e6259c --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/rules.mk @@ -0,0 +1,25 @@ +VIA_ENABLE = no + +COMBO_ENABLE = yes +COMMAND_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RAW_ENABLE = no +CONSOLE_ENABLE = yes + +WPM_ENABLE = no + +RGB_MATRIX_LEDMAPS = yes + +SRC += utils.c +SRC += mike1808.c +SRC += process_record.c +SRC += encoder.c + +ifeq ($(strip $(WPM_ENABLE)), yes) + SRC += fun.c +endif + +ifeq ($(strip $(RGB_MATRIX_LEDMAPS)), yes) + SRC += rgb_matrix_ledmaps.c + OPT_DEFS += -DRGB_MATRIX_LEDMAPS_ENABLED +endif diff --git a/keyboards/gmmk/pro/keymaps/mike1808/utils.c b/keyboards/gmmk/pro/keymaps/mike1808/utils.c new file mode 100644 index 0000000000..35ae20b126 --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/utils.c @@ -0,0 +1,64 @@ +/* Copyright 2021 Mikael Manukyan <arm.localhost@gmail.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 "utils.h" + +void store_rgb_state_to_eeprom() { + uint8_t mode = rgb_matrix_get_mode(); + uint8_t speed = rgb_matrix_get_speed(); + HSV color = rgb_matrix_get_hsv(); + + rgb_matrix_mode(mode); + rgb_matrix_set_speed(speed); + rgb_matrix_sethsv(color.h, color.s, color.v); +} + +void press(KeyPressState *self) { + self->_count++; + + dprintf("KPS: press: %d\n", self->_count); + + // pressed the first time + if (self->_count == 1) { + self->hander(true); + } +} + +void release(KeyPressState *self) { + self->_count--; + + dprintf("KPS: release: %d\n", self->_count); + + // all keys are relased + if (self->_count == 0) { + self->hander(false); + } +} + +void reset(KeyPressState *self) { + self->_count = 0; +} + +KeyPressState *NewKeyPressState(key_press_handler handler) { + KeyPressState *kps = (KeyPressState *)(malloc(sizeof(KeyPressState))); + + kps->_count = 0; + kps->press = press; + kps->release = release; + kps->reset = reset; + kps->hander = handler; + + return kps; +} diff --git a/keyboards/gmmk/pro/keymaps/mike1808/utils.h b/keyboards/gmmk/pro/keymaps/mike1808/utils.h new file mode 100644 index 0000000000..49d0745cf8 --- /dev/null +++ b/keyboards/gmmk/pro/keymaps/mike1808/utils.h @@ -0,0 +1,32 @@ +/* Copyright 2021 Mikael Manukyan <arm.localhost@gmail.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/>. + */ +#pragma once +#include "quantum.h" + +void store_rgb_state_to_eeprom(void); + +typedef void (*key_press_handler)(bool); + +typedef struct KeyPressState KeyPressState; +struct KeyPressState { + int _count; + void (*press)(KeyPressState *self); + void (*release)(KeyPressState *self); + void (*reset)(KeyPressState *self); + key_press_handler hander; +}; + +KeyPressState *NewKeyPressState(key_press_handler); diff --git a/keyboards/gmmk/pro/keymaps/via/keymap.c b/keyboards/gmmk/pro/keymaps/via/keymap.c deleted file mode 100644 index 940cc1c1f3..0000000000 --- a/keyboards/gmmk/pro/keymaps/via/keymap.c +++ /dev/null @@ -1,75 +0,0 @@ -/* 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 - - - [0] = LAYOUT( - 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_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, KC_DEL, - 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_PGUP, - 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_PGDN, - 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_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -}; - - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - return true; -} diff --git a/keyboards/gmmk/pro/keymaps/via/rules.mk b/keyboards/gmmk/pro/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807c..0000000000 --- a/keyboards/gmmk/pro/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/gmmk/pro/keymaps/wholesomeducky/keymap.c b/keyboards/gmmk/pro/keymaps/wholesomeducky/keymap.c deleted file mode 100644 index fded532562..0000000000 --- a/keyboards/gmmk/pro/keymaps/wholesomeducky/keymap.c +++ /dev/null @@ -1,57 +0,0 @@ -/* 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 -// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del -// Tab Q W E R T Y U I O P [ ] \ PgUp -// Ct_L A S D F G H J K L ; " Enter PgDn -// Sh_L Z X C V B N M , . ? Sh_R Up Win_R -// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right - - - [0] = LAYOUT( - 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_MEDIA_PLAY_PAUSE, - 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_DEL, - 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_PGUP, - KC_LCTL, 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_PGDN, - 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_RGUI, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_END, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, RESET, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_END - ), - -}; - - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_MS_WH_RIGHT); - } else { - tap_code(KC_MS_WH_LEFT); - } - return true; -} diff --git a/keyboards/gmmk/pro/keymaps/willwm/keymap.c b/keyboards/gmmk/pro/keymaps/willwm/keymap.c deleted file mode 100644 index a17f793319..0000000000 --- a/keyboards/gmmk/pro/keymaps/willwm/keymap.c +++ /dev/null @@ -1,74 +0,0 @@ -/* 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 Del Rotary(Mute) -// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Home -// 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 - - - [0] = LAYOUT( - 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_DEL, 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, KC_HOME, - 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_PGUP, - MO(1), 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_PGDN, - 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_END, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - - [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, - KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, - _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END - ), - - [2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -}; - - -void encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } -} diff --git a/keyboards/gmmk/pro/keymaps/willwm/keymap.json b/keyboards/gmmk/pro/keymaps/willwm/keymap.json deleted file mode 100644 index d2325d2c13..0000000000 --- a/keyboards/gmmk/pro/keymaps/willwm/keymap.json +++ /dev/null @@ -1,181 +0,0 @@ -{ - "version": 1, - "notes": "", - "documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n", - "keyboard": "gmmk/pro", - "keymap": "willwm", - "layout": "LAYOUT", - "layers": [ - [ - "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_DEL", - "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", - "KC_HOME", - "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_PGUP", - "MO(1)", - "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_PGDN", - "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_END", - "KC_LCTL", - "KC_LGUI", - "KC_LALT", - "KC_SPC", - "KC_RALT", - "MO(1)", - "KC_RCTL", - "KC_LEFT", - "KC_DOWN", - "KC_RGHT" - ], - [ - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_INS", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_PSCR", - "KC_CAPS", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "RESET", - "KC_NO", - "KC_TRNS", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_PGUP", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_TRNS", - "KC_NO", - "KC_HOME", - "KC_PGDN", - "KC_END" - ] - ], - "author": "" -}
\ No newline at end of file diff --git a/keyboards/gmmk/pro/keymaps/willwm/readme.md b/keyboards/gmmk/pro/keymaps/willwm/readme.md deleted file mode 100644 index 1c169faac6..0000000000 --- a/keyboards/gmmk/pro/keymaps/willwm/readme.md +++ /dev/null @@ -1,22 +0,0 @@ -<img width="567" alt="layer0" src="https://user-images.githubusercontent.com/303042/118893170-da3e3280-b8b6-11eb-9459-f6c339c59bde.png"> -<img width="566" alt="layer1" src="https://user-images.githubusercontent.com/303042/118893191-e0341380-b8b6-11eb-8641-a4fdeeb7cbb2.png"> - -# willwm GMMK Pro Layout - -Based on [gmmk/pro/keymaps/default](../default/keymap.c), with [VIA support](./rules.mk) - -Layer 0 - -* Delete between F12 and rotary encoder (replaces PrtSc) -* Home below rotary encoder (replaces Del) -* MO(1) in default location and Caps Lock location - -Layer 1 - -* Tab -> Caps Lock -* Del -> Insert -* Home -> PrtSc -* Left Arrow -> Home -* Right Arrow -> End -* Up Arrow -> PgUp -* Down Arrow -> PgDn diff --git a/keyboards/gmmk/pro/keymaps/willwm/rules.mk b/keyboards/gmmk/pro/keymaps/willwm/rules.mk deleted file mode 100644 index 511b50e19c..0000000000 --- a/keyboards/gmmk/pro/keymaps/willwm/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -VIA_ENABLE = yes -UNICODE_ENABLE = yes |