To me the key concepts behind this are:
- Home Row modifiers: putting Shift, Ctrl, Gui, Alt behind tap-hold functionality on the home row keys. (Now you don't need to strain your pinky finger with these, and can stay on the home row more).
- More thumb keys, with layering using tap-hold. This brings Backspace, Enter, Esc, Tab to within reach of the thumb, and provides a bunch of layers.
- Patterns on the LHS: Use of numpad idiom instead of number row (covering symbols, and function keys); symmetrical brackets, paretheses, and curly braces.
- Use of the HJKL idiom for stuff like arrow keys, volume control, home/end. etc.
The reason I feel limited regardless is partly that even after giving it some time, it drove me nuts to have asymmetric layer keys (that is, I want to be able to activate the nav layer from either thumb), and some of the movements (notably pinky as a common modifier) ended up causing pain after a while. Plus I have need for at least another one due to often switching between a handful of languages and scripts (this would normally be addressed by AltGr - which would collide if at any a-z - plus an additional key only present on some standard layouts). So I feel a serious need for more thumb keys. And you somehow manage to get by with only two per side!
Maybe I'll take another attempt at getting used to deduplicating the thumbs before I start looking at printing custom PCBs... At least Ergogen mentioned above should make that a lot easier if I go there.
That said, I think 2-3 is the number of thumb keys that are easy to reach. More than that, and it's harder for the thumb to reach, although allows access to more layers. -- Might as well put tap-hold modifiers on other keys, imo. (e.g. the outer column, or the lower row).
Also.. yeah, Miryoku's layer-opposite-the-thumbkey is elegant, but if it's too restrictive for your usecase, no need to respect it. I'd think e.g. having access to navkeys on the LHS would suit both mouse+keyboard usage, as well as when you've got two hands on the keyboard.
https://configure.zsa.io/moonlander/layouts/wyyxP/latest/0
(The layout currently has more than 32 keys due to extra function keys on the sides and modifiers on the bottom that I only use very rarely. I also no longer use the top pinky keys anymore.)
I have a vim-inspired modal mapping with three main modes: normal (navigation with arrows, pgup/dn, tab switching, etc.), mouse (to move the mouse), and qwerty (for typing). There is one always-present key for each mode that is dedicated only to switching permanently to that mode. These keys are on each of my thumbs, and the third on my right pinky. Each mode also has several unique (and some shared) temporary layers accessible by temporarily holding other keys.
I use a moonlander keyboard but my thumbs sit on the inside keys on the third row, and my palms on the top larger keys that are intended to be used for thumbs.
https://github.com/tss101/clarityqmkkeymap
It's in a bit of a rough state (one folder is for a OLED + RGB Corne r2g, and another is a currently messy adaptation for a Ferris Sweep)
The keymap itself is pretty straightforward. As rgoulter guessed it's just a modification of Miryoku (https://github.com/manna-harbour/miryoku), with some tweaks I made to keep functionally similar layers "together". E.g. the mouse key and navigation key layers are mirror images of each other. And there's a numpad layer, with nested symbols and function key layers that stack from the initial numpad layer. I also designed it to share the load between both hands as much as possible.