beakl wi

saturday, 21 november 2020

it didn’t take long! the changes introduced by the BEAKL Bi layout spurred on further explorations – the upper row QU roll, never quite feeling as natural as the familiar home row roll with BEAKL Zi. Returning to the new keyboard analyzer, tweaked finger weighting and penalty values, and some new layout ideas produced a..

break from

the past. BEAKL Wi is the largest deviation from a long line of BEAKL variants defined by an extended index finger column of punctuation keys – something favoured more for the visual symmetry than anything else (plus, it scored consistently well)..

Corne BEAKL Wi

The most obvious change is the relocation of the W from the familiar BEAKL Zi right pinkie finger position to the extended index finger location of the opposite hand (of the aforementioned punctuation column). The ZVX pinkie finger column completes the right hand base layer change.

punctuation & symbols

the Dot now being displaced, relegates it and the Comma to a somewhat more familiar location under the middle and ring fingers (albeit the opposite hand for QWERTY users), shuffling the remaining Quote, Minus and Colon symbols of the BEAKL Zi base layer.

The Exclamation and Question Marks (on the Regex and Symbols Layer) are now moved to the home row independent of the Dot and Comma locations – such an obvious optimization that was previously overlooked in favour of mapping punctuation over punctuation and mimicing the visual symmetry of the right hand symbol pairs – with the remaining left hand symbols optimally arranged..

Corne BEAKL Wi Regex and

shift map

the Dot and Comma keys continue to inherit the (firmware) map shifted Grave and Tilde characters, the Tilde now occupying a very convenient Vim editor finger position for case toggling..

Corne BEAKL Wi Shift

Note: the single handed Shift I to yield a Space – handy on occasion while using a mouse with the right hand – now only registers with Shift still down on the I up. Hence, there is no autorepeat with this Space key chord – the I may be tapped repeatedly to produce the desired Spaces. This is done to avoid a rolling AI from producing an unwanted Space – the one instance counter to the general rolling key handling of the keyboard.

numbers & fnkeys

not done, the familiar numeric keypad layout is now organized by number frequency – something i have resisted stubbornly until now.

Taking a cue from the Regex Layer optimization, this improves regex Backslash Group (number) referencing considerably and is the main motivation for this change from the traditional ascending keypad order. The function keys are mapped to their decimal counterparts – unorthodox but reducing finger memory. Surprisingly, this change is not as difficult to adapt to as expected..

Corne BEAKL Wi Numbers and FnKeys

The hexadecimal cluster takes a cue from the number frequency ordering and moves the F to the home row index finger. That led to a simple ordering of the remaining hex characters, beginning with A in F’s former position. The G (a Vim command) completes the serendipitous alphabetical order!


the dotfiles* also contain a BEAKL Wi-b variant whose only difference is the swapping of the B and V keys a la BEAKL Bi..

Corne BEAKL Wi Variant

Both layouts score almost identically, with the differences reflecting a particular weighting and penalty scheme (and supplied corpus). The more classic BEAKL weightings favour BEAKL Wi-b with its more severe extended index finger penalties. My adjusted weightings and penalties favour BEAKL Wi – personal finger dexterity being a deciding factor (disliking pinkie finger usage, in this case, for the B and MB outer roll).

*The BEAKL Wi-b sources are not actively maintained, hence, the BEAKL Wi sources should be modified instead with the V-B key swap.

end game

the thumb I was the radical game changer in the hunt for the most optimal layout (for me) – allowing switching out the commonly found HIEA home row in favour of QHEA and finally limiting pinkie finger usage to the least common characters. Subsequent layouts for the most part focused on these pinkie finger assignments, retaining the established center ring-middle-index finger columns. BEAKL Wi is no exception, though, the W placement (and subsequent punctuation realignment) and additional optimizations to the Regex and Number Layers make it feel a more substantive change.

Out of the box, i definitely like the ZVX placement, retaining the familiar QJ on the opposite hand – the QU and IZ bigrams in particular roll nicely. The same CT index-middle finger roll cheat (effectively eliminating lateral same finger penalty) is easily done with the WA bigram on the opposite hand. And the added Regex and Number Layer optimizations up its game.

It scores great on the analyzer i am using. To be honest, though, all scores since the first thumb I layout have been incremental improvements, the culmination of which, is arguably still insignificant – i could live with any of the past BEAKL variants quite comfortably. Ultimately, it is all about feel which scores can only allude to – and change in itself can be deceiving, albeit, a welcome exercise.

It will take a bit of time to lose the old punctuation finger memory in particular. Despite that, it doesn’t feel as difficult as it might. On the contrary! Already loving the new Regex Layer home row punctuation and symbols – if this doesn’t establish itself as my daily driver, will definitely transpose these layer changes to BEAKL Zi. But i am getting the distinct feeling i won’t be tempted to..

double tap

as an aside, all the (purple) double tap keys shown above and their corresponding tapdance firmware have been rewritten – the end result of having an opportunity to revisit the code. Not only has the code been tightened but all keys now support autorepeat on down which they did not before..

keycode double tap
Colon** “ :: ”
Less Than** “ <- ”
Greater Than** “ -> ”
Equal** Equal Tilde
Asterisk Dot Asterisk
Tilde** Tilde Slash
Comma** Semicolon
Dot Colon

**Some double tap assignments are language specific or configurable, and selectable from the config.h dotfiles.

The astute will also notice that the modifiers on the Regex Symbol Layer of BEAKL Zi (whose keys have now been moved to the bottom row) have been removed – being a long forgotten feature holdover from very distant layouts. All other keyboard layout functionality still matches BEAKL Zi despite these code optimizations – any differences (omissions), in particular, on the Regex Layer are a result of the layer’s improved fingering performance.

Having now been using BEAKL Wi now for several weeks, i can say with certainty that this is now my new daily driver..


  • reverse hexadecimal cluster from traditional numeric keypad ascending order to place the F key on the home row index finger

»»  keyboard layout evaluation

comment ?