I’ve been keeping up with a bit of tradition and got myself a(nother) keyboard for my birthday. The selection criteria was relatively easy:
- Topre switches (which I really enjoy on my Leopold FC660C, which remains my main driver at work)
- Backlit (I’ve used this more than I thought I would on my TKL CODE w/ 65g Zealios, which is what I’m looking to replace with a Topre board — RIP WASD)
- TKL (Ten-Key-Less)
Since Topre keyboards seem to be very much falling out of favor, there is exactly one option I could find: The Realforce GX1 “Gamer” (sigh) keyboard. This model is not listed as supporting macOS (in contrast to most of Realforce’s other keyboards). Nonetheless I gave this a go. I even went for a limited Hatsune Miku collab edition, since it had PBT keycaps (instead of ABS on the normal model), I like cyan and pink, it was one of the few models that shipped to Germany, and it was on sale.
I ordered the keyboard from Amazon Japan on a Monday, and it arrived the same week Friday. That is still somewhat insane to me…
It is a very nicely built keyboard and as solid as the Leopold (which is rock-solid) — no flex, no bend. In contrast to the Leopold, it features a floating key design, but that doesn’t seem to impact the nice Topre “thock” sound that I like.
In a somewhat unusual move for a Topre keyboard the switches and keycaps are Cherry MX compatible, albeit with the LED / backlight above the stem. The key legends are simple, and thankfully don’t use one of those (IMO) rather ugly “gamer” fonts. I was a bit worried about the legibility of the legends on the white keycaps with a white backlight, but it’s a non-issue in person (as long as the backlight is on).
It is possible to “de-gamerify” the keyboard a bit, but for that (and key remapping) you need to use the Windows (only) software — at least once (note: Realforce’s Mac software will not recognize the keyboard at all). But it is possible to both flash the keyboard firmware and configure the keyboard on Mac computers with Apple silicon. For that, I used UTM (a system emulator and virtual machine host) and virtualized Windows 11 ARM in order to run the REALFORCE Software for Windows. Once Windows 11 and the Realforce Software is installed, you can then pass-through the USB keyboard device so that the software will be able to find it.
The firmware update is a bit iffy, since it reconfigures and reconnects the USB device (presumably to put it into the firmware update mode), which means you need to re-enable pass-through for the USB device again in UTM. I’d recommend never physically disconnecting the keyboard, but I did force restart UTM / Windows after initiating the firmware upgrade mode, and it then completed successfully on that second run.
As for configuration, I
- set the backlight to Pure White and disabled the boot up pattern
- swapped the Win- and Alt-keys (not that there’s a great need to do this since you can also do this on the macOS side) since I had the CODE keyboard set up that way as well (using its DIP switches for Mac mode),
- added / modified a few Fn key combinations: This was mainly placing media keys on the Editing keys (as they were on the CODE) and moving the existing shortcuts that I replaced there to alphanumeric keys. For additional compatibility with how my CODE keyboard was set up, I set Fn+F11 to Backlight Brightness, Fn+PrtScn to Eject (this allows for easy sleep etc. shortcuts), and Fn+Pause to Mute. I also added the Easy Macro keys to Fn+F9/F10 as well (since it made sense to put them next to the other preconfigured macro keys — not that I currently have any use for them).

After those settings are saved to the keyboard they’re retained and the software is not needed anymore — unless you change your mind about any of those settings. All in all, I’m very happy with the keyboard (but I am also used to paying a fair amount of money for somewhat exotic keyboards).

On top of that, I’m still using a minor software remap to put Esc on Caps Lock (which I’ve become very accustomed to due to the Leopold FC660C in addition to the awkward Macbook Pros with the Touchbar), see the other post for details, but here’s my current script for completeness:
#!/usr/bin/env bash
# https://developer.apple.com/library/content/technotes/tn2450/_index.html
# https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-1035.41.2/IOHIDFamily/IOHIDUsageTables.h.auto.html
# https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-1035.41.2/IOHIDFamily/AppleHIDUsageTables.h.auto.html
FROM="\"HIDKeyboardModifierMappingSrc\""
TO="\"HIDKeyboardModifierMappingDst\""
ESCAPE="0x700000029"
CAPS_LOCK="0x700000039"
PRINT_SCREEN="0x700000046"
SCROLL_LOCK="0x700000047"
PAUSE="0x700000048"
INSERT="0x700000049"
F13="0x700000068"
F14="0x700000069"
F15="0x70000006A"
LEFT_ALT="0x7000000E2"
LEFT_GUI="0x7000000E3"
RIGHT_CTRL="0x7000000E4"
RIGHT_ALT="0x7000000E6"
RIGHT_GUI="0x7000000E7"
PC_MENU="0x700000065"
MEDIA_PLAY="0xC000000B0"
MEDIA_NEXT="0xC000000B5"
MEDIA_PREV="0xC000000B6"
MEDIA_EJECT="0xC000000B8"
# REALFORCE GX1 (Hatsune Miku) X1UD w/ Win & Alt swapped
hidutil property --matching '{"ProductID":0x317, "VendorID":0x853}' --set "{\"UserKeyMapping\":[
{$FROM: $CAPS_LOCK, $TO: $ESCAPE},
{$FROM: $INSERT, $TO: $MEDIA_PLAY},
{$FROM: $F13, $TO: $MEDIA_EJECT},
]}"
# WASDv2 / CODE in Mac mode
hidutil property --matching '{"ProductID":0x269, "VendorID":0x4d9}' --set "{\"UserKeyMapping\":[
{$FROM: $CAPS_LOCK, $TO: $ESCAPE},
{$FROM: $INSERT, $TO: $MEDIA_PLAY},
{$FROM: $F13, $TO: $MEDIA_EJECT},
]}"
# Leopold FC660C
hidutil property --matching '{"ProductID":0x134, "VendorID":0x853}' --set "{\"UserKeyMapping\":[
{$FROM: $CAPS_LOCK, $TO: $ESCAPE},
{$FROM: $LEFT_GUI, $TO: $LEFT_ALT},
{$FROM: $LEFT_ALT, $TO: $LEFT_GUI},
{$FROM: $RIGHT_ALT, $TO: $RIGHT_GUI},
{$FROM: $RIGHT_CTRL, $TO: $RIGHT_ALT},
{$FROM: $PC_MENU, $TO: $RIGHT_CTRL},
{$FROM: $INSERT, $TO: $MEDIA_PLAY},
{$FROM: $PRINT_SCREEN, $TO: $MEDIA_EJECT},
{$FROM: $SCROLL_LOCK, $TO: $MEDIA_PREV},
{$FROM: $PAUSE, $TO: $MEDIA_NEXT},
]}"