The current T-34 keyboard layout ★
Contents
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
Layers
Layers are the meat and potatoes of any layout for a smaller keyboard, and mine is no different.
Base
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
When I want to write Swedish I activate this layer that replaces ()_
with åäö
, or I use combos from any layer.
Workspace layer
Gui
modifier.
This is used for all window and workspace management in xmonad. Some common operations are also on the navigation layer.
Windows layer
Alt
modifier.
This is purely to enable window switching using Alt-Tab
and Ctrl-Alt-Tab
, without releasing Alt
.
Numbers
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
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
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
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
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).
-
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 andhsplit
splits it horizontally, andClose 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.
-
SWE
activates the Swedish layer, and if prefixed with()_
it will replace that withåäö
and vice versa. So for example if I typedhall(
I would pressSWE
to gethallå
, with the Swedish layer activated. -
Ctrl W
is used to close tabs in Firefox.
-
Save Vim
is a 4-key combo that saves the buffer in Vim.
Split combos
These split combos uses the ring and index finger.
"
and '
.
Alt
and the Leader key.
Combos over keyboard halfs
-
Tapping
T
+A
once activates CAPSWORD, tapping again makes it persistent (CAPS LOCK
), and a third tap to deactivateCAPS 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
Space
and another key.
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
) -
-
Add the Windows layer to enable windows switching using
Alt-Tab
andCtrl-Alt-Tab
. -
Move
PgUp
to the home row pinky on the navigation layer. -
Use the
QWERTY
layout for the shortcut layer on the left side.
-
Add the Windows layer to enable windows switching using
-
Another large update that swaps
A
O
andI
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.