since finalizing the ergo wide layout concept with the centre two columns dedicated to modifier chords, tweaks still managed to make their way into the firmware to accommodate the application and desktop workflow.
Little niggles ultimately led to normalizing keys and key relationships between layers to make the layers feel as natural and easy to remember as possible – the mirroring of the left hand key pairs on the number and symbol layers is a prime example. All symbol key layer relationships have undergone a degree of placement rationalization and usage refinement – with emphasis on coding needs.
In chronological order, a very long list of tweaks (whose number must be an indicator of approaching completion!)..
- the center column pairings of Shift-GUI, Ctrl-GUI and Shift-Alt, Ctrl-Alt changed to Ctrl-Alt, Ctrl-GUI and Shift-Alt, Shift-GUI effectively aligning Alt and GUI modifiers in their own columns, a grouping which better suits the needs of the window manager work flow
- the number layer Symbol Layer key is moved left one column position and the symbol layer Regex Layer key is similarly moved right one column position and are now toggled with the ring fingers which feel less cramped than their former middle finger assignment
- the Caps Lock key is now a one shot modifier Shift key (which is double tapped to toggle the Caps Lock), completing the set of one shot modifiers
- the Function keys have been remapped to match the numeric keypad layout of the number layer, naturally
- the double tap key pairs of the number layer have been normalized with the symbol layer by swapping their key positions with the outer column modifier keys (used mainly for window manager desktop actions) which, while looking odd, retain a comfortable pinkie-index finger roll
- the number layer column of one shot modifier keys has been changed to dedicated Alt modifier chords in optimal row positions (for window manager desktop actions)
- the number layer Symbol Layer and symbol layer Regex Layer keys are now positioned in their most obvious location (how was any other location considered?) – the middle finger home row! – with the Right Angle key now defined as a double tap key
- added a Shift Navigation cluster layer to the left Shift Layer, completing the quadruplet (Ctrl, Meta, Alt, Shift) of single modifier navigation chords – the thumb Shift avoids the reach required for the centre column one shot modifier Shift key
- added the same Shift Navigation cluster layer to the Symbol Layer with the firmware to allow switching between shifted and unshifted navigation codes by simply releasing/pressing the Left Shift / Pipe key while the Left / Symbol Layer key is held down, whilst allowing rolling between the Shift and Symbol layers seamlessly without the need to lift both thumbs off their respective keys to switch layers (a mouthful!)
- dropped the Plover Layer (and other test code) to accommodate the increased size of the latest code base and available flash RAM
- recovered sufficient RAM space to re-add the Plover Layer by dropping the dedicated Macro Layer (which defined only a single key, the Dynamic Macro key) and aggressively refactoring the custom firmware – the Tri-Layer toggle (using the Number and Symbol layer keys) is replaced with the Backspace / Macro key (now labeled Adjust) to raise the Adjustment Layer and the Dynamic Macro key
- added the complement of home row one shot modifiers to the Function Key and Shift Navigation cluster layers
- added the obvious (but overlooked) Shift-Tab to the right Shift Layer
While the number of Shift, Number and Symbol layers and their overlay layers may appear daunting at first glance, a closer examination reveals a high degree of normalization across the layers and simple shift values for the overlay keys (to reduce unnecessary alternate hand layer toggling) with minimal finger memory impact.
The Shift Layers, in particular, add the convenience of remapping the opposite Shift key and other non-alpha keys to provide surprisingly effective access to other special characters which the wide layout would otherwise seem to prevent.
For programmers, the opposite thumb access to the Minus and Underscore symbols, and the Tilde and Slash keys, make for easy entry of mnemonics and path names, as an example. The keypad and cluster organization applied to other layers similarly requires little time to adapt to with minimal memorization – of course, having arrived at this design is largely a result of my own fingering disposition, pleasant surprises aside.
default colemak layout
numeric keypad layer
symbol navigation layer
function key layer
adjustment macro layers
available memory for flashing on the current board revision is 28K (0x7000). The dozen layers, double tap definitions, dynamic macros and shift navigation left/right layer rollover currently consume 99% of the available RAM! There is little headroom left but always an opportunity to revisit design and code refactoring.
Any significant future enhancements to this base will likely require sacrificing a feature or two. Dynamic macros and double tap definitions would likely the first casualties should I have any other bright ideas..