I’ve done something like that with a multmatrix transformation. There is an example of doing a skew transformation like that in the OpenSCAD user manual. This works with any 3D shape, not just extrusions. So you could transform a cube into a parallelepiped.
With the right key mapping the hex grid naturally leads to hand rotation and column stagger. It also takes “1u distance from home” literally because there are no diagonal keys for the index fingers and pinkies that are 1.4u away. It allows keys to rotate in 60° steps rather than 90° steps. That allows for some interesting ways to exploit tilted key cap profiles.
I may ask the opposite: why squares? That’s just as arbitrary, if you think about it. I learned typing on a mechanical typewriter that had round keys.
I wrote a SW a while ago that does an automated optimization of keyboard layouts for a given body of text. It only optimizes the base layer. Since I did this with small/custom keyboards in mind, it only considers the core 3x10 keys. You’d still need to create other layers for numbers, symbols, etc. Even with all the automation, it’s still hard to make a good layout. It depends a lot on the text you use to train it, and on the set of criteria you’re trying to optimize (heat map, rolls, same-finger bigrams, hand alternation, minimal finger movement, etc.). It also generates many layouts, so choosing one can be daunting. I added a ranking system that should make it easier.
The project is dormant at the moment. I never quite got to the point where I was ready to commit to actually learning one of the auto-generated layouts. I want to pick it up again at some point, write some documentation and make an “optimal” layout for my Mantis keyboard. The code is on github: https://github.com/fxkuehl/kuehlmak
I don’t work for PCBWay. They liked the design and reached out to offer to support the project in return for some favourable mentions.
I fell into this rabbit hole when looking into all the options available when ordering an Ergodox EZ. I discovered the Iris keyboard and really liked its compact shape. I ended up not placing the order for that Ergodox and built myself an Iris v4 instead.
Iris turned out to be a good way to ease myself into the world of DIY split ergo boards. It’s affordable, easy to assemble and has enough keys to ease the transition from full sized keyboards. It’s a good starting point for experimenting with layers and other features that eventually may lead you to 40% or smaller layouts.
The little holes are for the LEDs to shine through because I wasn’t sure how opaque the 3D printed material would be. Turns out that the holes are probably not needed.
My layout for v0.2 is here (I’m using the Colemak version): https://github.com/fxkuehl/qmk_firmware/blob/mantis-v0.2/keyboards/mantis/keymaps/default/keymap.c
I’ve used QMK configurator to sketch out keymaps before. You can download your keymap as JSON file and later upload it again to make more changes, or save a few different versions. It can even compile your firmware, but I’ve not used that feature. No programming required if you only use basic QMK features. It supports Piantor with a 3x5 layout: https://config.qmk.fm/#/beekeeb/piantor/LAYOUT_split_3x5_3
Check out lowprokb.ca. Their excellent sunset switches are on sale right now. They have other choc switches, too. And they ship from Canada.
I find it easier to maintain two layouts (QWERTY and Colemak DH) if I use them on physically different keyboards. QWERTY on standard row-staggered, Colemak on ergo keyboards. When I was mixing both layouts on standard keyboards, I found it harder to switch and made more mistakes.
Nice write-up! Out of the Choc switches I’ve tried, Sunsets are my favourites, too. I agree that Pinks are too light. I lubed mine and don’t find them wobbly, though. Pro-Reds are borderline for me. I think part of the problem is the flat MBK key profile that makes the edge of the next key too easy to hit by accident. Too bad LDSA key caps never came back in stock.
I find the Sunsets are more scratchy when I hit them off-center. If I hit them just right, they feel smoother than MX Clears and more satisfying than MX Browns I have on other boards.
I need to fix the position and angle of split keyboards. If the halves move too easily, I lose accuracy. Therefore I prefer non split keyboards. If they have angled halves that allow the wrists to be comfortable, that’s the best of both worlds for me.
I constantly switch between an ergo keyboard with Colemak DH and standard keyboards with QWERTY at work. Somehow they feel different enough that I can keep the muscle memories separate and switch easily.
There are keyboard matrices that can accommodate more keys with fewer pins. E.g. https://kbd.news/Square-or-round-robin-matrix-1400.html. This one can do 12 keys with 4 pins. But needs some careful component choices to avoid ghosting.
On my 34-40 key layouts I put all the symbols typically used together in programming on the same layer, including symbols that usually require Shift, along with all the numbers. This makes it comfortable to type whole formulas without leaving the symbol layer and without needing Shift. Important bigrams that I can type without switching layers in the middle include <= >= != += -= *= /= %= &= |= -> /* */ => := :) ;) . I also optimize the layer so that none of these are same-finger bigrams. Because = appears in so many bigrams, I found it convenient to map it on a thumb key.
I make sure all the mods are comfortable to use and in the same place on all my layers, either as bottom row mod-taps or on opposite side thumb keys or worst case as a oneshot mod. I don’t need Shift on my symbol layer, so one less mod to worry about.
Probably my favourite feature for a programming key map is _ on a base layer thumb key. That makes typing snake_case_names a breeze.
Disclaimer: I haven’t used a keywell keyboard.
Does the keywell cause the use of different muscles and finger joints to press keys? On a flat keyboard, key strokes seem to move the whole finger from the knuckle. If a keywell results in a curling or stretching motion of the fingers to actuate the keys, that would use different muscles and move different joints.
Another thing would be whether you’re using wrist rests differently.