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:
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: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
- 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.
TRNS means transparent, i.e. use the settings from lower layers.
- 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.
- 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.
A triangle means that the settings from lower layers are used, N/A means the key does nothing.
- 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.)
- 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
- A = Shift
- L = Shift
- Data (Enter) = Layer 2 (aka Fn2)
- P = Layer 4 (aka Fn4)
- 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 =
- Layer 2: F-keys and less common other keys, e.g.
- Enter-K =
- Enter-L =
- Enter-B =
- Enter-N =
- Enter-M =
- Enter-K =
- Layer 3: Cursor movement, e.g.
- 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-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.
- 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 :-).
- 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. ;-)