shift num sym altgr nav nav fn

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 exclusive 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.
fn 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 fn 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

ctrl os alt

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

fn fn

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

Nav/Num

A navigation half-layer on the left:

A numpad on the right:

shift num nav fn fn nav fn sym altgr

The Nav key is accessible from the home position of both thumbs, with a catch: it has tap-preferred priority on the right (Space), hold-preferred on the left. This allows unmissable, single-hand shortcuts.

Symbols

All 30 programming symbols are available on this single layer, and their placement has been optimized for comfort:

Besides, this layer has truly been designed with Vim in mind, to ease advanced navigation tricks like vertical jumps with {}, (), [] followed by +- (on the JK positions), to adjust the movement line by line without releasing the Sym key.

The Symbols layer is a core part of the Ergol layout and the Arsenik keymap: it’s been tested and improved over years. Rough edges have been polished over time.

shift num nav fn fn nav fn sym altgr

Selenium adds a specific concern to ease sequences with non-alpha characters without releasing the Sym key, thus avoiding same-thumb bigrams and preserving the typing flow. This is why the Symbols layer features these three actions in the left-hand thumb cluster, from right to left:

Fn/Media

Note: homerow-mods are always enabled on the Media half-layer, no matter which flavor is chosen. This is by far the easiest way to do an AltF4 or a CtrlF5 — and a safe opportunity to start learning HRMs.

Options

Vim Variant

This variant uses two layers instead of the Nav/Num one.

The NumRow layer mostly picks the number row of your keyboard layout (QWERTY, AZERTY…):

The VimNav layer offers advanced navigation possibilities:

num num

Escape replaces Tab on the left thumb, which makes it even more symmetrical:

This variant is very popular and extensively tested.

Shift as Pinky HRM

TODO

Implementations

The reference implementation is called “Ækeynox”, and is available both for ZMK and QMK: