keeb.io Iris keyboard review

I have been using an Iris rev 6b split keyboard (FR4 plates, acrylic tented middle layer) for a couple of months.

Until I got the Iris, I’d been packing my Ergodox to work each day, which was inconvenient, and the constant plugging/unplugging was probably not great for the mini USB port either. I wanted:

  • portability, so I can take it on a commute or travel
  • fewer keys (maybe more ergonomic if I learn to use them efficiently?)
  • quietness, so as not to disturb co-workers
  • a split ortholinear layout similar to my Ergodox, so I can rely on muscle-memory between both boards
  • tenting
  • some assembly (to participate in a group custom keeb-building activity)
  • not egregiously expensive

Overall, the Iris did meet my goals, though it required some experimenting/modifications to the hardware and firmware to do so. This review discusses these aspects, mostly in comparison to my Ergodox and similar split/ortho keyboards. It doesn’t discuss the advantages of splits, ortholinear, or <60% layouts.

The Iris keyboard kit cost about $165 USD, including shipping to Australia. Switches and keycaps were another $70 or so (you only need 56 1Us), and maybe $5 USD for the carriage bolts, for a total of $240. This is much cheaper than high-end prebuilt tented ergos: a Dygma Defy is $399, a Moonlander is $365, and an Ergodox EZ Glow is $324 USD.

Continue reading “keeb.io Iris keyboard review”

Silencing the Ergodox EZ

Even after modifying my switches with silicone and dental floss, I still wasn’t satisfied with the noise of my Ergodox EZ. The dampened upstrokes were still causing a reverberation that I determined was coming from the Ergodox EZ case/PCB itself.

The Ergodox EZ CIY case has an integrated plate-mount design (where the “plate” is just part of the ABS upper shell), which is a design that’s notorious for producing reverb. The case is also very hollow, with 1–3mm gaps above the PCB and 2–4mm gaps below it. This all contributed to a mid-range “thonk” around 1kHz on upstrokes.

I successfully dampened the “thonk” sound by adding neoprene foam and rubber. This cost less than $10 (AUD) in materials and took about 90 minutes.

photo of Ergodox EZ top case with neoprene rubber strips
Top-half of the Ergodox EZ with 1.5mm neoprene rubber strips inserted in between columns.

Continue reading “Silencing the Ergodox EZ”

Ergodox coding layer layout

I’ve previously written about the Ergodox EZ and the difficulty of where to place all those pesky right-pinky keys that don’t fit, and how to make those symbols (many of which are frequently used for coding) convenient to access.

Before jumping into my solution, let’s review other popular ideas:

  • ZSA’s default Ergodox layout has square brackets on the bottom row of the base layer, and various parens/brackets on the left middle and index columns on a “symbols” layer. The symbols layer is activated with the pinkies. = is in heaps of places: top-right of the base layer, and in layer 1 next to the layer 1 toggles.
  • BEAKL 15 places various bracket-like symbols on the AltGr layer, using the ring and index fingers of both hands. = is on the right middle finger, home row. The AltGr key is on the right thumb.

My solution is a coding layer:

diagram of right-hand key assignments on an ergodox keyboard

The left thumb’s space key acts as a layer modifier for the coding layer while held. The coding layer adds a shift modifier to all the numbers (except 9 and 0, which become square brackets instead of parentheses), and also changes the right hand to have the following layout (where ()=⏎ are the home positions):

&*[]⌫
0{}\/
()=⏎-
!":>+

I think this works better for modern programming languages (C, C++, Java, Javascript, Python, Ruby, Swift) than the ZSA and BEAKL layouts. It optimizes frequent bigrams and trigrams by making them rollable without releasing the layer modifier. For example, ␣{⏎ is a single-direction roll, as are ():⏎ (think Python!), ␣=> (think Javascript arrow functions), ({, }), )⏎ and }⏎. The frequent trigram ␣=␣, while not a continuous roll, is all on home-positions. The layout also complements Dvorak’s left hand symbols: );⏎ can be timed as one stroke.

Subtly, these placements are meant to feel familiar to Dvorak users. I have short pinkies, so I type [0] on Dvorak by moving my whole hand slightly then hitting middle-index-ring with a single stroke; the same can be done with this layout. Similarly, I hit = on Dvorak with my ring finger; it’s still the same finger, but the home-row placement reflects the high frequency of “ = ” in code. Having \ and on the right pinky should also feel very familiar.

I think the layer modifier is also better placed (on the thumb rather than the pinkies) compared to ZSA’s layouts. This leaves all the other left hand fingers in relatively comfortable positions, and space is already covered by the right thumb. I take advantage of this by using the left-hand home positions for modifier keys.

diagram showing an ergodox keyboard layout for the left hand

Of course, my typing preferences aren’t the same as everyone else. This layout is certainly not “balanced” (it’s biased to typing characters with the right hand), and it really emphasizes the efficiency of strokes and rolls rather than penalizing finger movement. It doesn’t perform amazingly with conventional BEAKL penalties.

You can check out my QMK branch from github for the source code, or download the compiled firmware directly (it’s Oryx-compatible!).

Edit 2020-10-28: this is actually v2 of the coding layer, this post previously described a slightly different layout.