The current T-34 keyboard layout

I’ve been documenting my own keyboard layout in a series for a while now. But as the layout is constantly changing it’s been difficult to piece together how the layout currently looks like, so this post tries to show how the layout looks right now in it’s entirety.

If you want to read about the background and philosophy about the layout, please see the original T-34 post, and to see it’s evolution please refer to the T-34 series. The layout is implemented using QMK and the code is on GitHub.

The layout is made for a small 34 key keyboard, I use the Ferris with flat choc keycaps to easily press combos.

Legend

Shift / Layer highlight Layer (one shot / down) Modifier (one shot / down) Dead key Management Layer (down) Modifier (down) Special Active key for layer Layer (toggle) Modifier (implicit)
Legend

Layers

Layers are the meat and potatoes of any layout for a smaller keyboard, and mine is no different.

Base

J C Y F P X W O U . R S T H K M N A I Repeat , V G D B / L ( ) _ SHRT Space NAV E SPEC
Base layer.

The repeat key is used to output the last pressed key. I shift keys using auto shift (see long press) and CAPSWORD. The letters Z and Q, together with a bunch of other keys, are on combos.

Swedish overlay

Å Ä Ö
Swedish overlay.

When I want to write Swedish I activate this layer that replaces ()_ with åäö, or I use combos from any layer.

Workspace layer

J C W E R 6 4 0 2 K 3 1 5 7 8 9 H L Space WNAV
Workspace layer. All keys have an implicit Gui modifier.

This is used for all window and workspace management in xmonad. Some common operations are also on the navigation layer.

Windows layer

Shift Tab Tab
Windows layer. All keys have an implicit Alt modifier.

This is purely to enable window switching using Alt-Tab and Ctrl-Alt-Tab, without releasing Alt.

Numbers

J + * ! P X @u Repeat 6 4 0 2 K 3 1 5 7 , Shift G 8 / 9 ( ) _ Space NAV Cancel
Numbers. The darkened keys turn off NUMWORD.

While I can activate the number layer persistently (using leader sequences) I typically use combos for single digitis (like 0), or NUMWORD for larger numbers (like 1984).

NUMWORD makes the number layer smart, so it will deactivate when certain keys are pressed (colored dark gray in the image). It’s used to type numbers in text or code and for relative movement in Vim, where 17J would move 17 lines down and then turn off the number layer.

@u is there to easily activate macros in Vim. For example 7@u in the number layer would run the u macro 7 times and then turn off NUMWORD.

Function keys

F6 F4 F10 F2 F12 F11 F3 F1 F5 F7 F8 F9 SHRT SPEC
Function keys.

Symbols

~ + * ! # @ ^ . | { } - \ ` ? [ ] Repeat , < > % / & ( ) _ Cancel
Symbols.

Similar to the numbers layer, there are combos that are used to output standalone symbols. The combos follow the layout of the symbols layer, and combos with same-side thumb. So Space + left-hand key or E + right-hand key outputs a symbol, regardless of what layers are activated.

Some common symbol sequences, like ->, exists as combos and others, like  != , as long press.

One-handed Shortcuts

Ctrl Q Ctrl W Ctrl E Ctrl R Ctrl T Ctrl A Ctrl S Ctrl A Ctrl F Ctrl G Ctrl Z Ctrl X Ctrl C Ctrl V Ctrl B SHRT FUN
Shortcuts.

To give access to common QWERTY shortcuts using the left hand, for programs where I have my right hand on the mouse/trackball. (Long press still shifts them.)

Special symbols

~ ^ ¨ ´ ` FUN SPEC
Specials (with ←↓↑→ symbols, not arrow keys).

Some of these are dead keys, to add diacritic to any letter. To get é I do ´ then e, and the operating system will merge them together.

Modifiers

Gui Ctrl Shift Alt Right Alt
Modifiers.

I typically use long press for shift and combos for other modifiers, this layer is a fallback for when those aren’t enough.

Combos

Combos is another fantastic tool that I (ab)use a lot. Simply put it allows you to press multiple keys at once and acts as an additional key—very useful for smaller layouts.

Note that combos are layer independent, and work the same regardless of what layers are activated. The base layer is shown in the graphics for reference.

Neighbour combos

These combos are made by keys next to each other, either horizontally (pressed with two fingers) or vertically (pressed with one finger in the middle of two keys).

J C Y F P X W O U . R S T H K M N A I Repeat , V G D B / L ( ) _ SHRT Space NAV E SPEC Q QU Z Clear #{} = Bspc Rev Rep Ctrl Esc SYM Del : SYM Ctrl vsplit Gui Shift Shift Gui $ <- <= => -> |> hsplit >=
2-key neighboring combos.
  • Some combos have a separate hold behaviour; for instance holding Escape activates the symbols layer, allowing me to output [] easily.
  • vsplit splits a window vertically in Vim and hsplit splits it horizontally, and Close Window closes a window in Vim (<C-w>q).
  • Clear resets all states; sets the base layer, releases modifiers, stops CAPSWORD and NUMWORD, and clears other persistent states.
J C Y F P X W O U . R S T H K M N A I Repeat , V G D B / L ( ) _ SHRT Space NAV E SPEC Ctrl W Ctrl W Tab MOD Enter Close Window SWE
3-key horizontal combos.
  • SWE activates the Swedish layer, and if prefixed with ()_ it will replace that with åäö and vice versa. So for example if I typed hall( I would press SWE to get hallå, with the Swedish layer activated.
  • Ctrl W is used to close tabs in Firefox.
N A I Repeat Save Vim
A 4-key horizontal combo.
  • Save Vim is a 4-key combo that saves the buffer in Vim.

Split combos

These split combos uses the ring and index finger.

S H N I " '
Combos for the quotes " and '.
T A D L ; WIN
Combos don’t have to be on the same row, these angled combos are fairly comfortable.
V D L ) Alt Leader Key
One-shot Alt and the Leader key.

Combos over keyboard halfs

T A Space NAV E CAPSWORD NUMWORD
  • Tapping T + A once activates CAPSWORD, tapping again makes it persistent (CAPS LOCK), and a third tap to deactivate CAPS LOCK.
  • Tapping Space + E activates NUMWORD and tapping them again activates the number layer persistently.

The repeat key works with the above, making them easier to double-tap.

Numbers and symbols

~ + * ! | { } - \ 3 1 5 7 < > % https:// 9 Å Ä Ö Space NAV NUM WORD
Combos using Space and another key.
# @ ^ 6 4 0 2 É ` ? [ ] 8 & ( ) _ NUM WORD E
Combos using E and another key.

Combos with a thumb key is used for digits or standalone symbols, with the logic of same-side thumb + key = symbol and opposite-side thumb + key = digit. The placements follow the numbers, symbols and Swedish layers. Both thumbs activates NUMWORD.

Long press

Most keys have a different behaviour when tapped compared to a long press. Most commonly I use this to produce shifted keys (called auto shift). So to get A I press and hold a until it turns up.

There are a bunch of special cases as well (mostly on top of [combos]):

Tap Long press
_ < > / \ # Double, e.g __
" ' = ` 0 . Triple, e.g """
| & = Double with spaces, e.g ||
!  !=  (with spaces)
? {:?}
# {:#?}
% %{}
( [ { Close and move cursor between
@ @u (paired with qu combo for Vim macro execution)

Leader sequences

I use the combo l + ) as the leader key. This will wait for a sequence of key presses (in contrast to combos where keys must be pressed at the same time). This is used with mnemonics for rarely used outputs:

Leader sequence Action
l + ), c Caps lock
l + ), t, n Toggle Number layer
l + ), t, s Toggle Symbols layer
l + ), t, c Toggle Caps lock escape swap

CAPSWORD

CAPSWORD is a “smart caps lock”. It works like a regular caps lock, except it automatically turns off after certain keys are typed (most commonly space).

It will not turn off on these keys: a-z å ä ö _ - Backspace and Repeat.

NUMWORD

NUMWORD is a “smart layer”. It’s similar to CAPSWORD, except it’s for the numbers layer instead of caps lock.

It will not turn off on these keys: 0-9 % + * - _ . , : = x Backspace Repeat Reverse Repeat and Enter.

Repeat key

The repeat key simply repeats the previous key. So to type fall I can type f a l Repeat, using four different fingers instead of pressing l twice. It can also repeat things like Ctrl-c or Delete.

There’s also a reverse repeat key that “reverses” the last pressed key. The idea is that if you pressed PageUp a bunch, but went too far, you could press Reverse Repeat to output PageDown.

See T-34/0 for the introduction of the repeat key and reverse repeat key for some more information about them.

More info

While I try to keep this post updated, reading the code will always give you a more up to date reference. If you’re interested in why the layout looks like it does, I try to write the motivations in the T-34 series.


  • Update the graphics to use embedded svgs generated from the source code.

  • Add @u to number layer for easier execution of Neovim macros (e.g. 17@u)

    1. Add the Windows layer to enable windows switching using Alt-Tab and Ctrl-Alt-Tab.
    2. Move PgUp to the home row pinky on the navigation layer.
    3. Use the QWERTY layout for the shortcut layer on the left side.
  • Another large update that swaps A O and I U, reduces inner thumb key usage, makes layers accessible via home-row combos, reworks the symbols, and more.

  • This update moves the repeat key, adds a shortcut layer, and moves modifiers to combos.

  • A major update documented in this post that introduces the repeat key, moves around keys on the base layer, reworks the symbols layer, and more.