Column-staggered left half with thumb cluster

Same 36 keys, columns offset for finger length, spacebar broken into four
stepped thumb keys. Comes out ~7u wide instead of 8.5u because the function
row loses the 104's arbitrary gaps.

Also records the tenting dependency: hardware is CAD, but mounting holes are
PCB and need a case scheme chosen before routing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
William Rickert
2026-08-27 14:58:05 -05:00
co-authored by Claude Opus 5
parent bf6388a061
commit c592b9ab33
2 changed files with 88 additions and 0 deletions
+41
View File
@@ -160,6 +160,47 @@ socket footprints per key with one populated.
See `docs/half-left.svg` and `docs/half-right.svg`.
### Column stagger, not row stagger
A 104's row offsets are a typewriter artifact — mechanical linkages needed the
room, hands didn't. Since these are new PCBs, the columns get offset vertically
to match finger length instead: middle column highest, pinky and inner-reach
columns down ~0.4u.
`docs/half-left-staggered.svg` is the left half rebuilt this way. **Same 36
keys**, and it resolves into a clean 7-column grid:
| Column | Holds |
|---|---|
| 0 (outer) | Esc, `, Tab, Caps, Shift |
| 15 | the finger columns, 5 keys each |
| 6 (inner reach) | F6, 6 — only two keys |
That last column is honest rather than a defect: on a 104, `6` and `F6` really
are an index-finger stretch, and the stagger makes it visible.
Side effect worth having: it comes out **~7u wide instead of 8.5u** (~134 mm vs
~162 mm), because the function row no longer carries the 104's arbitrary gaps.
Narrower *and* better.
### Thumb clusters
Both spacebars break into stepped thumb keys. On the left that's Ctrl / Win /
Alt / Space stepping down and inward. This is where the pinky relief actually
comes from — a stock 104 puts Tab, Caps, Shift *and* Ctrl on the weakest finger.
⚠️ Only about **two or three** of the four are genuinely comfortable; the
outermost is at the edge of thumb travel. Consider dropping Ctrl to a home-row
mod and reclaiming that slot for a layer key.
### Tenting
Tenting hardware is a CAD/case job and comes after the PCB — but the **mounting
holes are PCB**, and where they go depends on the case scheme. Decide sandwich
vs tray *before routing*, or you'll find the case wants a standoff exactly where
a switch or a matrix trace already is. Holes can't be added later without a
respin.
### RGB: numpad underglow only
Per-key RGB is arithmetically impossible on a bus-powered hub. Each half sits on
+47
View File
@@ -0,0 +1,47 @@
<svg width="100%" viewBox="0 0 680 721" role="img" xmlns="http://www.w3.org/2000/svg">
<title>Left half, column-staggered with a thumb cluster</title>
<desc>The same thirty-six keys as the straight 104 split, but each column offset vertically to match finger length, and the spacebar broken into a four-key thumb cluster stepped below the inner columns.</desc>
<text class="th" x="18" y="24">Left half &#8212; column stagger + thumb cluster</text>
<text class="ts" x="18" y="44">Same 36 keys. Columns offset for finger length; the spacebar row becomes a thumb cluster.</text>
<g class="c-teal"><rect x="88" y="108" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="121" y="144" text-anchor="middle">Esc</text></g>
<g class="c-teal"><rect x="88" y="205" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="121" y="241" text-anchor="middle">`</text></g>
<g class="c-teal"><rect x="88" y="277" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="121" y="313" text-anchor="middle">Tab</text></g>
<g class="c-teal"><rect x="88" y="349" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="121" y="385" text-anchor="middle">Caps</text></g>
<g class="c-teal"><rect x="88" y="421" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="121" y="457" text-anchor="middle">Shift</text></g>
<g class="c-teal"><rect x="160" y="104" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="193" y="140" text-anchor="middle">F1</text></g>
<g class="c-teal"><rect x="160" y="200" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="193" y="236" text-anchor="middle">1</text></g>
<g class="c-teal"><rect x="160" y="272" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="193" y="308" text-anchor="middle">Q</text></g>
<g class="c-teal"><rect x="160" y="344" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="193" y="380" text-anchor="middle">A</text></g>
<g class="c-teal"><rect x="160" y="416" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="193" y="452" text-anchor="middle">Z</text></g>
<g class="c-teal"><rect x="232" y="88" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="265" y="124" text-anchor="middle">F2</text></g>
<g class="c-teal"><rect x="232" y="185" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="265" y="221" text-anchor="middle">2</text></g>
<g class="c-teal"><rect x="232" y="257" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="265" y="293" text-anchor="middle">W</text></g>
<g class="c-teal"><rect x="232" y="329" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="265" y="365" text-anchor="middle">S</text></g>
<g class="c-teal"><rect x="232" y="401" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="265" y="437" text-anchor="middle">X</text></g>
<g class="c-teal"><rect x="304" y="78" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="337" y="114" text-anchor="middle">F3</text></g>
<g class="c-teal"><rect x="304" y="174" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="337" y="210" text-anchor="middle">3</text></g>
<g class="c-teal"><rect x="304" y="246" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="337" y="282" text-anchor="middle">E</text></g>
<g class="c-teal"><rect x="304" y="318" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="337" y="354" text-anchor="middle">D</text></g>
<g class="c-teal"><rect x="304" y="390" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="337" y="426" text-anchor="middle">C</text></g>
<g class="c-teal"><rect x="376" y="85" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="409" y="121" text-anchor="middle">F4</text></g>
<g class="c-teal"><rect x="376" y="182" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="409" y="218" text-anchor="middle">4</text></g>
<g class="c-teal"><rect x="376" y="254" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="409" y="290" text-anchor="middle">R</text></g>
<g class="c-teal"><rect x="376" y="326" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="409" y="362" text-anchor="middle">F</text></g>
<g class="c-teal"><rect x="376" y="398" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="409" y="434" text-anchor="middle">V</text></g>
<g class="c-teal"><rect x="448" y="97" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="481" y="133" text-anchor="middle">F5</text></g>
<g class="c-teal"><rect x="448" y="193" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="481" y="229" text-anchor="middle">5</text></g>
<g class="c-teal"><rect x="448" y="265" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="481" y="301" text-anchor="middle">T</text></g>
<g class="c-teal"><rect x="448" y="337" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="481" y="373" text-anchor="middle">G</text></g>
<g class="c-teal"><rect x="448" y="409" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="481" y="445" text-anchor="middle">B</text></g>
<g class="c-teal"><rect x="520" y="108" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="553" y="144" text-anchor="middle">F6</text></g>
<g class="c-teal"><rect x="520" y="205" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="553" y="241" text-anchor="middle">6</text></g>
<g class="c-coral"><rect x="272" y="514" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="305" y="550" text-anchor="middle">Ctrl</text></g>
<g class="c-coral"><rect x="344" y="524" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="377" y="560" text-anchor="middle">Win</text></g>
<g class="c-coral"><rect x="416" y="537" width="66" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="449" y="573" text-anchor="middle">Alt</text></g>
<g class="c-coral"><rect x="488" y="553" width="102" height="66" rx="4" stroke-width="0.5"/><text class="ts" x="539" y="589" text-anchor="middle">Space</text></g>
<g class="c-teal"><rect x="18" y="659" width="13" height="13" rx="3" stroke-width="0.5"/></g>
<text class="ts" x="37" y="669">Alphas &#183; 32, column-staggered</text>
<g class="c-coral"><rect x="318" y="659" width="13" height="13" rx="3" stroke-width="0.5"/></g>
<text class="ts" x="337" y="669">Thumb cluster &#183; 4</text>
<text class="ts" x="18" y="699">Middle-finger column sits highest, pinky and inner-reach columns drop ~0.4u. Thumb keys step down and inward.</text>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB