Penti chorded keyboard experiments

2020-03-20 @Experiments

I’ve been actively experimenting with the Penti chorded keyboard on my Android tablet (primary computer). It’s been a long time since I intended to adapt some one-handed typing solution, this being either a one-handed keyboard layout such as a one-handed Dvorak, or a chorded keyboard.

My ultimate ambition lies in a total considerable decoupling of computer interaction from the act of sitting, or from even a standing environment that demands an elevated surface. I wish to move around at will and have the freedom to conduct the majority of computational tasks.

A chorded keyboard I deemed better suitable for the goal, and yet sufficiently different to stimulate those new, how I tend to say, cognitive pathways. And since external models tend to be astronomically expensive (and proprietary), I decided to try Penti - an open, Android-integrated solution, made available by the developer of Picolisp.

Now I may not indefinitely use an Android tablet as my main device, but hopefully long or often enough for the learning curve to pay dividends.

Each time Penti initiates or restarts, you calibrate the keyboard by positioning the five fingers at the preferred screen position. This works for both left and right handers.

From then on, five fairly sizable yet non-invasive dashed-line circles interlace the tablet display. You press these with the respective fingers.

Additionally, with the keyboard active, no brief press outside the delineated circles bears any impact, hence tactile conflicts aren’t an issue … at least for the most part - see further below.

Now by executing a press and hold outside the circles, you temporarily suspend Penti. This enables you to interact with the tactile interface of the host application as you normally would.

The chorded solution is modal. That is, by execution (in arpeggio sequence) of certain strokes, you can alternate the active mode between alpha, digits, punctuation, function, and the ‘ALTGR’ mode for custom defined and international characters. The multi-modal behavior is necessary since five triggers enable maximally 32 simultaneously-pressed combinations.

Many of these combinations lend to certain mnemonic association, which, along with pure muscle memory, make learning most chords a fairly straightforward affair.

I think I assimilated the alpha-numerics within a few days, but the punctuation/control characters will demand greater time. And these form an integral part of my workflow, since I aggressively appeal to shortcut keys and modal strokes within console applications (ie VIM, Tmux, W3M, Mutt, Newsboat).

The challenges:

  1. Chord memorization isn’t ultimately the problem. It’s the typing speed development. So far, I’m incredibly slow at this. But I’ve only experimented for a week.

  2. There is no dedicated typing tutor for Penti. While I could develop speed by simple experimentation, I prefer the more methodical approach of a typing tutor.

    Fortunately, plenty of GNU, terminal/ncurses-based solutions come in handy. I installed gtypist. While the lessons are geared for various standard-keyboard layouts in no way congruent with a chorded keyboard, the method still facilitates the drilling of restricted key ranges. Good enough for me.

  3. It requires some finesse to attain reasonable accuracy. While those five circles comprise significant screen real estate, I still find myself too often missing the right tactile points, or executing an arpeggio instead of a chord and vice-versa.

  4. Complex control key shortcuts are more challenging. Some are impossible.

    For instance, there’s no chord/arpeggio for the ALT key. Instead, there’s just the ESC key, which, in a terminal/ncurses based input system sort of doubles as the ALT key if immediately proceeded by the combination. This suits most needs, except where I require an ALT+SHIFT+key or ALT+CTRL+key combination, this rendered impossible by nature of the Penti modal operation.

    Fortunately Penti allows any combination not involving the ALT key (ie CTRL+SHIFT+key) that I’ve attempted, although demanding a succession of arpeggios/chords to attain.

The notable positives:

  1. There’s a small sixth key - the repeat feature. It echoes any previous key or SHIFT/CTRL+key sequence (although no combination involving the ALT/ESC key). I cannot enough emphasize how useful this is.

    I’ve also learned of the repeat feature for the second as well as third-to-last pressed strokes; handy especially for repetitions of pairs of successive operations in shortcut-aware applications (ie VIM, Tmux). For the curious, this involves an arpeggio of thumb+repeat and index+repeat, respectively.

  2. One of the modes, the ALTGR mode, enables custom chord-to-key definitions. More so, any UNICODE key is a candidate, which includes international characters, emoticons, mathematical symbols, etc.

  3. Built-in Copy and Paste features in the Function mode, including a secondary paste buffer operation.

  4. Contrary to many on-screen keyboards, this one dedicates as much screen real-estate as necessary for the finger trigger points, whatever your finger size.

    As I calibrate the keyboard, the longer I hold the finger tips, the broader those circles expand. And yet, with the circles delineated merely by thinly dashed lines, they remain nearly transparent in every sense.

  5. Open-source solution. The APK and source code are both available for download.

  6. Combinable with an external Bluetooth keyboard. The Android OS enables simultaneous on-screen along with an external keyboard interfaces. This makes it simple to adapt to Penti while having seamless access to a hardware keyboard available.

Questions, comments? Connect.