Some of you might have noticed that I m into keyboards since a few
years ago into mechanical keyboards to be precise.
Preface
It basically started with the
Swiss Mechanical Keyboard Meetup (whose website I
started later on) was held in the hackerspace of the
CCCZH.
I mostly used TKL keyboards (i.e. keyboards with just the for
me useless number block missing) and tried to get my hands on
more
keyboards with Trackpoints (but failed so far).
At some point a year or two ago, I looking into smaller keyboards for
having a mechanical keyboard with me when travelling. I first bought a
Vortex Core at
Candykeys. The size was nice and especially having all
layers labelled on the keys was helpful, but nevertheless I soon
noticed that the smaller the keyboards get, the more important is,
that they re properly programmable. The Vortex Core is programmable,
but not the keys in the bottom right corner which are exactly
the keys I wanted to change to get a cursor block down there. (Later I
found out that there are possibilities to get this done, either with
an alternative firmware and a hack of it or
desoldering all switches and mounting an
alternative PCB
called Atom47.)
40% Keyboards
So at some point I ordered a MiniVan keyboard from
The Van Keyboards (
MiniVan keyboards will soon be available again at The Key
Dot Company), here shown with
GMK
Paperwork (also bought from and designed by The Van Keyboards):
The MiniVan PCBs are fully programmable with the
free and open source firmware QMK and
started to use that more and more instead of bigger keyboards.
Layers
With the MiniVan I learned the concepts of layers. Layers are similar
to what many laptop keyboards do with the Fn key and to some extent
also what the German standard layout does with the AltGr key: Layers
are basically alternative key maps you can switch with a special key
(often called Fn , Fn1 , Fn2 , etc., or especially if there
are two additional layers Raise and Lower ).
There are several concepts how these layers can be reached with these
keys:
- By keeping the Fn key pressed, i.e. the alternative layer is
active as long as you hold the Fn key down.
- One-shot layer switch: After having pressed and released the Fn
key, all keys are on the alternative layer for a single key press and
then you are back to the default layer.
- Layer toggle: Pressing the Fn key once switches to the alternative
layer and pressing it a second time switches back to the default
layer.
- There are also a lot of variants of the latter variant,
e.g. rotating between layers upon every key press of the Fn key. In
that case it seems common to have a second special key which always
switches back to the default layer, kinda Escape key for layer
switching.
My MiniVan Layout
For the MiniVan, two additional layers suffice easily, but since I
have a few characters on multiple layers and also have mouse control
and media keys crammed in there, I have three additional layers on my
MiniVan keyboards:
TRNS means transparent, i.e. use the settings from lower
layers.
I also use a feature that allows me to mind different actions to a key
depending if I just tap the key or if I hold it. Some also call this
tap dance . This is especially very popular on the usually rather
huge spacebar. There, the term SpaceFn has been coined, probably
after
this discussion on Geekhack.
I use this for all my layer switching keys:
- The left spacebar is space on tap and switches to layer 1 if
hold. The right spacebar is a real spacebar, i.e. already triggers a
space on key press, not only on key release.
Layer 1 has numbers on the top row and the special characters of
the number row in the second row. It also has Home/End and Page
Up/Down on the cursor keys.
- The key between the Enter key and the cursor-right key (medium
grey with a light grey caret in the picture) is actually the Slash and
Question Mark key, but if hold, it switches me to layer 2.
Layer 2 has function keys on the top row and also the special
characters of the number row in the second row. On the cursor keys it
has volume up and down as well as the media keys previous and
next .
- The green key in the picture is actually the Backslash and Pipe
key, but if hold, it switches me to layer 3.
On layer 3 I have mouse control.
With this layout I can type English texts as fast as I can type them
on a standard or TKL layout.
German umlauts are a bit more difficult because it requires 4 to 6 key
presses per umlaut as I use the Compose key functionality (mapped to
the Menu key between the spacebars and the cursor block. So to type an
on my MiniVan, I have to:
- press and release Menu (i.e. Compose); then
- press and hold either Shift-Spacebar (i.e. Shift-Fn1) or Slash
(i.e. Fn2), then
- press N for a double quote (i.e. Shift-Fn1-N or Fn2-N) and then
release all keys, and finally
- press and release the base character for the umlaut, in this case
Shift-A.
And now just use these concepts and reduce the amount of keys to 28:
30% and Sub-30% Keyboards
In late 2019 I stumbled upon a nice little keyboard kit shop on
Etsy which I
(and probably most other people in the mechanical keyboard scene)
didn t take into account for looking for keyboards called
WorldspawnsKeebs. They offer mostly kits for keyboards of 40%
size and below, most of them rather simple and not expensive.
For about 30 you get a complete sub-30% keyboard kit (without
switches and keycaps though, but that very common for keyboard kits as
it leaves the
choice of switches and key caps to you) named Alpha28 consisting
of a
minimal Acrylic case and a
PCB and
electronics set.
This Alpha28 keyboard is
btw. fully open source as
the source code,
(i.e. design files) for the hardware are published under a free
license (MIT license) on GitHub.
And here s how my Alpha28 looks like with
GMK Mitolet (part of
the GMK Pulse group-buy) key caps:
So we only have character keys, Enter (labelled Data as there was no
1u Enter key with that row profile in that key cap set; I ll also call
it Data for the
rest of this posting) and a small spacebar, not even
modifier keys.
The Default Alpha28 Layout
The
original key layout by the developer of the Alpha28
used the spacbar as Shift on hold and as space if just tapped, and the
Data key switches always to the next layer, i.e. it switches the layer
permanently on tap and not just on hold. This way that key rotates
through all layers. In all other layers, V switches back to the
default layer.
I assume that the modifiers on the second layer are also on tap and
apply to the next other normal key. This has the advantage that you
don t have to bend your fingers for some key combos, but you have to
remember on which layer you are at the moment. (
IIRC QMK allows you to
show that via LEDs or similar.) Kinda just like vi.
My Alpha28 Layout
But maybe because I m more an
Emacs person, I dislike remembering
states myself and don t bind bending my fingers. So I decided to
develop my own layout using tap-or-hold and only doing layer switches
by holding down keys:
A triangle means that the settings from lower layers are used,
N/A means the key does nothing.
It might not be very obvious, but on the default layer, all keys in
the bottom row and most keys on the row ends have tap-or-hold
configurations.
Basic ideas
- Use all keys on tap as labelled by default. (Data = Enter as
mentioned above)
- Use different meanings on hold for the whole bottom row and some
edge column keys.
- Have all classic modifiers (Shift, Control, OS/Sys/Win, Alt/Meta)
on the first layer twice (always only on hold), so that any key, even
those with a modifier on hold, can be used with any
modifier. (Example: Shift is on A hold and L hold so that Shift-A is
holding L and then pressing A and Shift-L is holding A and then
pressing L.)
Bottom row if hold
- Z = Control
- X = OS/Sys/Win
- C = Alt/Meta
- V = Layer 3 (aka Fn3)
- Space = Layer 1 (aka Fn1)
- B = Alt/Meta
- N = OS/Sys/Win
- M = Ctrl
Other rows if hold
- A = Shift
- L = Shift
- Data (Enter) = Layer 2 (aka Fn2)
- P = Layer 4 (aka Fn4)
How the keys are divided into layers
- Layer 0 (Default): alphabetic keys, Space, Enter, and (on hold)
standard modifiers
- Layer 1: numbers, special characters (most need Shift, too), and
some more common other keys, e.g.
- Space-Enter = Backspace
- Space-S = Esc
- Space-D = Tab
- Space-F = Menu/Compose
- Space-K =
:
- Space-L =
'
- Space-B =
,
- Space-N =
.
- Space-M =
/
, etc.
- Layer 2: F-keys and less common other keys, e.g.
- Enter-K =
-
- Enter-L =
=
- Enter-B =
[
- Enter-N =
]
- Enter-M =
\
, etc.)
- Layer 3: Cursor movement, e.g.
- scrolling
- and mouse movement.
- Cursor cross is on V-IJKL (with V-I for Up)
- V-U and V-O are Home and End
- V-P and V-Enter are Page Up/Down.
- Mouse movement is on V-WASD
- V-Q
- V-E and V-X being mouse buttons
- V-F and V-R is the scroll wheel up down
- V-Z and V-C left and right.
- Layer 4: Configuring the RGB bling-bling and the QMK reset key:
- P-Q (the both top corner keys) are QMK reset to be able to reflash
the firmware.
- The keys on the right half of the keyboard control the modes of
the RGB LED strip on the bottom side of the PCB, with the upper two
rows usually having keys with some Plus and Minus semantics, e.g. P-I
and P-K is brightness up and down.
- The remaining left half is unused and has no function at all on
layer 4.
Using the Alpha28
This layout works surprisingly well for me.
Only for Minus, Equal, Single Quote and Semicolon I still often have
to think or try if they re on Layer 1 or 2 as on my 40%s (MiniVan,
Zlant, etc.) I have them all on layer 1 (and in general one layer less
over all). And for really seldom used keys like Insert, PrintScreen,
ScrollLock or Pause, I might have to consult my own
documentation. They re somewhere in the middle of the keyboard, either
on layer 1, 2, or 3. ;-)
And of course, typing umlauts takes even two keys more per umlaut as
on the MiniVan since on the one hand Menu is not on the default layer
and on the other hand, I don t have this nice shifted number row and
actually have to also press Shift to get a double quote. So to type
an on my Alpha, I have to:
- press and release Space-F (i.e. Fn1-F) for Menu (i.e. Compose); then
- press and hold A-Spacebar-L (i.e. Shift-Fn1-L) for getting a
double quote, then
- press and release the base character for the umlaut, in this case
L-A for Shift-A (because we can t use A for Shift as I can t hold a
key and then press it again :-).
Conclusion
If the characters on upper layers are not labelled like on the Vortex
Core, i.e. especially on all self-made layouts, typing is a bit like
playing that old children s game
Memory: as soon as you remember (or your muscle memory knows)
where some special characters are, typing gets faster. Otherwise, you
start with trial and error or look the documentation. Or give up. ;-)
Nevertheless, typing on a sub-30% keyboard like the Alpha28 is much
more difficult and slower than on a 40% keyboard like the MiniVan. So
the Alpha28 very likely won t become my daily driver while the MiniVan
defacto is my already my daily driver.
But I like these kind of challenges as others like the game
Memory . So I ordered three more 30% and sub-30% keyboard kits and
WorldspawnsKeebs for soldering on the upcoming weekend during the
COVID19 lockdown:
- A Reviung39
to start a new try on ortholinear layouts.
- A Jerkin (sold out, waitlist available) to try an Alice-style
keyboard layout.
- A Pain27 (which btw. is also open source under the CC0 license) to try typing
with even one key less than the Alpha28 has. ;-)
And if I at some point want to try to type with even fewer keys, I ll
try a
Butterstick keyboard with just 20 keys. It s a
chorded keyboard where you have to
press multiple
keys at the same time to get one charcter: So to get an A from the
missing middle row, you have to press Q and Z simultaneously, to get
Escape, press Q and W simultaneously, to get Control, press Q, W, Z
and X simultaneously, etc.
And if that s not even enough, I already bought a
keyboard kit named Ginny
(or Ginni, the developer can t seem to decide) with just 10 keys
from an acquaintance. Couldn t resist when offered his surplus
kits. :-) It uses the
ASETNIOP layout which was initially
developed for on-screen keyboards on
tablets.