Royal Kludge RK71 with Tactile Switches, Karabiner Customized Key Mapping for Macintosh

So apparently I’m building a Royal Kludge RK71 (stock: White, RGB lighting, brown switches; found one in condition “Good - Acceptable” for pennies), with Kailh Hako Royal Clear switches. (Discontinued and on sale.) Found the switch tester I picked up a while ago, and it was - kind of as expected - between Box Royal switches and the Hako Royal Clear, and the Royal Clears felt just a little bit better. Night and day compared to the Box Browns (and I’ve tried, and hated, “regular” brown switches from Cherry, Gateron, Outemu, etc).

A full keyboard with the tactile switches should be interesting, the form factor is good for this application (and it has a Mac layout built in as a layer, with Command/Option legends on the meta keys).

This board is soldered, not hot swap, so the soldering station gets a chance to continue to pay for itself. At least now I have experience and confidence!


Other peoples’ videos:

Update: It arrived a day early (and meanwhile, the switches still haven’t shipped). I’m not really digging the browns, as I expected, but that hasn’t stopped me from learning my way around.

Using this thing is about as cumbersome as I thought it would be.

Bluetooth Pairing: This keyboard can pair with 5 distinct devices, selected by hitting Fn and Q W E R or T. To pair with your first device (using the Q key), you first hit Fn+Q quickly, to change to that Bluetooth profile. All keys will flash a few times. Then, long-press Fn+Q for a few seconds until the Q key starts blinking. Now you’re ready to pair.

Key Combos: To get ` you have to hit Fn+Esc, and to get ~ it’s Fn+Shift+Esc. Oh, and, annoyingly, on an iPad at least, that combo will only work if you’ve toggled the keyboard to Win mode (Fn+A). In Mac mode (Fn+S), the Fn key brings up the emoji keyboard selector. Sigh.

Likewise, although the manual says the Fn+ one of the number key row will activate media keys in Mac mode, I found (using Inspect) that that activates the function (F1-F12) keys. To use media keys you have to switch it to Win mode.

Some manuals online say you can use Fn+left Alt to swap left alt and the OS key (essentially the Mac mode key binding), which would let Win mode use the Command/Option keys as they should be in a Mac layout, but mine doesn’t do that. (The manual that came in the box is wrong in some ways, too; it lists Fn+P as setting Bluetooth mode, but that’s not true on this board; it also says it only supports three Bluetooth pairings, using QWE, but this one supports five, at QWERT.)

All in all, for $41, with replacement switches on the way, it’s tolerable. It will never be my primary keyboard, but I can see using it with an iPad or with a laptop in many situations, especially, e.g., when a non-clicky keyboard is required. But it will always be a somewhat awkward compromise keyboard, with spotty documentation. Even at $57.99 (regular price), it’s maybe not that bad. But there’s a version up now for $69.99, and at that price point, honestly, I’d go with the Keychron K2, which is much higher quality and works a lot more consistently (with better documentation). It’s not as pretty, though. (I do kinda like the white board with solid color RGB back lights.)

Now I’m wondering if I can setup modifiers in software (Karabiner, probably) on a Mac; won’t help much for iOS/iPadOS devices, but would make this a bit easier to use with a laptop. Ideally, Fn+Shift+8 would activate Play/Pause, Fn+8 would activate F8, 8 would send 8, and Shift+8 would send *. 

Key Mapping Update: Playing with Karabiner (v12.10.0 on an old MacBook Air that maxes out at High Sierra), using EventViewer to see what’s going on and building a custom ruleset to install with Elements under the “Complex modifications” tab.

1	F1	display_brightness_decrement
2	F2	display_brightness_increment
3	F3	mission_control
4	F4	launchpad
5	F5	illumination_decrement
6	F6	illumination_increment
7	F7	rewind
8	F8	play_or_pause
9	F9	fast_forward
0	F10	mute
-	F11	volume_decrement
=	F12	volume_increment

Using the JSON documentation provided on the Karabiner website (file locations | JSON data structures), I built MediaKeys.json (https://pastebin.com/DgV4w6TC) and installed it under ~/.config/karabiner/assets/complex_modifications and voila, under Karabiner-Elements’ Complex modifications tab, they’re listed in the list of rules available to be imported displayed when you click Add rule. (Note the fast_forward key code has to be specified as a consumer_key_code where the other events are specified simply with a key_code - I have no idea why that is, but I confirmed it with Karabiner-EventViewer.)


JSON Update 2: The more I play with it, the more I think I want to set it up like this:
Key Fn+Key                          Fn+Right Shift+Key
1   display_brightness_decrement    F1
2   display_brightness_increment    F2
3   mission_control                 F3
4   launchpad                       F4
5   illumination_decrement          F5
6   illumination_increment          F6
7   rewind                          F7
8   play_or_pause                   F8
9   fast_forward                    F9
0   mute                            F10
-   volume_decrement                F11
=   volume_increment                F12
That setup will make the media keys easier to use (and, especially for this keyboard, I’ll behitting those more often than the F1-F12 keys), while leaving the function keys readily accessible and keeping left_shift free to be a modifier for, e.g., Eclipse shortcuts. Hoping this works ...

And ... It did. Here’s the updated file, mac_layout.json (https://pastebin.com/CYzaYzLn). With a couple of peculiarities, this works with the KB71. I tested:
  • [⇧][⌘][F11] in Eclipse (which ends up being [Fn][Right ⇧][⌘][Left ⇧][-]): Works.
  • [⌃][F2] in macOS (which ends up being [Fn][Right ⌃][Right ⇧][2]): Works (activates keyboard control of the menu bar). (Note you have to use the right control key, as [Fn][Left ⌃] toggles the number bar between [1][2]... and [F1][F2]...)
Okay, I’m done playing with this thing for now. This morning I got the email from NovelKeys with the tracking number; can’t wait to swap in the Kailh Box Hako Royal Clear switches. (Say that 10 times fast.)

Well, almost done playing. The Insert key (right next to backspace) was bothering me. I kept hitting it and, in Word, popping up the help window. (Hopefully inadvertent keypresses will go away with switches more to my preference, but for now ...) So I disabled it, with this rule:

    {
      "description": "Disable Insert Key",
      "manipulators": [
        {
          "type": "basic",
          "from": {
			"key_code": "insert",
            "modifiers": {
              "optional": "any"
            }
          }
        }
      ]
    }

That’s actually it for now. Stay tuned.

Saturday Update: The Kailh Box Hako Royal Clear switches arrived. I swapped them in. My soldering game was off, and I borked a couple of pads, but nothing I couldn’t fix with a couple of patch wires. Everything works perfectly and the keyboard feels so much better - crisp, precise, deliberate, higher quality. No keycap wobble. Huzzah. I also discovered the device_if directive for Karabiner, allowing me to build the JSON file so that the key mappings only impact the RK71, and leave any other keyboards (e.g., the built-in keyboard on a MacBook Air) untouched. The new version of the JSON.

A quick before and after typing comparison:








Comments