Skip to content

Commit 163562c

Browse files
committed
feat: physical keyboard layouts blog post
1 parent 4168e9f commit 163562c

File tree

16 files changed

+231
-9
lines changed

16 files changed

+231
-9
lines changed

config/_default/languages.en.toml

+6-8
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
1-
languageCode = "en"
2-
languageName = "English"
3-
displayName = "EN"
4-
isoCode = "en"
1+
languageCode = "en-gb"
52
weight = 1
6-
rtl = false
73

84
title = "Tolki's Blog"
5+
6+
[languages.en.params]
97
# TODO REVIEW WHICH GOES WHERE
8+
color = 'blue'
109
description = "Gaming, Software Development, Data Science, Fitness"
11-
# copyright = "Copy, _right?_ :thinking_face:"
12-
13-
dateFormat = "2 January 2006"
10+
rtl = false
1411

1512
[author]
1613
# TODO Review -> About page?
@@ -41,6 +38,7 @@ links = [
4138
# { kickstarter = "https://www.kickstarter.com/profile/username" },
4239
# { lastfm = "https://lastfm.com/user/username" },
4340
# { linkedin = "https://linkedin.com/in/username" },
41+
{ bluesky = "https://bsky.app/profile/tolki.dev" },
4442
{ mastodon = "https://fosstodon.org/@tolki" },
4543
# { medium = "https://medium.com/username" },
4644
# { microsoft = "https://www.microsoft.com/" },
Binary file not shown.
Binary file not shown.
Binary file not shown.
53.2 KB
Loading
Loading
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
1+
---
2+
title: "This is the ideal keyboard body.You may not like it, but this is what peak performance looks like."
3+
categories: Productivity
4+
date: 2024-07-20
5+
tags:
6+
- Keyboards
7+
8+
series: ["Keyboards in 2024"]
9+
series_order: 1
10+
11+
---
12+
13+
If you've been around the internet for some times, you might have come accross psychos using keyboards with arcane key positionning.
14+
15+
I'm one of them.
16+
17+
And you should be too.
18+
19+
# Preambule
20+
21+
The **physical layout** is the position of keys on the keyboard. It isthe focus on this article.
22+
23+
## Vocabulary
24+
25+
All physical layouts include:
26+
27+
- A **home row** where the fingers rest when not typing
28+
- On a QWERTY layout the home row is `ASDFGHJKL;'#`
29+
- A **bottom** and **top row** containing the rest of the alphanumeric keys
30+
31+
In standard keyboards you also have:
32+
33+
- A **thumb row** below the bottom row, containing space, alt, ctrl, etc.
34+
- A **number row** above the top row containing numbers, symbols, and backspace
35+
36+
# Normie layouts issues
37+
38+
Normie keyboards have a few different physical layouts: ISO, ANSI, JIS, KS, etc.
39+
40+
![Normie layouts](many-layouts.webp)
41+
42+
They all share multiple issues:
43+
44+
- Positionning of alphanumeric keys
45+
- Fingers don't have a natural vertical movement to reach keys on the upper and lower row
46+
- Which finger is supposed to press `Y` or `B` on a QWERTY layout?
47+
- Unergonomic numbers and symbols access
48+
- Accessing top row numbers is inconvenient as it requires moving all your hand
49+
- Symbols are placed arbitrarily, making them hard to remember
50+
- Completely absurd positionning of modifiers and non-alphanumeric keys
51+
- Space is accessible, but shift and backspace are on corners of the keyboard despite both being in the top 5 most used keys
52+
53+
## The ISO catastrophe
54+
55+
The ISO keyboard is a 105 keys layout defined as "standard" by the International Organization for Standardization.
56+
57+
![ISO layout](ISO_Layout.webp)
58+
59+
It is by far the worst of all existing layouts:
60+
61+
- The enter key is placed on a TRIPLE pinky extension, meaning you need to move your pinky 3 keys to the right to press it
62+
- The left Shift is placed on a double extension and row change
63+
- Shift is the fourth most used key on a keyboard, but that's for the software layout article!
64+
65+
## The JIS innovation
66+
67+
![JIS layout](JIS_layout.webp)
68+
69+
The JIS layout is still bad but it has a few one thing going for it:
70+
71+
- It adds two extra keys around the space bar, giving both thumbs access to 3 keys total
72+
73+
Unfortunately, it falls in the same pitfalls as ISO by having a terrible enter key positionning, making it even worse with a short backspace key.
74+
75+
# First improvements
76+
77+
So now that we know what's wrong with normie keyboards let's see what we can do to fix them.
78+
79+
## Vertical alignment
80+
81+
For fingers to move smoothly between keys it is much better to have keys assigned to a finger in a straight column.
82+
83+
Fixing this brings you the [TECK keyboard](https://www.pcmag.com/reviews/truly-ergonomic-computer-keyboard-teck-model-207):
84+
85+
![TECK layout](TECK.jpg)
86+
87+
Keys are clearly assigned to fingers. Index moving distance is also greatly reduced.
88+
89+
## Thumb cluster
90+
91+
But we're still not putting our thumbs to good use. The next obvious addition is the **thumb cluster**: assigning multiple keys to each thumb!
92+
93+
A good example is the [Osprey](https://kbd.news/The-Osprey-keyboard-953.html):
94+
95+
![Osprey layout](osprey.jpg)
96+
97+
This gives us easy to access extra keys, perfect for often used keys like space, backspace, enter, shift, ...
98+
99+
Thumb clusters can go from 2 keys up to 6 in some keyboards. After trying out 4, 6, 2, and 3 keys thumb clusters I found that 3 keys is the sweet spot.
100+
101+
The thumb is highly mobile, and 3 keys can be easily reachable if arranged in a curve.
102+
103+
With 4 and more keys you end up stacking keys vertically, which is inconvenient. The thumb is not well suited for vertical movement when your hand is over a table, as you're hitting keys with the side of your thumb.
104+
105+
# The two horsemen of ergonomics
106+
107+
## Stagger
108+
109+
I'm cheating a little bit here. The two previous keyboards already used stagger.
110+
111+
"Staggering" keys is adding some vertical offset to columns to better accomodate for natural fingers positionning.
112+
113+
![Stagger](stagger.png)
114+
115+
This level of stagger is pretty conservative.
116+
117+
The pinky finger actual resting position is *much lower* than other fingers, almost a full key lower.
118+
119+
In extrem cases you get the [Kleks](https://kbd.news/Kleks-keyboard-1161.html):
120+
121+
![Stagger](kleks.jpg)
122+
123+
For ergonomics, stagger is primordial. The exact values are still up for debate, but it's clear some amount of stagger is good for ergonomics!
124+
125+
## Splay
126+
127+
But stagger alone is not enough. Why should keys all be aligned to the same vertical axis?
128+
129+
Both the ring and the pinky finger move slightly to the side compared to the index and middle finger.
130+
131+
A good example is the [re-gret](https://github.com/rschenk/re-gret):
132+
133+
![Re-gret layout](regret.jpg)
134+
135+
Both the ring and pinky column are angled, making them more comfortable to reach!
136+
137+
# Late game
138+
139+
## Minimalism
140+
141+
One way to solve the numbers row issue is to make your keyboard as compact as possible. You access numbers and symbols by holding a "layer" key which will we talk about in the next article.
142+
143+
The only thing you need to know is that a standard 106 keys keyboard can easily be reduced down to 30 keys. It makes it more intuitive and ergonomic.
144+
145+
Using low profile keys also greatly reduces the footprint of the keyboard by reducing its vertical height. Reduced height results in improved ergonomics as you can more easily adjust desk and chair height for proper posture.
146+
147+
This is how I got to the [tern](https://github.com/rschenk/tern):
148+
149+
![Tern layout](tern_top.jpeg)
150+
151+
It sports all things I covered so far and looks gorgeously minimalist.
152+
153+
It fits in a pocket, is only a single centimeter tall, and is a joy to type on.
154+
155+
But there are diminishing returns to removing keys. Going down to 30 is pretty extreme.
156+
157+
I'd say a good middle-ground is from 34 to 40! You still get a full alphanumeric layer and maintain good ergonomics, as long as you use a good software layout!
158+
159+
## Split keyboards
160+
161+
Splitting a keyboard in two halves lets you position them more freely. You can select both the distance and the angle between both halves.
162+
163+
![Sweep](https://private-user-images.githubusercontent.com/27895007/264190906-97e13cdc-b84b-4545-8e09-139a4bb935e5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEyNjkzODAsIm5iZiI6MTcyMTI2OTA4MCwicGF0aCI6Ii8yNzg5NTAwNy8yNjQxOTA5MDYtOTdlMTNjZGMtYjg0Yi00NTQ1LThlMDktMTM5YTRiYjkzNWU1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE4VDAyMTgwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZlNWE1M2UzNTFjMDI0NmYzY2ViNDFjZmY1MjY0YjljYmJlY2U1NzIxMjNhYjJiNDA1YzFkNjVkZGM1NGJlYmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ZTxuVj6xlQ3hr4MF79NubM4PJGG6EUV9-9EjabWB1To)
164+
165+
I used split keyboards for 5 years before moving back to unibody designs.
166+
167+
While splits are very convenient at home they're annoying to setup if you need to move your keyboard around. Mine also happened to be wired which made at worse as I need an extra cable.
168+
169+
I think wireless split is the true endgame, but at the moment I'm sticking to unibody for convenience!
170+
171+
## Curved keyboards
172+
173+
![Glove80](glove80.webp)
174+
175+
Curved keyboard make keys even closer to each finger by following the natural curve of your hand.
176+
177+
I love the idea, but currently available curved keyboard are prohibitely expensive, physically huge, and a pain to transport.
178+
179+
It is the only keyboard ergonomics feature I haven't tried yet, so I don't have strong opinions about it. But damn, do they look cool ❤️
180+
181+
# Tolkeeb Zero
182+
183+
This brings us to the keyboard I designed from scratch, the Tolkeeb Zero:
184+
185+
![Tolkeeb Zero](featured.jpg)
186+
187+
- 3 keys thumb cluster with an *outer* key instead of an extra *inner* key
188+
- Feels very natural
189+
- v2: move the cluster ~1mm back towards the hand
190+
- Pinky side extension key
191+
- Moving the pinky to the side is surprisingly comfortable, hence the side extension
192+
- v2: add back the top row pinky key for gaming!
193+
- Stagger and splay
194+
- Slightly more agressive than the Tern, optimized for my own hands
195+
- Unibody
196+
- Simpler for a first full self-designed keyboard!
197+
- Tolkeeb Alpha will be split
198+
- Low profile switches
199+
- Choc v1 hotswap sockets, I'll be able to reuse my switches on future projects!
200+
- Wireless
201+
- The controller is a nice!nano v2 clone, making it easily wireless
202+
203+
Making a keyboard from scratch was a great experience thanks to [FlatFootFox's Ergogen's guide](https://flatfootfox.com/ergogen-introduction/). I had to learn basics of KiCAD and this taught me fully how keyboards work.
204+
205+
It was also surprisingly cheap, at only 15$ for printing 5 copies of my PCB, ~30$ for the switches, ~10$ for the controller, and ~10$ for misc components. If I didn't buy a 3d printer to learn how to design cases, it would have been around 70$ total!
206+
207+
# Conclusion
208+
209+
Physical keyboard layouts have gone through many evolutions in the last decade as many enthusiasts have designed their own keyboards.
210+
211+
I think almost all the points raised above are necessary for proper ergonomics, and many keyboards are now available that implement them.
212+
213+
Unfortunately, none of those keyboards are affordable nor easy to find. I hope that in the future, more companies will start producing ergonomic keyboards.
214+
215+
So while we wait for that, let's talk about software layouts in the next article!
216+
217+
<!-- TODO
218+
2 - Firmware layouts
219+
2.1 - Layers
220+
2.2 - Home row modifiers
221+
2.3 - Combos
222+
2.4 - One-shot modifiers
223+
3 - Tolkeeb Zero
224+
-->
Loading
Binary file not shown.
73.2 KB
Loading
Loading
Loading
Loading

themes/blowfish

Submodule blowfish updated 848 files

0 commit comments

Comments
 (0)