The GMMK 2 does what the GMMK PRO should have done from the start with support for open-source QMK and VIA firmware customization tools. I did check against a couple of QMK configurators, and Glorious just put out its own QMK firmware on Github, but do not have enough experience with VIA to confirm how well the GMMK 2 plays there. Regardless, in the market this keyboard is a part of, having a first-party software solution is crucial, which is Glorious Core, and I had a pre-release version made available to me so users wouldn't find out about the GMMK 2, but version 1.1.25 or newer should be available on this page at launch. The installer is part of an archived folder on the product page. Installation is simple enough and asks for ~500 MB of storage space while actually taking exactly what it asks for, too. It is a lightweight program otherwise, which will please users no doubt.
With the keyboard connected to my PC, Glorious Core took a couple of seconds to recognize it, with the first image above showing as much. Given the launch coverage here, there was no available firmware update, so I examined the software as it pertains to the GMMK 2 right away. As with my previous time with Glorious Core, I was mostly left impressed. It scales well with high DPI displays and has fully functional maximize and minimize buttons—things many still struggle with when it comes to their peripheral software solutions. Glorious has also addressed one of my complaints from before by adding helpful cue tips that can be brought up as needed or hidden if you are already familiar with the setting. Some user experience tweaks are still needed for it to be on par with competing mainstream drivers though, including moving menu items to a central location rather than having them on the side, expanding the sub-menus underneath to be nested rather than in a single column, highlighting the changes made on the virtual keyboard for remapping, a revamped macro editor with better editing tools, and so on. Speaking of the virtual keyboard, notice how it correctly recognizes the model as the full-size US language layout, but still renders out an ISO version. I am sure this bug will be fixed shortly, if it hasn't been fixed by the time the keyboard launches.
Seen above is a walkthrough of customizing the GMMK 2 in Glorious Core. Thankfully, the incorrect render isn't detrimental to key mapping. As you can see above, the actual keys show up when hovering the cursor over where they are on the physical keyboard. Otherwise, everything is similar to my experience with the GMMK PRO, though one of the tips towards the end of the video wasn't popping up as expected. You can select one of three profiles on the home page or keyboard-specific section, and I appreciate the settings being large and clear enough. Three menus pertain to the GMMK 2, with the Lighting menu opening up a plethora of preset lighting effects to choose from on the right, including static, dynamic, and reactive effects. Options are available for each, including brightness and speed as appropriate—note that the speed on the virtual keyboard is way faster than on the GMMK 2. The RGB color can be chosen from a color palette or manually by picking the specific R/G/B brightness in a 0–255 range; 256 steps for each color, which makes for a total of 16.8 M colors per LED. Configuring the side lighting separately requires you to click on the per-key sub-menu where you can select them even if the virtual keyboard does not explicitly show them. There are three layers to choose from for each customization setting, which works well for the second menu that is all about key binding. Here too are several preset options, including a single key or keystroke, media playback, and volume control, mouse strokes, a macro recorder, and OS shortcuts. The third tab is still a waste of space, but slightly improved from before as it not only has the polling-rate options—sorry, no 8 kHz polling here—but also a weird input latency option that feels redundant in the presence of polling rate anyway. I also don't know why anyone would want more than the 8 ms at 125 Hz polling.