Selenium

A configurable Arsenik variant for split keyboards.

Hold-Taps That Just Work

Compact keyboards rely on affecting several actions to some keys based on how long they are tapped or held (hold-taps behaviour). Bad timing configurations can however make hold-taps unreliable and very frustrating to use. We believe Selenium provides sane defaults to avoid the problem.

Timing is Key

The common approach for compact keyboard keymaps is to use a single configuration (and timing) for all hold-taps, which is often a compromise between “tap-preferred” and “hold-preferred” (like QMK’s “permissive hold”), and then rely on mitigating measures and fine timing adjustments to limit the number of typos.

In our experience, this doesn’t work reliably for most users and never will, because homerow-mods and thumb modifiers have two mutually excusive goals. Instead, Selenium uses three distinct kinds of hold-tap behaviors that define which action takes priority and timings:

nav Tap-Preferred
Behaves as a letter key by default, becomes a modifier / layer-shift when pressed longer than 300ms.
Perfect for Space and homerow-mods.
fun Hold-Preferred
Behaves as a modifier / layer-shift by default, becomes an input when pressed and released in less than 150ms.
Perfect for adding actions like Enter, Backspace, Tab, Esc to any thumb modifier / layer-shift.
sym Sticky
Behaves as a one-time-shift when tapped, and as a modifier / layer-shift when held.
Perfect for Shift and Symbols.

With this approach, you’ll never have to think of it: as long as your keymap respects the proper behavior/key associations, it just works. No unwanted shortcuts while typing text, no accidental Return while chatting.

Thumb-Shifting

An opiniated choice with Selenium is that the Shift and Symbols keys belong to the thumbs, not to the homerow:

Having Shift as a homerow-mod is often recommended… and a very common reason why HRMs as a whole are so difficult to tune right: capitalizing a word while typing text requires Shift to have an immediate action, which is exactly what you do NOT want for keyboard shortcuts. The problem can be partially mitigated with complex settings and practice, but it always ends up showing up at higher typing speeds.

Instead, placing the Shift on a thumb key with hold-preferred priority allows us to use a very long tapping-term on the other homerow-mods (300 ms by default), which ensures they’re never misfired.

It might take a bit to get used to Shift under the left thumb, but it’s totally worth it — even without these timing considerations. Probably the biggest comfort improvement you can expect on a keyboard.

One-Time-Shift

In its recommended flavor (HRM), Selenium affects a dual behaviour to Shift and Symbols keys under the thumbs:

Because the sticky behavior only affects the following key (a one-time shift, then), this action is safe even with fast typing: no risk of timing your hold of Shift a bit wrong and ending up with two capital letters instead of one.

Besides decreasing frustration at higher speeds, these sticky behaviours provide a great confort improvement over the regular modifier behaviour (hold). Try rolling these thumb keys rather than chording them, and never again feel the pain of holding your thumb in place while trying to reach the top most inner key with your index!

In our opinion, these sticky keys are the main reason why you should have a keyboard with three good keys per thumb. Otherwise, 34 keys would be just fine.

From 42 to 34 Keys (and beyond)

Selenium is available in 4 different flavors: pick the HRM flavor right away, or start with EZ or TT to ease the learning process if you’re unsure.

EZ: No Hold-Taps

alt num ctrl os fun nav sym altgr

The most direct way to get started with compact keyboards (42+ keys):

Special keys like Shift, Enter, Backspace or Tab remain on lateral columns, like on standard ANSI/ISO keyboards.

TT: Thumb-Taps

shift num ctrl os alt nav fun sym altgr

Learning hold-taps and thumb-shifting is the next step:

This flavor tries to be as symmetrical as possible, with keys mirrored by pairs: Shift/Sym, Backspace/Space, Tab/Enter.

HRM: Home-Row Mods

nav fun fun

This is the default and recommended flavor. It pushes the symmetry even further:

Shift and Sym are mirrored, not doubled:

This flavor quickly feels like the most natural way to use a keyboard.

2TK: Two Thumb Keys

shift sym altgr

Keyboards with three good keys per thumb are rare, but there are a lot of good 34-key keebs out there, and Selenium has a flavor for them — which is just a simplified version of the default HRM flavor:

FTR: Selenium started as a 34-key configuration, and the name is a reference to the 34th element of the periodic table. This flavor used to be the default one — and would still be if sticky keys weren’t such a banger. ;-)

Layers

Symbols

TODO

Nav/Num

TODO

Fun/Media

TODO

Options

Vim Variant

TODO

Space/Backspace Swap

TODO

Shift as Pinky HRM

TODO

Implementations

The reference implementation is the ZMK firmware for the Quacken, a highly configurable keyboard (30-42 keys).