This repository is where I keep my personal ZMK keyboard firmware configuration/layouts (generally for keyboard PCBs that I designed and provide default firmware for), for use with programable mechanical computer keyboards. The keymap images are rendered automatically using keymap-drawer using this Draw Keymaps GitHub Action.
My base layer is the inverted Hands Down Promethium
layout
with my personal modifications ("Pico Mod") intended to help with some readline shortcuts
(horizontal pair B/F for back/forward, vertical pair P/N for previous/next).
It also has matching B (bottom left) and W (bottom right) for back to start
of word, and forward to start of next word in Vim or Helix.
Most of the symbols are 2-key vertical combos, the brackets are 2-key horizontal
combos (open on the left hand, close on the right).
This has Auto Shift setup, meaning a long tap on the base layer letters and symbols gives the capital or shifted form. I am also trying out Magic Comma Shift whereby typing comma then a letter will give the capital version of the letter - but typing comma and space just works as usual.
I wanted to be able to use this on my laptop too - achieved with custom Karabiner-Elements rules (see this blog post).
Most of the combos are for symbols which on a traditional layout are normally typed with shift.
The brackets and other inner column combos are an exception where the keyma
images with two symbols indicate a plain combo, or with shift. Here [{ and ]}
are normal pairings, but (< and )> are atypical.
The second layer is for typing in Japanese using Naginata Style (薙刀式) (see
blog post)
using the ZMK Naginata module. This is
currently at v17.
I made minor changes so that Qwerty Q is now Escape on tap, small on hold, and
added shift-space on a thumb for kanji selection without needing editing layers.
Due to my brackets combos clashing with the default way to switch Japanese mode
and the Naginata layer on and off, those are Qwerty D+G (labeled 'ABC' in
the image) and Qwerty H+K instead (labeled 'かな'). This layout uses a lot
of chording, but these are not defined as ZMK combos, and so are not drawn here.
The third and final layer is a combined numbers and navigation layer. The right hand has navigation keys including an inverted-tee set of cursors at the Qwerty JKIL position inspired by Dreymar's Extend layer. The left hand has a number-pad, with 123 at the top like a mobile phone (since in a traditional keyboard 123 are about there).
The QMK project uses the term split_3x5_3 for one of their standard community
layout names for the most common 36 key layout. This means a symmetrical split
layout where each hand has three rows and five columns (the index finger gets
an extra inner column), plus three thumb keys.
In this keymap image the base layer keys and space are coloured by usage frequencies: orange/pink for highest use - mainly home keys, down through pink, purples, to a dark blue for low like the letters demoted to combos: Q, Z, and V (and X for even smaller keyboards - see below).
The ZMK keymap in file tc36k.keymap is the split 3x5_3 layout described above (without the Bluetooth combos) for the self-built Gamma Omega TC36K. This is a single PCB no-diode variant of the Gamma Omega where I designed the wiring and PCB.
This uses my ZMK firmware for the TC36K (I also wrote QMK firmware for the TC36K).
This keyboard has 6-key roll-over, which is not a limitation with this or most keymaps.
The ZMK keymap in file hesse.keymap is the split 3x5_3 layout described above for the self-built Gamma Omega Hesse. This is a Bluetooth version of the Gamma Omega.
This uses my ZMK firmware for the Hesse
This keyboard has only 4-key roll-over, which was kept in mind when editing this keymap. i.e. I try not to use any combos needing more than four keys in total.
The QMK project uses the term split_3x5_2 for one of their standard community
layout names for the most common 34 key layouts. This means a symmetrical split
layout where each hand has three rows and five columns (the index finger still
gets a full extra inner column), plus two thumb keys.
My layout here is the 3x5_3 layout above with the most tucked thumb keys
discarded (being the least comfortable for me on my 36-key keyboards). This
is done via the LAYER_FROM36 macro idea from Cem Aksoylar's ZMK
config,
The ZMK keymap in file acid.keymap is the split 3x5_2 layout described above for my self-built variant of the Forager keyboard.
The Forager Acid keyboard has only 4-key roll-over per hand (so better than the Hesse mentioned above).
By this I mean a layout where each hand gets columns of 3 keys for the pinky, ring, middle, and index fingers - but then only 2 keys for the index finger's inner column, and two thumb keys. This is used by the keyboards like the Visorbearer.
For this I drop my X and / (slash) keys. Note the X combo bottom left,
/ combo on the remaining right inner column keys. This allows ../ with a
similar motion of the right index finger (tap, tap, combo).
For the Naginata layer this means dropping the pair of cursor keys, which are redundant with a navigation layer - but the remaining inner column keys are vertically swapped to ensure the ya-combos are comfortable (see this blog post).
The ZMK keymap in file bivouac34.keymap is the layout shown above, a split 33332+2 layout (32 keys only). The keyboard also supports a 34 key 33332+3 layout (which I am not using).
Like the Hesse (above), this has only 4-key roll-over.
By this I mean a layout where each hand gets columns of only 2 keys for the pinky, but 3 keys for the ring, middle, and index fingers, and again only 2 keys for the index finger's inner column, and two thumb keys. This is used by the keyboards like the Hummingbird.
This would mean dropping my Escape and =/+ keys and all the combos on them.
Right now that seems challenging. It would also break using the Naginata layout.
By this I mean a layout where each hand gets columns of 3 keys for the pinky, ring, middle, and index fingers, and again only 2 keys for the index finger's inner column, but only one thumb keys. This is used by some of the awesome Hummingbird inspired keyboards - for example this is one of the layouts supported by the Visorbearer.
This means dropping backspace on the left thumb (leaving just the Naginata Style
backspace on the index finger), and the dedicated shift on the right thumb (note
holding the R left thumb gives shift). Capital R is available with Magic
Comma Shift only.
The ZMK keymap in file bivvy16d.keymap is the 30 key layout above, plus navigation and cursors on the two 5-way navigation buttons.
The Bivvy16D has 14-key roll-over excluding the navigation buttons, 4-key roll over when they are included (per hand). It can be built like this with 30 keys, or with two keys per thumb for 32 keys.
The ZMK keymap in file goldilocks32.keymap uses this 30 key layout, plus cursors and enter on the 5-way navigation button.
The Goldilocks32 has 6-key roll-over excluding the navigation button, 4-key roll over when that is included. It can be built like this with 30 keys, or with two keys per thumb for 32 keys.
My 'slump' layout has a 30-key core with additional thumb keys, and one top corner key per hand (Escape and Backspace with Qwerty), and a bottom corner pinky key (tab and enter perhaps). The inner column is staggered (or 'slumped') to allow the bottom inner key to be a thumb key. This then looks like a 44332+2 split layout. Moreover, the pinky column can optionally be down-shifted by one key.
This keyboard has that 44332+2 style, plus an extra central thumb key, number pad and cursors. This layout embeds the 33332+2 layout described above.
The ZMK keymap in file slump52.keymap defines this.