Skip to content

Added support for GMMK3 Pro 75% keyboard#26292

Open
gyro5 wants to merge 9 commits into
qmk:masterfrom
gyro5:gmmk3_p75
Open

Added support for GMMK3 Pro 75% keyboard#26292
gyro5 wants to merge 9 commits into
qmk:masterfrom
gyro5:gmmk3_p75

Conversation

@gyro5

@gyro5 gyro5 commented Jun 23, 2026

Copy link
Copy Markdown

This PR adds support for the GMMK3 Pro 75% keyboard to the main QMK repository.

Description

The GMMK3 Pro 75% keyboard has a current QMK version on Glorious's own repository, but this version is not up-to-date with the current QMK version, and it lacks some features that is presented in the proprietary firmware (such as some key bindings for the Fn layer and the RGB zone changing feature).

This PR adds support for this keyboard to the main QMK repository, including:

  • Updated the keyboard files to be compatible with the latest QMK version, including migrating RGB matrix data to keyboard.json.
  • Added the RGB zone changing feature and some key bindings in the Fn layer. This is described in the readme files of the keymaps.
  • Fixed a bug where the dip switch in the ANSI version worked reversely (as in, switching to Window mode actually switches it to Mac mode).

I have tested this PR with my own keyboard, which is the ANSI version. The ISO version was updated in a similar way, but I don't have the ISO keyboard to test. Also, my apologies for having everything in one single commit. I did it in multiple commits, but messed up my commit author name and email, so I had to re-forked and copied-pasted the new files.

Please let me know if I need to fix anything. Thanks!

Types of Changes

  • Core
  • Bugfix
  • New feature
  • Enhancement/optimization
  • Keyboard (addition or update)
  • Keymap/layout (addition or update)
  • Documentation

Issues Fixed or Closed by This PR

N/A

Checklist

  • My code follows the code style of this project: C, Python
  • I have read the PR Checklist document and have made the appropriate changes.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Comment thread keyboards/gmmk/gmmk3/p75/ansi/ansi.c Outdated
Comment thread keyboards/gmmk/gmmk3/p75/ansi/ansi.c Outdated
Comment thread keyboards/gmmk/gmmk3/p75/ansi/rules.mk Outdated
Comment thread keyboards/gmmk/gmmk3/p75/ansi/keymaps/default/keymap.c Outdated
@gyro5

gyro5 commented Jun 26, 2026

Copy link
Copy Markdown
Author

Hi drashna, thanks for the review. I have followed most of the requested changes, but I found that removing the rules.mk files caused the would-be-enabled features to not be enabled (such as RGB matrix and dip switch map). I didn't find any information in the documentation about enabling those features in info.json file, so I instead changed it to a common rules.mk file for both keyboard versions that contains only the enabled features. Please have a look when you have the time!

@gyro5
gyro5 requested a review from drashna June 26, 2026 13:34
Comment thread keyboards/gmmk/gmmk3/p75/ansi/keyboard.json Outdated
Comment thread keyboards/gmmk/gmmk3/p75/ansi/ansi.c Outdated
Comment thread keyboards/gmmk/gmmk3/p75/iso/iso.c Outdated
Comment thread keyboards/gmmk/gmmk3/p75/iso/keyboard.json Outdated
Comment thread keyboards/gmmk/gmmk3/p75/halconf.h Outdated
Comment thread keyboards/gmmk/gmmk3/p75/iso/keymaps/default/keymap.c
Comment thread keyboards/gmmk/gmmk3/p75/ansi/readme.md Outdated
Comment thread keyboards/gmmk/gmmk3/p75/iso/readme.md Outdated
Comment thread keyboards/gmmk/gmmk3/p75/iso/keymaps/default/keymap.c Outdated
Comment thread keyboards/gmmk/gmmk3/p75/info.json
@gyro5

gyro5 commented Jun 26, 2026

Copy link
Copy Markdown
Author

Thanks for the review! I have added the changes as requested. Also, I have removed the macro definition with the 2 weird underscores, as it was used by Glorious for the rgb matrix config, which I moved to JSON, so it's not needed anymore.

@zvecr zvecr left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are still unresolved suggestions.

Comment thread keyboards/gmmk/gmmk3/p75/iso/keyboard.json Outdated
Comment thread keyboards/gmmk/gmmk3/p75/ansi/keyboard.json Outdated
Comment thread keyboards/gmmk/gmmk3/p75/info.json Outdated
Co-authored-by: Joel Challis <git@zvecr.com>
@gyro5

gyro5 commented Jun 27, 2026

Copy link
Copy Markdown
Author

My bad, I missed some of the requested changes. They should all be included now.

Comment thread keyboards/gmmk/gmmk3/p75/iso/iso.c Outdated
Comment thread keyboards/gmmk/gmmk3/p75/ansi/ansi.c Outdated
@gyro5

gyro5 commented Jun 28, 2026

Copy link
Copy Markdown
Author

Yeah, the spi_init() function was copied as-is from Glorious's code, and I'm not too sure about its necessity. I have removed it for both ansi and iso as suggested, and I have tested the new firmware on my ansi keyboard, which seems to work fine.

@gyro5
gyro5 requested a review from zvecr July 6, 2026 02:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants