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

New custom keymap for Glorious GMMK Pro ANSI layout #16199

Merged
merged 75 commits into from
Apr 19, 2022
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
3749240
Initial commits using @Jonavin firmware as baseline
gourdo1 Feb 2, 2022
470ba9d
Added latest firmware binary and cheatsheet PDF
gourdo1 Feb 2, 2022
ca94182
Allow .bin file syncing
gourdo1 Feb 2, 2022
abd9e99
Moved Insert to Shift-Backspace so Shift-Delete still works in Window…
gourdo1 Feb 2, 2022
0283678
Merge branch 'qmk:master' into master
gourdo1 Feb 2, 2022
a194d90
Update kt60_m.c
gourdo1 Feb 2, 2022
0743ffb
Create readme.md
gourdo1 Feb 2, 2022
3789a4d
Update readme.md
gourdo1 Feb 2, 2022
aa9eafd
Update readme.md
gourdo1 Feb 2, 2022
61c005b
Merge branch 'qmk:master' into master
gourdo1 Feb 2, 2022
6aa523c
Merge branch 'qmk:master' into master
gourdo1 Feb 2, 2022
809bf65
GPL Copyright text updates
gourdo1 Feb 3, 2022
e41bb1e
readme updates
gourdo1 Feb 3, 2022
d0330bd
Update readme.md
gourdo1 Feb 4, 2022
04b9634
Update readme.md
gourdo1 Feb 4, 2022
02c7637
Merge branch 'qmk:master' into master
gourdo1 Feb 4, 2022
29ccc3d
Update readme.md
gourdo1 Feb 4, 2022
b9b50e6
changes to prepare for pull request
gourdo1 Feb 4, 2022
5606cac
Update readme.md
gourdo1 Feb 4, 2022
c41a27f
pdf link fix
gourdo1 Feb 4, 2022
d1c1511
Merge branch 'master' of https://github.com/gourdo1/qmk_firmware
gourdo1 Feb 4, 2022
144085c
Merge branch 'qmk:master' into master
gourdo1 Feb 4, 2022
6b9774b
Merge branch 'qmk:master' into PR-branch
gourdo1 Feb 4, 2022
2603f44
Delete GMMK_Pro_Cheatsheet.pdf
gourdo1 Feb 4, 2022
e9ef8a1
Update keyboards/gmmk/pro/ansi/keymaps/gourdo1/keymap.c
gourdo1 Feb 4, 2022
7f69017
Update keyboards/gmmk/pro/ansi/keymaps/gourdo1/keymap.c
gourdo1 Feb 4, 2022
646b00f
Update keyboards/gmmk/pro/ansi/keymaps/gourdo1/keymap.c
gourdo1 Feb 4, 2022
9c3bfdc
Made recommended changes to keymap.c
gourdo1 Feb 4, 2022
f0071f3
Update keymap.c
gourdo1 Feb 4, 2022
8d50ae2
Update keymap.c
gourdo1 Feb 4, 2022
c8425bd
Delete keymap.c
gourdo1 Feb 4, 2022
abb52fd
Merge branch 'PR-branch' of https://github.com/gourdo1/qmk_firmware i…
gourdo1 Feb 4, 2022
3bd3839
Delete keymap.c
gourdo1 Feb 4, 2022
9d37801
PR recommendations, formatting changes and default hsv updated in key…
gourdo1 Feb 5, 2022
1309a60
Re-formatting & RGB cleanup
gourdo1 Feb 5, 2022
1f504a2
fixed missing breaks in gourdo1.c + some cosmetic fixes
gourdo1 Feb 5, 2022
4745774
added RGB saturation shortcuts to FN layer
gourdo1 Feb 5, 2022
3236182
Updated FN layer RGB lighting
gourdo1 Feb 5, 2022
8812d08
Update readme.md
gourdo1 Feb 7, 2022
f93d2be
Update readme.md
gourdo1 Feb 7, 2022
4410a7d
Merge branch 'qmk:master' into PR-branch
gourdo1 Feb 8, 2022
9ffc707
first attempt to create exponential encoder volume
gourdo1 Feb 17, 2022
323c060
fixes to encoder
gourdo1 Feb 17, 2022
9520f48
Update readme.md
gourdo1 Feb 17, 2022
5a12a0d
Merge branch 'qmk:master' into encoder-test
gourdo1 Feb 17, 2022
3482f7c
Update readme.md
gourdo1 Feb 17, 2022
dde59ee
Merge branch 'qmk:master' into PR-branch
gourdo1 Feb 17, 2022
39c9fd1
Merge pull request #2 from gourdo1/encoder-test
gourdo1 Feb 17, 2022
b2adb74
Update readme.md
gourdo1 Feb 17, 2022
7810552
Merge branch 'PR-branch' of https://github.com/gourdo1/qmk_firmware i…
gourdo1 Feb 17, 2022
42928a5
Merge branch 'qmk:master' into PR-branch
gourdo1 Feb 17, 2022
f954ad4
Caps Word added
gourdo1 Feb 25, 2022
3e176e6
Merge branch 'qmk:master' into PR-branch
gourdo1 Feb 25, 2022
231259b
Merge branch 'qmk:master' into PR-branch
gourdo1 Feb 27, 2022
e3da1e6
Added double tap ESC to revert to base layer
gourdo1 Feb 27, 2022
c32d87d
Merge branch 'qmk:master' into PR-branch
gourdo1 Feb 28, 2022
3d02077
Merge branch 'qmk:master' into PR-branch
gourdo1 Mar 1, 2022
703ff6e
Update readme.md
gourdo1 Mar 1, 2022
43838e0
Merge branch 'qmk:master' into PR-branch
gourdo1 Mar 15, 2022
b18a701
Squashed commit of the following:
gourdo1 Mar 15, 2022
8049c1d
Added back VIA support
gourdo1 Mar 16, 2022
eb7a4e9
Merge branch 'qmk:master' into PR-branch
gourdo1 Mar 22, 2022
f3f36d7
Update readme.md
gourdo1 Mar 24, 2022
ec14a44
Update readme.md
gourdo1 Mar 30, 2022
3802941
Merge branch 'qmk:master' into PR-branch
gourdo1 Apr 7, 2022
7444680
Domain shortcuts added to keymap
gourdo1 Apr 7, 2022
a9ccdfe
domain macro fixes
gourdo1 Apr 7, 2022
2a474bf
Update gourdo1.c
gourdo1 Apr 7, 2022
112c327
Update readme.md
gourdo1 Apr 7, 2022
d995ee1
counteract pro.c changes to resolve encoder issues
gourdo1 Apr 7, 2022
6bdfe1e
Update readme.md
gourdo1 Apr 8, 2022
9799729
Add NKRO toggle on [Fn]+R
gourdo1 Apr 11, 2022
21d835f
Update readme.md
gourdo1 Apr 11, 2022
3792215
swap app test
gourdo1 Apr 11, 2022
9a2c274
Add EEPROM Clear capability to Fn-ESC; Update readme.md
gourdo1 Apr 12, 2022
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
Binary file not shown.
48 changes: 48 additions & 0 deletions keyboards/gmmk/pro/ansi/keymaps/gourdo1/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/* Copyright 2021 Jonavin Eng @Jonavin
Copyright 2022 gourdo1 <[email protected]>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/


#pragma once

#define TAPPING_TOGGLE 2
// TT set to two taps

/* 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

// #define TAPPING_TERM 180
#define TAPPING_TERM 300
#define TAPPING_TERM_PER_KEY

#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_DISABLE_WHEN_USB_SUSPENDED
#endif

// RGB step values
#define RGBLIGHT_HUE_STEP 32 // The number of steps to cycle through the hue by (default 10)
#define RGBLIGHT_SAT_STEP 17 // The number of steps to increment the saturation by (default 17)
#define RGBLIGHT_VAL_STEP 17 // The number of steps to increment the brightness by (default 17)

// add fifth layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable
#if defined COLEMAK_LAYER_ENABLE
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
#define _COLEMAK 4
#endif // COLEMAK_LAYER_ENABLE
335 changes: 335 additions & 0 deletions keyboards/gmmk/pro/ansi/keymaps/gourdo1/keymap.c

Large diffs are not rendered by default.

76 changes: 76 additions & 0 deletions keyboards/gmmk/pro/ansi/keymaps/gourdo1/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# gourdo1's GMMK Pro layout

This Windows-centric layout is based on Jonavin's GMMK Pro layout with some modifications to keymap, functionality and RGB.

Features:

Basic Shortcuts

* Most default Glorious shortcuts enabled
* Fn-Backslash for Bootloader mode
* Capslock toggled by double tap of Left Shift key or FN + Capslock (RGB highlighted)
* Gaming mode (FN + Win-key) locks out Win-key as well as double-tap Shift Capslock; Also RGB highlights WSAD and nearby gaming
related keys
* Home key on F-key row, Del key next to Backspace
* Insert accessible via Shift-Backspace (so shift delete still works in Windows Explorer)
* PrtScrn, Scroll Lock, Pause/Break are top right on the keyboard: Fn+F11, Fn+F12, Fn+Home

Numpad Overlay Layer

* Re-worked/simplified overlay numpad upon Capslock key hold (temp) or double press (locked) with RGB highlighting
* Numpad layer (capslock key) disables much of keyboard, except X, C, V for cut, copy, paste, WASD become cursor keys and all number
keys become numpad versions (so Alt character codes work regardless of which number keys you use)
* Numpad turns both right arrow and End keys into Numpad-Enter for convenience.
* Fn & N keys light up orange if system numlock is off (inverted status), indicating numpad keys will not deliver expected output
(FN + N to toggle)

Encoder Functionality

* Default knob turn changes volume; button press toggles mute
* FN knob turn changes RGB idle timeout
* holding Left Shift changes layers
* holding Right Shift navigates page up/down
* holding Left Ctrl navigates prev/next word
* holding Right Ctrl changes RGB hue/color
* holding Left Alt changes media prev/next track

RGB

* RGB backlight lighting effect: FN + up/down
* RGB backlight effect speed: FN + left/right
* RGB backlight hue cycle: FN + A/D
* RGB backlight brightness: FN + W/S
* RGB backlight night mode toggle: FN + Z (indicators still work)
* RGB backlight timeout: FN + Encoder or "," and "." (default 15 minutes)
- indicators in FN layer using RGB in F-key and number rows to show the current timeout in minutes
* RGB indicators on left side LEDs: Capslock (green), Scroll Lock (red), and Num Lock not set (orange)
* FN + Z to turn off all RGB lights except rgb indicators; press again to toggle

Link to latest firmware binary: https://github.com/gourdo1/qmk_firmware/tree/master/keyboards/gmmk/pro/ansi/keymaps/gourdo1/gmmk_pro_ansi_gourdo1.bin

Link to cheatsheet: https://github.com/gourdo1/qmk_firmware/tree/master/keyboards/gmmk/pro/ansi/keymaps/gourdo1/GMMK_Pro_Cheatsheet.pdf


rules.mk Options
================

STARTUP_NUMLOCK_ON = yes - turns on NUMLOCK by default
ENCODER_DEFAULTACTIONS_ENABLE = yes - Enabled default encoder funtions
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 numpad keys, so should generally be off when numpad layer is active.
COLEMAK_LAYER_ENABLE = yes - Enabled optional 5th layer for COLEMAK layout. Use Shift and encoder to enter 5th layer.


## 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/131255937-06c9691b-835f-4c94-93e6-6d1dc3de272b.png)

Layer 2 (Caps Lock Mod)
![image](https://user-images.githubusercontent.com/71780717/124177683-8b231a00-da7e-11eb-9434-e2475f679a54.png)

Optional COLEMAK layer
![image](https://user-images.githubusercontent.com/71780717/131235050-980d2f54-2d23-4ae8-a83f-9fcdbe60d6cb.png)
152 changes: 152 additions & 0 deletions keyboards/gmmk/pro/ansi/keymaps/gourdo1/rgb_matrix_map.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
/* Copyright 2021 Jonavin Eng @Jonavin
Copyright 2022 gourdo1 <[email protected]>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/


#ifdef RGB_MATRIX_ENABLE

// Custom RGB Colours
#define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps
#define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colours

// RGB LED locations
enum led_location_map {
LED_ESC, // 0, ESC, k13
LED_GRV, // 1, ~, k16
LED_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_LETTERS[] = { LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0,
LED_Q, LED_W, LED_E, LED_R, LED_T, LED_Y, LED_U, LED_I, LED_O, LED_P,
LED_A, LED_S, LED_D, LED_F, LED_G, LED_H, LED_J, LED_K, LED_L,
LED_Z, LED_X, LED_C, LED_V, LED_B, LED_N, LED_M};

const uint8_t LED_LIST_NUMPAD[] = {
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_U, LED_I, LED_O, LED_P,
LED_J, LED_K, LED_L, LED_SCLN, LED_ENT,
LED_M, LED_COMM, LED_DOT, LED_SLSH, LED_END,
LED_RIGHT
};

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
16 changes: 16 additions & 0 deletions keyboards/gmmk/pro/ansi/keymaps/gourdo1/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
LTO_ENABLE = yes # link time optimization -- achieves a smaller compiled size
CONSOLE_ENABLE = no
COMMAND_ENABLE = no
MOUSEKEY_ENABLE = no

VIA_ENABLE = no
TAP_DANCE_ENABLE = yes
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite

TD_LSFT_CAPSLOCK_ENABLE = yes
IDLE_TIMEOUT_ENABLE = yes
STARTUP_NUMLOCK_ON = yes
ENCODER_DEFAULTACTIONS_ENABLE = no

COLEMAK_LAYER_ENABLE = yes # Enable Colemak layer / set to no to disable
INVERT_NUMLOCK_INDICATOR = yes
Loading