chorded bigrams

sunday, 15 august 2021

a recent thread on reddit raised an interesting topic regarding same finger bigrams. While constituting only a small percentage of common bigrams—two letter combinations—the problem is exacerbated when the letter requires a weak finger double tap, notably the pinkie and to a lesser extent the adjacent ring finger.

Normally this could be addressed with various QMK solutions but with my current usage of DennyTom’s..

chording engine

this is a simple matter of defining a chord sequence for the common character pairs. My first impulse was to designate an easy to reach key on each hand for chording with the opposite hand—the bottom row under the index finger as the quickest non-home row modifier key.

Even better, further examination of the problem domain and the current configuration of the keyboard, found no reason for excluding the home row modifiers, allowing use of the most accessible key on the Georgi’s BEAKL Wi layout—the index finger Shift key..

{ "name": "BEAKL", "chords": [ ... { "type": "visual_array", "keys": ["TOP5", "BOT5", "TOP7", "BOT7", "TOP8", "BOT8", "TOP9", "BOT9", "TOP10", "BOT10", "TOP11", "BOT11"], "dictionary": [ ["X", "X", "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", "STR('gg')"], ["X", "X", "X", "X", " ", " ", " ", " ", " ", " ", " ", " ", "STR('cc')"], ["X", "X", " ", "X", " ", " ", " ", " ", " ", " ", " ", " ", "STR('bb')"], ["X", "X", " ", " ", "X", " ", " ", " ", " ", " ", " ", " ", "STR('dd')"], ["X", "X", " ", " ", "X", "X", " ", " ", " ", " ", " ", " ", "STR('tt')"], ["X", "X", " ", " ", " ", "X", " ", " ", " ", " ", " ", " ", "STR('pp')"], ["X", "X", " ", " ", " ", " ", "X", " ", " ", " ", " ", " ", "STR('nn')"], ["X", "X", " ", " ", " ", " ", "X", "X", " ", " ", " ", " ", "STR('rr')"], ["X", "X", " ", " ", " ", " ", " ", "X", " ", " ", " ", " ", "STR('ll')"], ["X", "X", " ", " ", " ", " ", " ", " ", "X", " ", " ", " ", "STR('mm')"], ["X", "X", " ", " ", " ", " ", " ", " ", "X", "X", " ", " ", "STR('ss')"], ["X", "X", " ", " ", " ", " ", " ", " ", " ", "X", " ", " ", "STR('ff')"], ["X", "X", " ", " ", " ", " ", " ", " ", " ", " ", "X", "X", "STR('zz')"] ] }, { "type": "visual_array", "keys": ["TOP4", "BOT4", "TOP8", "BOT8"], "dictionary": [ ["X", " ", "X", "X", "STR('oo')"], ["X", "X", "X", "X", "STR('ee')"] ] }, ...

Voila! Left and right hand Shift-<keycode> chording for the common same letter bigrams.

This works remarkably well with only a bit of finger memory habit needing to be “unlearned” for the stronger fingers. But the benefit to the weak finger same finger bigrams is unmistakable.

sloppy bigram

an unexpected use case came about as a result of this which otherwise would have gone unnoticed. And that is the weak finger bigram pair QU on the BEAKL Wi layout—the Q under the home row pinkie and the U under the top row index of the same hand.

The pinkie being the weakest finger is subject to hand positioning, whether in proper touch type hovering or palms down (on typing surface) lazy positioning. In the latter posture, the finger action for the QU bigram can result in the letters being reversed due to sloppy pinkie finger timing even though it precedes the U—the index finger easily outperforming the pinkie, releasing its key beforehand. (The sequence UQ does not suffer this unintentional reversal.)

Chording again to the rescue..

... { "type": "visual_array", "_comment": "sloppy pinkie bigram", "keys": ["TOP2", "BOT2", "TOP5"], "dictionary": [ ["X", "X", "X", "STR('qu')"] ] }

fixes this timing issue beautifully!

..which raises the valid question whether sloppy fingering should be corrected thusly or with proper technique? i am, well, not the person to answer that question! :)

»»  minimal kustom

comment ?