-
Notifications
You must be signed in to change notification settings - Fork 3
/
engram-keyboard-layout.html
449 lines (375 loc) ยท 51 KB
/
engram-keyboard-layout.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
<!DOCTYPE html><html><head><meta charset="utf-8" /><title>Switching to Arno's Engram 2.0 keyboard layout - The Terminal Programmer</title><meta content="2021-05-07T06:45:13Z" name="DCTERMS.created" /><meta content="2024-02-04T23:34:44-08:00" name="DCTERMS.modified" /><meta content="Suraj N. Kurapati" name="author" /><meta content="keyboard, layout, ergonomics, optimization" name="keywords" /><meta content="width=device-width, initial-scale=1" name="viewport" /><meta content="Readably https://github.com/sunaku/readably" name="generator" /><link href="style.css" rel="stylesheet" type="text/css" /><link href="index.atom" rel="alternate" title="feed" type="application/atom+xml" /><script src="js/jquery.slim.min.js"></script></head><body><article data-entry-id="engram-keyboard-layout" id="body"><header><div class="navigation"><a class="rootlink" href="index.html#engram-keyboard-layout" title="The Terminal Programmer"><span>The Terminal Programmer</span></a></div><h1 class="title">Switching to Arno's Engram 2.0 keyboard layout</h1><div class="author">Suraj N. Kurapati</div><time class="date" datetime="2021-05-07T06:45:13Z"> 7 May 2021</time><br /><time class="date" datetime="2024-02-04T23:34:44-08:00"><a href="#updates" title="3 updates">4 February 2024</a></time></header><hr /><div class="description"></div><div class="content"><blockquote>
<p><a class="embed_youtube_video" href="https://www.youtube.com/embed/ekLiraO8Tmk?autoplay=1&cc_load_policy=1&modestbranding=1"><img src="https://i.ytimg.com/vi/ekLiraO8Tmk/hqdefault.jpg" alt="Click to watch video" width="480" height="360"></a></p>
<hr>
<p><strong><code>DEPRECATED:</code></strong> This has been superseded by <a href="enthium-keyboard-layout.html">the <em>Enthium</em> layout</a>.</p>
<p><strong>NOTE:</strong> See also <a href="engrammer-keyboard-layout.html">my programmer-friendly variation</a> of this layout.</p>
<hr>
</blockquote>
<p>It happened again: for the third time in my life, I switched to a <em>better</em>
keyboard layout, embarking on a months-long journey of reprogramming my brain,
rewiring decades worth of accumulated muscle memory through deliberate practice.</p>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-monkeytype.webp"><img src="engram-keyboard-layout-monkeytype.png" width="1565" height="695" alt="100+ words per minute on Dactyl Manuform keyboard with Arno's Engram 2.0 layout" title="100+ words per minute on Dactyl Manuform keyboard with Arno's Engram 2.0 layout"></picture>
</p>
<p>I originally typed in QWERTY for 6 years, then <a href="https://www.dvzine.org/zine/">Dvorak</a> for 16 years, and finally
<a href="https://deskthority.net/wiki/BEAKL">BEAKL-15</a> for the last 6 months. This time, a novel layout of <a href="https://www.preprints.org/manuscript/202103.0287">rigorous scientific
design</a> caught my attention and I eagerly <a href="https://github.com/binarybottle/engram/discussions/5">watched its evolution</a> into version 2.0.</p>
<p><ol class="table-of-contents"><li><a id="__layout__" href="#layout" class="downlink">Layout</a><ol></ol></li><li><a id="__review__" href="#review" class="downlink">Review</a><ol><li><a id="__one-week-later__" href="#one-week-later" class="downlink">One week later</a><ol></ol></li><li><a id="__two-weeks-later__" href="#two-weeks-later" class="downlink">Two weeks later</a><ol></ol></li><li><a id="__one-month-later__" href="#one-month-later" class="downlink">One month later</a><ol></ol></li><li><a id="__two-years-later__" href="#two-years-later" class="downlink">Two years later</a><ol></ol></li></ol></li><li><a id="__learning__" href="#learning" class="downlink">Learning</a><ol><li><a id="__keybr__" href="#keybr" class="downlink">KeyBr</a><ol></ol></li></ol></li><li><a id="__adaptation__" href="#adaptation" class="downlink">Adaptation</a><ol><li><a id="__pinky-finger-usage__" href="#pinky-finger-usage" class="downlink">Pinky finger usage</a><ol></ol></li><li><a id="__cardinal-directions-hjkl__" href="#cardinal-directions-hjkl" class="downlink">Cardinal directions (HJKL)</a><ol></ol></li></ol></li><li><a id="__variations__" href="#variations" class="downlink">Variations</a><ol><li><a id="__engrammer__" href="#engrammer" class="downlink">Engrammer</a><ol></ol></li><li><a id="__z-and-q__" href="#z-and-q" class="downlink">Z and Q</a><ol><li><a id="__variant-zh__" href="#variant-zh" class="downlink">Variant Z<sub>h</sub></a><ol></ol></li><li><a id="__variant-zql__" href="#variant-zql" class="downlink">Variant ZQ<sub>l</sub></a><ol></ol></li><li><a id="__variant-zqb__" href="#variant-zqb" class="downlink">Variant ZQ<sub>b</sub></a><ol></ol></li></ol></li><li><a id="__b-and-v__" href="#b-and-v" class="downlink">B and V</a><ol><li><a id="__variant-bvh-zqu__" href="#variant-bvh-zqu" class="downlink">Variant BV<sub>h</sub> ZQ<sub>u</sub></a><ol></ol></li><li><a id="__variant-bvh-zql__" href="#variant-bvh-zql" class="downlink">Variant BV<sub>h</sub> ZQ<sub>l</sub></a><ol></ol></li><li><a id="__variant-bvh-zqb__" href="#variant-bvh-zqb" class="downlink">Variant BV<sub>h</sub> ZQ<sub>b</sub></a><ol></ol></li><li><a id="__variant-bvb-zqu__" href="#variant-bvb-zqu" class="downlink">Variant BV<sub>b</sub> ZQ<sub>u</sub></a><ol></ol></li><li><a id="__variant-bvb-zh__" href="#variant-bvb-zh" class="downlink">Variant BV<sub>b</sub> Z<sub>h</sub></a><ol></ol></li><li><a id="__variant-bvb-zql__" href="#variant-bvb-zql" class="downlink">Variant BV<sub>b</sub> ZQ<sub>l</sub></a><ol></ol></li></ol></li></ol></li><li><a id="__comparison__" href="#comparison" class="downlink">Comparison</a><ol><li><a id="__dygma__" href="#dygma" class="downlink">Dygma</a><ol></ol></li><li><a id="__qwerty__" href="#qwerty" class="downlink">QWERTY</a><ol></ol></li><li><a id="__beakl__" href="#beakl" class="downlink">BEAKL</a><ol></ol></li><li><a id="__dvorak__" href="#dvorak" class="downlink">Dvorak</a><ol></ol></li><li><a id="__colemak__" href="#colemak" class="downlink">Colemak</a><ol></ol></li><li><a id="__halmak__" href="#halmak" class="downlink">Halmak</a><ol></ol></li></ol></li></ol></p>
<div id="layout" class="section"></div><h1 class="heading">Layout<a href="#layout" class="permalink" title="Permalink"></a><a href="#__layout__" class="uplink" title="Contents"></a></h1>
<blockquote>
<p><a href="https://engram.dev/">Arno’s Engram layout</a> v2.0 is an optimized key layout for touch typing in
English based on ergonomic considerations, with a protocol and software
for creating new, optimized key layouts in other languages.</p>
<div class="highlight"><pre class="highlight plaintext"><code>[{ 1| 2= 3~ 4+ 5< 6> 7^ 8& 9% 0* ]} /\
bB yY oO uU '( ") lL dD wW vV zZ #$ @`
cC iI eE aA ,; .: hH tT sS nN qQ
gG xX jJ kK -_ ?! rR mM fF pP
</code></pre></div><p><picture><source type="image/webp" srcset="engram-keyboard-layout-ergo.webp"><img src="engram-keyboard-layout-ergo.png" width="1805" height="725" alt="Rendering of this layout on an ergonomic keyboard." title="Rendering of this layout on an ergonomic keyboard."></picture>
<picture><source type="image/webp" srcset="engram-keyboard-layout-ortho.webp"><img src="engram-keyboard-layout-ortho.png" width="1940" height="725" alt="Rendering of this layout on an ortholinear keyboard." title="Rendering of this layout on an ortholinear keyboard."></picture>
<picture><source type="image/webp" srcset="engram-keyboard-layout.webp"><img src="engram-keyboard-layout.png" width="2075" height="725" alt="Rendering of this layout on a standard 60% keyboard." title="Rendering of this layout on a standard 60% keyboard."></picture>
</p>
<p><picture><source type="image/webp" srcset="www/keyboard-design.com/heatmaps/arnos-engram.en.ansi_english_heatmap.webp"><img src="www/keyboard-design.com/heatmaps/arnos-engram.en.ansi_english_heatmap.jpg" width="1244" height="379" alt="English language heatmap on a conventional keyboard." title="English language heatmap on a conventional keyboard."></picture>
</p>
</blockquote>
<div id="review" class="section"></div><h1 class="heading">Review<a href="#review" class="permalink" title="Permalink"></a><a href="#__review__" class="uplink" title="Contents"></a></h1>
<p>Engram’s novel placement of <em>punctuation in the middle columns</em> of the keyboard
eliminates lateral movement of the index fingers while simultaneously providing
quick access to frequently used punctuation marks (i.e. comma and period feel
heavenly). I haven’t seen any other layouts do this before; especially spilling
over the remaining letters to the right hand pinky cluster — it’s pure genius!</p>
<p>The layout is very comfortable and it also lends itself well to programming.
Notably, I’m a die-hard Vim user and it passes my test for ergonomic Vim usage:</p>
<ul>
<li><code>J</code> and <code>K</code> are adjacent (identical to <a href="https://www.dvzine.org/zine/">Dvorak</a>, actually) — ideal ๐ฏ</li>
<li><code>H</code> and <code>L</code> are adjacent (albeit on the same finger) — good ๐</li>
<li><code>W</code> is on right-hand strong ring finger — good ๐</li>
<li><code>B</code> is on left-hand weak pinky finger — ouch ๐ค (but the left-hand strong
ring finger can easily hop over to take the load off the pinky — okay ๐)</li>
</ul>
<blockquote>
<p><strong>Update:</strong> I wrote that remark about the <code>B</code> key back when I was using the
flat/2D ErgoDox EZ keyboard, and it’s no longer a concern for me beyond the
learning stage – especially on <a href="moergo-glove80-keyboard.html">my current curved/3D keyboard</a>. ๐ฅฃ</p>
</blockquote>
<ul>
<li>Punctuation is in the middle so either hand can type it — ideal ๐ฏ</li>
<li>Shifted symbols on number keys are intuitive or mnemonic — great ๐</li>
</ul>
<p>In addition, Engram also arranges Vim’s operator+motion sequences as rolls (mostly
inward rolls) and alternations, plus some keys have Vim-esque affinity:</p>
<ul>
<li><code>ea</code> (inroll) go to end of word and append</li>
<li><code>bi</code> (inroll) go to start of word and insert</li>
<li><code>ciw</code> (inroll) change inside word</li>
<li><code>caw</code> (inroll) change around word</li>
<li><code>yiw</code> (inroll) yank inside word</li>
<li><code>yaw</code> (inroll) yank around word</li>
<li><code>dw</code> (roll) delete to end of word</li>
<li><code>diw</code> (alt+roll) delete inside word</li>
<li><code>daw</code> (alt+roll) delete around word</li>
<li><code>t</code> (jump upto char) comes before <code>f</code> (jump onto char) in left-to-right order</li>
<li><code>n</code> and <code>p</code> are clustered for next/previous menu navigation and completion</li>
<li><code>y</code> (yank) and <code>p</code> (paste) are on opposite hands to since they’re so different</li>
<li><code>b</code> (beginning of word) and <code>w</code> (end of word) are split apart and left-to-right</li>
<li>and so on…</li>
</ul>
<p>I want to thank <a href="https://github.com/binarybottle">Arno Klein</a> for
sharing his genius with the world. ๐ This layout is truly a masterpiece;
a game changer! ๐คฉ Moreover, its systematic and methodical invention (and
generous explanation thereof) allows interested people <a href="https://www.preprints.org/manuscript/202103.0287">to understand <em>how</em></a>
this layout has come to be (by simply rendering <a href="https://github.com/binarybottle/engram/blob/master/engram_layout_v2.0.ipynb">the Python notebook</a> on
their own system) and to perform further research and improvement.</p>
<div id="one-week-later" class="section"></div><h2 class="heading">One week later<a href="#one-week-later" class="permalink" title="Permalink"></a><a href="#__one-week-later__" class="uplink" title="Contents"></a></h2>
<p>It has been a week since I switched to Engram and here is my experience so far:</p>
<p><a href="https://www.keybr.com/profile/151qsif">
<picture><source type="image/webp" srcset="engram-keyboard-layout-week1.webp"><img src="engram-keyboard-layout-week1.png" width="1380" height="687" alt="My progress in Typing Speed, Number of Errors, and Number of Keys." title="My progress in Typing Speed, Number of Errors, and Number of Keys."></picture>
</a></p>
<p>Curiously, the <a href="https://deskthority.net/wiki/BEAKL">BEAKL-15</a> layout that I switched over from has <em>the same
left-hand vowel cluster</em> as Engram, and this commonality significantly reduced
my transition time. In contrast, it took me a month to become comfortable with
that vowel cluster when I previously switched from <a href="https://www.dvzine.org/zine/">Dvorak</a> to BEAKL-15 six
months ago.</p>
<blockquote>
<p>Vowel cluster in <a href="https://deskthority.net/wiki/BEAKL">BEAKL-15</a> and <a href="https://engram.dev/">Arno’s Engram layout</a>s:</p>
<div class="highlight"><pre class="highlight plaintext"><code>:: :: :: :: :: :: :: :: :: :: :: :: ::
:: :: oO uU :: :: :: :: :: :: :: :: ::
:: iI eE aA :: :: :: :: :: :: ::
:: :: :: :: :: :: :: :: :: ::
</code></pre></div><p>Vowel cluster in <a href="https://www.dvzine.org/zine/">Dvorak</a> layout:</p>
<div class="highlight"><pre class="highlight plaintext"><code>:: :: :: :: :: :: :: :: :: :: :: :: ::
:: :: :: :: :: :: :: :: :: :: :: :: ::
aA oO eE uU iI :: :: :: :: :: ::
:: :: :: :: :: :: :: :: :: ::
</code></pre></div></blockquote>
<div id="two-weeks-later" class="section"></div><h2 class="heading">Two weeks later<a href="#two-weeks-later" class="permalink" title="Permalink"></a><a href="#__two-weeks-later__" class="uplink" title="Contents"></a></h2>
<p>After another week of real-world use (but this time without as much
dedicated typing practice), I’m happy to say that I’m now comfortably
typing at ~60 WPM as the new Engram muscle memory is finally taking
precedence in my brain (thank goodness for neuroplasticity!). ๐ค</p>
<p>I made a few tweaks to the ortholinear version of Engram on <a href="https://configure.zsa.io/ergodox-ez/layouts/dam5g/latest/0">my Ergodox
EZ keymap</a>
for programming convenience and general comfort:</p>
<ul>
<li>I relocated the <code>@ # /</code> keys to the unused left-hand pinky keys (the
slash is especially handy for URLs, file paths, and Vim searching)</li>
<li>I put redundant square & angle brackets on either single-hand
(otherwise the ortholinear split disconnects them, very far apart)</li>
<li>I use <a href="https://configure.zsa.io/ergodox-ez/layouts/dam5g/latest/4">a dedicated symbol layer</a>
that further minimizes reaching by clustering frequent sigils &
delimiters along the home row/block.</li>
</ul>
<p>In addition, I would like to emphasize that Engram feels very
comfortable to type in. With BEAKL-15, I often felt like I’m “climbing
a wall” when typing (for example, the word “spring” has me reaching up
and down a lot). Whereas with Engram, I feel like I’m “spreading my
wings” and gracefully taking flight. It’s a significant qualitative
improvement. ๐</p>
<div id="one-month-later" class="section"></div><h2 class="heading">One month later<a href="#one-month-later" class="permalink" title="Permalink"></a><a href="#__one-month-later__" class="uplink" title="Contents"></a></h2>
<p>It’s been a month since I’ve switched to Engram 2.0 and I’m happy to report
that I’m comfortably typing at 70+ WPM. ๐คฉ</p>
<p>In particular, I’ve noticed that my inter-key typing speed is the fastest I’ve
ever observed in my 23 years of typing! ๐๐จ Portions of words (especially
those in rolls) form rapidly on my screen as I type, though entire words take
relatively longer due to momentary pauses as my muscle memory context switches
between different finger/hand placements. This is no doubt the result of those
interkey speed and finger strength matrices applied from Arno Klein’s extensive
research. ๐</p>
<p>Overall, I feel that I’m now at 95% confidence while typing: subconsciously
finding the right keys to press and positioning my fingers in anticipation of
the next characters coming down the pipeline. Productivity wise, I feel 50%
<em>more</em> efficient.</p>
<p>Surprisingly, this newfound speed & efficiency was achieved while maintaining
typing comfort, not at its expense. For example, the word “highlight” is
delightful to type in Engram whereas I had to mentally prepare myself and
concentrate to type it quickly in BEAKL-15.</p>
<p>However, I do notice minor slowdowns on upward-traveling same-finger bigrams
such as “je” in the word “object”, but this is more influenced by the style of
keyboard being used than Engram itself. For instance, I notice this more on my
Ergodox, which has larger & distantly placed keys than those on my laptop. In
general, Engram scores well with low <a href="https://www.reddit.com/r/KeyboardLayouts/comments/ncewbo/arnos_engram_keyboard_layout/gz3oflk?utm_source=share&utm_medium=web2x&context=3">1.24% Same Finger Bigrams (SFBs)</a>. ๐</p>
<p>In conclusion, Engram feels very comfortable due to its generous allotment of
inward rolls (that “you” and “th” feel amazing), heavier emphasis on home row
and bottom rows, balanced distribution between vertical climbs & horizontal
spreads. ๐ฏ</p>
<div id="two-years-later" class="section"></div><h2 class="heading">Two years later<a href="#two-years-later" class="permalink" title="Permalink"></a><a href="#__two-years-later__" class="uplink" title="Contents"></a></h2>
<p>I’ve reached a comfortable speed of 100+ WPM with Engram 2.0 after properly
configuring my programmable keyboard with <a href="home-row-mods.html">custom firmware that disambiguates
<em>home row mods</em></a> and lets me type more naturally, without artificial slowdowns. ๐ฅฒ</p>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-monkeytype.webp"><img src="engram-keyboard-layout-monkeytype.png" width="1565" height="695" alt="100+ words per minute on Dactyl Manuform keyboard with Arno's Engram 2.0 layout" title="100+ words per minute on Dactyl Manuform keyboard with Arno's Engram 2.0 layout"></picture>
</p>
<p>Looking back at my progress, I see that I had <a href="https://github.com/binarybottle/engram/discussions/15#discussioncomment-838277">already reached a speed of 70+ WPM
after a month</a>,
so it was my keyboard’s firmware that held me back until now! ๐</p>
<div id="learning" class="section"></div><h1 class="heading">Learning<a href="#learning" class="permalink" title="Permalink"></a><a href="#__learning__" class="uplink" title="Contents"></a></h1>
<p>Learning a new layout is primarily a matter of time and effort: it just takes
practice, hang in there! ๐๐ And continue training with layout agnostic tutors
like KeyBr.com and N-gram Type.</p>
<p>It may be helpful to write down the layout on a piece of paper: each row has only
4 letters anyway (except for the outliers Z and Q), so it chunks very well into
human memory’s working capacity of about 5-7 items at a time (according to
something I read in general science news).</p>
<p>Writing (and presenting or teaching – per Feynman) brings together different
memory subsystems and solidifies knowledge in a holistic way. If you’re a visual
thinker like I am, this may help you immensely. ๏ธ๐ค๏ธ Draw the
layout, make interconnections between related letters, and you’ll be set.</p>
<p>For example, <code>@jlangstrom</code> on Discord came up with a novel mnemonic system
๐ง โจ where he would associate opposing pairs of letters per finger
with words in English as well as his native language, Swedish:</p>
<blockquote>
<p>“I remember the two characters by thinking that they are short hands. <em>CN</em> (china) <em>KR</em> (Korea) <em>IS</em> (Ice in swedish) <em>ET</em> (E.T phone home) and so on.”</p>
</blockquote>
<div id="keybr" class="section"></div><h2 class="heading">KeyBr<a href="#keybr" class="permalink" title="Permalink"></a><a href="#__keybr__" class="uplink" title="Contents"></a></h2>
<p>I’ve used the <a href="https://keybr.com">KeyBr typing tutor</a> to learn two different keyboard layouts in recent years. ๐๐ค It introduces a few new keys at a time (in English letter frequency order, so it’s layout agnostic ๐) until you gain proficiency, before advancing you further. Moreover, it gives you random English-like word fragments as you level up, so there’s a good variety for training compared to the typical <code>fjfj</code> style of rote exercises. I highly recommend it for learning a new layout.</p>
<p>You can hide the on-screen keyboard in KeyBr by pressing the Zoom button (next to the Settings button, with the gear icon). Then open another window below or beside it containing a reference image for the layout you’re learning. This way, you’re effectively visually replacing keybr’s on-screen keyboard with your own, and thus there’s no confusion. ๐ช</p>
<div id="adaptation" class="section"></div><h1 class="heading">Adaptation<a href="#adaptation" class="permalink" title="Permalink"></a><a href="#__adaptation__" class="uplink" title="Contents"></a></h1>
<p>Learning a new layout takes time (several days at least, because your brain internalizes the new concepts while you sleep — that’s what I’ve observed<sup id="fnref1"><a href="#fn1">1</a></sup> anyway) and this may be especially true coming from QWERTY and Colemak because they distribute vowels across both hands whereas Engram, Dvorak, and BEAKL cluster all vowels on the left hand, so it may take a little more effort to get used to it initially. ๐ง But the advantage of such clustering is that it improves hand balance & alternation, and is generally useful for international languages<sup id="fnref2"><a href="#fn2">2</a></sup>.</p>
<div id="pinky-finger-usage" class="section"></div><h2 class="heading">Pinky finger usage<a href="#pinky-finger-usage" class="permalink" title="Permalink"></a><a href="#__pinky-finger-usage__" class="uplink" title="Contents"></a></h2>
<p>I’ve heard concerns about Engram’s placement of <code>B</code> on the left pinky finger – since most people are coming from QWERTY and their left pinky is relatively underutilized (and thus weaker) due to the fact that Q is one of the least frequent letters in English. In fact, I too observed this firsthand when I transitioned from Dvorak (which places the relatively infrequent apostrophe / single quote there) but my left pinky got stronger with practice and it hasn’t been an issue for me past the learning stage. Nevertheless, if this still remains a concern for you, consider <a href="#variations">these alternate placements for Q/Z and B/V</a>.</p>
<p>In addition, I’ve found that the left pinky column in Engram (BCG) isn’t a problem in practice on <em>contoured</em> columnar keyboards (such as the Glove80, Dactyl, etc.) compared to traditional row-staggered keyboards (which the Alt-Layouts discord appears to be more concerned with optimizing). See <a href="https://www.reddit.com/r/KeyboardLayouts/comments/165kgx6/comment/jzlzixb/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button">this Reddit comment</a> for further elaboration.</p>
<div id="cardinal-directions-hjkl" class="section"></div><h2 class="heading">Cardinal directions (HJKL)<a href="#cardinal-directions-hjkl" class="permalink" title="Permalink"></a><a href="#__cardinal-directions-hjkl__" class="uplink" title="Contents"></a></h2>
<p>I presume you are accustomed to Vim’s traditional HJKL order? ๐ I map the 4 right-hand fingers on the Cursor layer’s home row as Left, Up, Down, Right to according to the inward-rising curvature of the Glove80 keyboard. This is a longstanding preference that I formed 17 years ago, in my early days of using the Kinesis Advantage with the Dvorak layout, whose lack of HJKL provided the freedom to reimagine the arrangement of arrow keys on the home row.</p>
<p>In particular, I find it more natural to follow the inward-rising curve of the keyboardโs curved 3D keywell, which elevates the thumb above the pinky finger and, similarly, the middle finger (up arrow) above the ring finger (down arrow). As a bonus, this arrangement avoids double-duty on the index finger (for H & J) such that each home row finger is responsible for exactly one cardinal direction. Curiously, there is one thing in common (identical, actually) between HJKL and my arrow arrangement: K/up is on the middle finger.</p>
<p>In addition, my arrangement is consistent with the left-to-right (LTR) directionality of the Home, Page Up/Down, End keys on the lower row just beneath. Similarly, the clustering of Up with Left and Down with Right also reflects LTR because that’s how, say, a document shrinks & grows respectively in a text editor or word processor. See also <a href="https://reddit.com/r/ErgoMechKeyboards/comments/17umy73/tiling_window_manager_vim_split_keyboard_users/k9bjl0y/">this Reddit comment</a> for additional context.</p>
<div id="variations" class="section"></div><h1 class="heading">Variations<a href="#variations" class="permalink" title="Permalink"></a><a href="#__variations__" class="uplink" title="Contents"></a></h1>
<p>Here’s the baseline layout with which to compare the variations discussed below:</p>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-variant.webp"><img src="engram-keyboard-layout-variant.png" width="2345" height="725" alt="baseline for variants" title="baseline for variants"></picture>
</p>
<p>Depending on your ergonomic concerns, you might find these variations more
comfortable, or at least preferable, on ergonomic keyboards <a href="moergo-glove80-ergonomic-keyboard.html">such as the
Glove80</a>.</p>
<div id="engrammer" class="section"></div><h2 class="heading">Engrammer<a href="#engrammer" class="permalink" title="Permalink"></a><a href="#__engrammer__" class="uplink" title="Contents"></a></h2>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-variant-engrammer.webp"><img src="engram-keyboard-layout-variant-engrammer.png" width="2345" height="725" alt="Engrammer variant" title="Engrammer variant"></picture>
</p>
<p><a href="engrammer-keyboard-layout.html">This variation</a> helps maintain cross-proficiency with conventional keyboards:</p>
<ul>
<li>Shifted pairs are standard (e.g. quotes don’t shift to parentheses).</li>
<li>Semicolon is placed relative to comma and period just like standard.</li>
<li>Equals and square brackets are placed near their standard locations.</li>
</ul>
<p>In addition, application shortcuts that assume standard shifted pairs (such as
Control-Equals for the “zoom in” operation in Web browsers) now work correctly.</p>
<div id="z-and-q" class="section"></div><h2 class="heading">Z and Q<a href="#z-and-q" class="permalink" title="Permalink"></a><a href="#__z-and-q__" class="uplink" title="Contents"></a></h2>
<p>The Z and Q keys overload the right pinky finger asymmetrically in the Engram
layout due to the physical constraints of traditional row-staggered keyboards.
This is an acceptable compromise because Z and Q are the least frequent letters
in English: although they overload the right pinky finger, it seldom types them.</p>
<p>I was fond of <a href="#variant-zqb">variant ZQ<sub>b</sub></a>, discovered <a href="https://discord.com/channels/877392805654306816/1156332285449220096/1183776026434732073">by @x10an14</a>, because it eliminates lateral movement of the right pinky finger, making the
layout truly columnar. ๐ฏ I tried switching to this personally but found that I
use the CapsWord key more often than Z or Q, so the standard Engram layout was actually better for me. ๐ฏ</p>
<blockquote>
<div id="variant-zh" class="section"></div><h3 class="heading">Variant Z<sub>h</sub><a href="#variant-zh" class="permalink" title="Permalink"></a><a href="#__variant-zh__" class="uplink" title="Contents"></a></h3>
</blockquote>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-variant-zh.webp"><img src="engram-keyboard-layout-variant-zh.png" width="2345" height="725" alt="Engram-Zh variant" title="Engram-Zh variant"></picture>
</p>
<ul>
<li>Z<sub>h</sub> = Z on home row</li>
</ul>
<blockquote>
<div id="variant-zql" class="section"></div><h3 class="heading">Variant ZQ<sub>l</sub><a href="#variant-zql" class="permalink" title="Permalink"></a><a href="#__variant-zql__" class="uplink" title="Contents"></a></h3>
</blockquote>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-variant-zql.webp"><img src="engram-keyboard-layout-variant-zql.png" width="2345" height="725" alt="Engram-ZQl variant" title="Engram-ZQl variant"></picture>
</p>
<ul>
<li>ZQ<sub>l</sub> = Z and Q on lower row</li>
</ul>
<blockquote>
<div id="variant-zqb" class="section"></div><h3 class="heading">Variant ZQ<sub>b</sub><a href="#variant-zqb" class="permalink" title="Permalink"></a><a href="#__variant-zqb__" class="uplink" title="Contents"></a></h3>
<p><strong>Credit:</strong> This variant was discovered <a href="https://discord.com/channels/877392805654306816/1156332285449220096/1183776026434732073">by @x10an14</a>.</p>
</blockquote>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-variant-zqb.webp"><img src="engram-keyboard-layout-variant-zqb.png" width="2345" height="725" alt="Engram-ZQb variant" title="Engram-ZQb variant"></picture>
</p>
<ul>
<li>ZQ<sub>b</sub> = Z and Q on bottom row</li>
</ul>
<div id="b-and-v" class="section"></div><h2 class="heading">B and V<a href="#b-and-v" class="permalink" title="Permalink"></a><a href="#__b-and-v__" class="uplink" title="Contents"></a></h2>
<p>Similarly, some people dislike reaching up for the B and V keys with their pinky
fingers or even, in some cases, reaching down for the G and P keys too!</p>
<blockquote>
<div id="variant-bvh-zqu" class="section"></div><h3 class="heading">Variant BV<sub>h</sub> ZQ<sub>u</sub><a href="#variant-bvh-zqu" class="permalink" title="Permalink"></a><a href="#__variant-bvh-zqu__" class="uplink" title="Contents"></a></h3>
</blockquote>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-variant-bvh-zqu.webp"><img src="engram-keyboard-layout-variant-bvh-zqu.png" width="2345" height="725" alt="Engram-BVh-ZQu variant" title="Engram-BVh-ZQu variant"></picture>
</p>
<ul>
<li>BV<sub>h</sub> = B and V on home row</li>
<li>ZQ<sub>u</sub> = Z and Q on upper row</li>
</ul>
<blockquote>
<div id="variant-bvh-zql" class="section"></div><h3 class="heading">Variant BV<sub>h</sub> ZQ<sub>l</sub><a href="#variant-bvh-zql" class="permalink" title="Permalink"></a><a href="#__variant-bvh-zql__" class="uplink" title="Contents"></a></h3>
</blockquote>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-variant-bvh-zql.webp"><img src="engram-keyboard-layout-variant-bvh-zql.png" width="2345" height="725" alt="Engram-BVh-ZQl variant" title="Engram-BVh-ZQl variant"></picture>
</p>
<ul>
<li>BV<sub>h</sub> = B and V on home row</li>
<li>ZQ<sub>l</sub> = Z and Q on lower row</li>
</ul>
<blockquote>
<div id="variant-bvh-zqb" class="section"></div><h3 class="heading">Variant BV<sub>h</sub> ZQ<sub>b</sub><a href="#variant-bvh-zqb" class="permalink" title="Permalink"></a><a href="#__variant-bvh-zqb__" class="uplink" title="Contents"></a></h3>
</blockquote>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-variant-bvh-zqb.webp"><img src="engram-keyboard-layout-variant-bvh-zqb.png" width="2345" height="725" alt="Engram-BVh-ZQb variant" title="Engram-BVh-ZQb variant"></picture>
</p>
<ul>
<li>BV<sub>h</sub> = B and V on home row</li>
<li>ZQ<sub>b</sub> = Z and Q on bottom row</li>
</ul>
<blockquote>
<div id="variant-bvb-zqu" class="section"></div><h3 class="heading">Variant BV<sub>b</sub> ZQ<sub>u</sub><a href="#variant-bvb-zqu" class="permalink" title="Permalink"></a><a href="#__variant-bvb-zqu__" class="uplink" title="Contents"></a></h3>
<p><strong>Credit:</strong> This variant was discovered <a href="https://discord.com/channels/877392805654306816/1111469812850380831/1183811865508315257">by @ericjuta</a>.</p>
</blockquote>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-variant-bvb-zqu.webp"><img src="engram-keyboard-layout-variant-bvb-zqu.png" width="2345" height="725" alt="Engram-BVb-ZQu variant" title="Engram-BVb-ZQu variant"></picture>
</p>
<ul>
<li>ZQ<sub>u</sub> = Z and Q on upper row</li>
<li>BV<sub>b</sub> = B and V on bottom row</li>
</ul>
<blockquote>
<div id="variant-bvb-zh" class="section"></div><h3 class="heading">Variant BV<sub>b</sub> Z<sub>h</sub><a href="#variant-bvb-zh" class="permalink" title="Permalink"></a><a href="#__variant-bvb-zh__" class="uplink" title="Contents"></a></h3>
</blockquote>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-variant-bvb-zh.webp"><img src="engram-keyboard-layout-variant-bvb-zh.png" width="2345" height="725" alt="Engram-BVb-Zh variant" title="Engram-BVb-Zh variant"></picture>
</p>
<ul>
<li>Z<sub>h</sub> = Z on home row</li>
<li>BV<sub>b</sub> = B and V on bottom row</li>
</ul>
<blockquote>
<div id="variant-bvb-zql" class="section"></div><h3 class="heading">Variant BV<sub>b</sub> ZQ<sub>l</sub><a href="#variant-bvb-zql" class="permalink" title="Permalink"></a><a href="#__variant-bvb-zql__" class="uplink" title="Contents"></a></h3>
</blockquote>
<p><picture><source type="image/webp" srcset="engram-keyboard-layout-variant-bvb-zql.webp"><img src="engram-keyboard-layout-variant-bvb-zql.png" width="2345" height="725" alt="Engram-BVb-ZQl variant" title="Engram-BVb-ZQl variant"></picture>
</p>
<ul>
<li>ZQ<sub>l</sub> = Z and Q on lower row</li>
<li>BV<sub>b</sub> = B and V on bottom row</li>
</ul>
<div id="comparison" class="section"></div><h1 class="heading">Comparison<a href="#comparison" class="permalink" title="Permalink"></a><a href="#__comparison__" class="uplink" title="Contents"></a></h1>
<div id="dygma" class="section"></div><h2 class="heading">Dygma<a href="#dygma" class="permalink" title="Permalink"></a><a href="#__dygma__" class="uplink" title="Contents"></a></h2>
<p>Engram has been featured in <a href="https://dygma.com/blogs/ergonomics/the-best-keyboard-layout">Dygma’s <em>“What’s the best keyboard layout?”</em> article</a> and its <a href="https://www.youtube.com/watch?v=gRtS-XACO6o&t=407s">accompanying YouTube video</a> at the tail end of February 2023, as follows:</p>
<blockquote>
<p>Developed in 2021, Engram is a project completely created from scratch, focusing mainly on the best way to type diagrams, trigrams, or… Ngrams. The punctuation in the middle creates a clear gap between the hands, which makes it <em>one of the best layouts for split columnar</em> keyboards.</p>
</blockquote>
<p><picture><source type="image/webp" srcset="www/dygma.com/Engram_Heatmap_1024x1024.webp"><img src="www/dygma.com/Engram_Heatmap_1024x1024.jpg" width="1024" height="512" alt="heatmap" title="heatmap"></picture>
</p>
<p>@Omnishambles asked on the Discord server for MoErgo Glove80 on April 20, 2023:</p>
<blockquote>
<p>The Engram heatmap really makes the stacking of E and O on the same finger stand out. I know it’s one of the least-used vowel bigrams, but it’s still a vowel bigram. Does that combination ever feel awkward to you?</p>
</blockquote>
<p>Not at all. ๐ I feel quite comfortable with the EO bigram in the Engram layout because it’s on the column assigned to the middle finger (the longest one), where ascending from E to O feels more like uncurling or lengthening (as opposed to reaching) the middle finger from its home row position. ๐ค Take a look at the rationale (and alternatives) that Engram considered for <a href="https://engram.dev/#vowels">vowel clustering & placement</a>.</p>
<p>As for the layout heatmaps in that Dygma article, they seem to have been created inconsistently: the Dvorak heatmap shows activity on the left shift key whereas the others don’t. Similarly, the Colemak, Dvorak, and Halmak heatmaps don’t highlight the O key (certainly not in red) as much as the others. Thus, it’s unclear what input text they typed on each layout when generating those heatmaps: each one seems to have had a different input.</p>
<p>A better source for heatmap comparison might <a href="https://keyboard-design.com/letterlayout.html?layout=arnos-engram.en.ansi">be Ian Douglas’ database</a>, which shows heatmaps for English, programming, bigrams, and so on. For example, here is the English heatmap for the Engram layout:</p>
<p><picture><source type="image/webp" srcset="www/keyboard-design.com/heatmaps/arnos-engram.en.ansi_english_heatmap.webp"><img src="www/keyboard-design.com/heatmaps/arnos-engram.en.ansi_english_heatmap.jpg" width="1244" height="379"></picture>
</p>
<div id="qwerty" class="section"></div><h2 class="heading">QWERTY<a href="#qwerty" class="permalink" title="Permalink"></a><a href="#__qwerty__" class="uplink" title="Contents"></a></h2>
<p>Jonathan Wheeler asked in the comments section of this article on July 8, 2023:</p>
<blockquote>
<p>After reprogramming your brain to use different key layouts several times, when using someone else’s device, or a smartphone without a keyboard, etc, do you have any difficulty spontaneously switching back to the ol’ QWERTY when needed?</p>
</blockquote>
<p>Not at all — in practice, I’ve found that it’s not a zero-sum game:</p>
<p>To my surprise, I still retain my QWERTY muscle memory, even nearly 2 decades after switching away from it! For instance, it’s especially strong when swiping (aka “glide typing”) on smartphones: I somehow <em>Just Know</em> the placement of all the letters perfectly, without conscious thought. Perhaps the physical interface of a smartphone’s virtual keyboard (behind a smooth glass display) is different enough from my ergonomic keyboards (split, columnar, with contoured keywells) that my brain doesn’t get confused.</p>
<p>However, actual touch-typing in QWERTY on conventional row-staggered keyboards is a bit rusty, but still workable. For instance, I was at my local public library recently where I had to fill out some forms on a computer kiosk: I was able to approximately touch-type (not as bad as hunt & peck, but not as good as blind touch-typing) on QWERTY even though I left it behind so long ago.</p>
<p>In contrast, I have no trouble typing in the Engram layout (and previously in BEAKL-15 and Dvorak) on conventional row-staggered keyboards (such as my laptop’s built-in keyboard) because the knowledge of where keys are located (along with the physical movements necessary to reach and press them) is ingrained in my muscle memory: it’s like a “device driver”. Whereas the actual key-to-letter mapping seems to be stored independently (stacked atop muscle memory, as a higher layer) because it can be overridden and reused on different physical keyboards: it’s like an “input method”.</p>
<p>In this manner, I’ve found that when you learn to type in a new layout or to use a different style of keyboard, it’s more like adding a new capability than replacing existing skills. Such that the very act of typing is effectively a transformation of your brain’s high-level thoughts and words into low-level physical keypresses by the appropriate combination of “input method” and “device driver” for the particular keyboard and layout you’re currently using. With sufficient practice, it all <em>Just Works</em> without conscious effort and on a variety of different physical keyboards (and layouts too, if you so wish). ๐</p>
<p>Neuroplasticity for the win! (You’ll be fine ๐ — I’d highly recommend it.)</p>
<div id="beakl" class="section"></div><h2 class="heading">BEAKL<a href="#beakl" class="permalink" title="Permalink"></a><a href="#__beakl__" class="uplink" title="Contents"></a></h2>
<p>Graeme Geldenhuys, who first <a href="https://www.reddit.com/r/ErgoDoxEZ/comments/gsvpug/layout_of_the_month_beakl_15/">introduced me to BEAKL-15</a> and the <a href="https://github.com/manna-harbour/miryoku#readme">legendary Miryoku system</a> of layers and home row mods, asked me the following on May 16, 2021:</p>
<blockquote>
<p>I’m curious what made you move away from BEAKL-15? Was there anything in particular that you did not like or struggle with.</p>
</blockquote>
<p>With BEAKL-15, I ultimately felt that I didn’t experience the comfort that was advertised: I often felt like “climbing up a wall” when typing (for example, the word “spring” has me reaching up and down vertically). Also, I ended up <a href="https://github.com/sunaku/beakl15p">forking my own variation</a> after 3 months because the punctuation assignments weren’t as convenient as I liked for programming. Eventually, I found the obscure <a href="https://github.com/bclnr/kb-layout-evaluation/issues/4">BEAKL-19bis layout</a> which scored well on a comparison page and I was interested in learning more about its origins (how did the authors invent it? what principles guided them?) but <em>I was too late:</em> like an archaeologist pondering ancient civilizations, so too, I was left with more questions than I could investigate and was left demoralized. Even the BEAKL authors (Den and Ian) disappeared, along with the Shenafu forums where they discussed their creations, just a few months before I even heard about BEAKL. ๐</p>
<p>Thankfully, I found that Ian Douglas (now known as <a href="https://github.com/iandoug">@iandoug on GitHub</a>) was still active elsewhere and actually ran the keyboard-design.com website which I encountered while investigating BEAKL-19bis. On that site, he mentioned Arno Klein’s research publication and the resulting Engram layout. This caught my attention! Here was a layout, methodically & systematically derived from exhaustive comparison of permutations, guided by ergonomics principles. Not some golden result hidden behind AI algorithms like Halmak, or optimizers like AnDW for BEAKL-15, or CarpalX and MTGAP etc. Here was something that anyone could run on their own system and follow along in <a href="https://github.com/binarybottle/engram/blob/master/engram_layout_v2.0.ipynb">the Python notebook</a>. (Plus the fact that Engram ended up on the same left-hand vowel layout as AnDW for BEAKL-15 greatly increased my confidence in the Engram methodology!)</p>
<blockquote>
<p>Also did you use the BEAKL-15 number row and symbol suggestion?</p>
</blockquote>
<p>No, I didn’t use the BEAKL-15 number row because it’s asymmetric: 40123 76598 (I naturally expected 87659 on right hand for symmetry). Moreover, as a programmer, I type numbers even less than prose, so rearranging the already intuitive native number row didn’t seem like a worthy trade-off in my case.</p>
<p>As for the BEAKL-15 symbol layer, I adapted parts of its design into <a href="https://configure.zsa.io/ergodox-ez/layouts/vKBnl/KyLLp/4">my own symbol layer</a> which is more optimized for Vim. (<strong>NOTE:</strong> My symbol layer has since <a href="moergo-glove80-keyboard.html#symbol-layer">evolved into this</a> in the present day.) For example, I have <code>^()$</code> on the left hand home row of my Symbol layer which lets me quickly travel to BOL PrevSentence NextSentence EOL respectively. You can see how the BEAKL-15 symbol layer isn’t so convenient for Vim, although I do appreciate how logically it’s laid out.</p>
<div id="dvorak" class="section"></div><h2 class="heading">Dvorak<a href="#dvorak" class="permalink" title="Permalink"></a><a href="#__dvorak__" class="uplink" title="Contents"></a></h2>
<p>I’ve typed exclusively in Dvorak for 16 years ๐ and Engram since the past 2 years. ๐ค</p>
<p>I find Engram more comfortable because it eliminates lateral index finger movement when typing prose: Engram places all punctuation in the central columns, so my 8 touch typing fingers go straight up and down, effectively staying in their columns all the time. Moreover, Engram adds inward rolls (like MTGAP and Colemak) and accounts for finger strength differences, in addition to Dvorak’s concept of hand alternation. This combines the best of both worlds (rolling and alternation) for a rapid, yet comfortable, typing experience.</p>
<p>Finally, Engram has some important similarities with Dvorak: E and T/H and J/K placement is the same in both layouts. As a die-hard Vim user (since the last 14 years), I find that Engram has an even better L placement (directly above H; both on the strong index finger) than Dvorak while retaining its convenient J/K placement. See <a href="#review">my review</a> above for details.</p>
<div id="colemak" class="section"></div><h2 class="heading">Colemak<a href="#colemak" class="permalink" title="Permalink"></a><a href="#__colemak__" class="uplink" title="Contents"></a></h2>
<p>@formlessdao asked in Arno’s Engram discussion board on GitHub on June 8, 2021:</p>
<blockquote>
<p>What are the improvements of Engram over Colemak Mod-DH and Halmak?</p>
</blockquote>
<p>I would say the main advantage is that Engram was designed from a clean slate with support for columnar split/ortholinear keyboards in mind. ๐ก Moreover, it doesn’t limit itself to the historical legacy and physical constraints of typewriter style row-staggered keyboards.</p>
<p>For example, Engram takes full advantage of the former style of columnar keyboards (where each finger can travel straight up and down along its own dedicated column) by eliminating lateral movement of the index fingers into the central columns for typing letters (A-Z).</p>
<p>In contrast, Colemak assumes the latter style of row-staggered keyboards because it retains the ZXCV sequence from QWERTY legacy for application & clipboard shortcuts (which become far less important when you have a fully programmable keyboard that lets you place such shortcuts on dedicated keys, layers, combos, macros, etc. anywhere you like) and also because Colemak’s variations (AngleMod, DH-mod, etc.) balance & redistribute finger workloads in a way that might not provide much benefit on columnar keyboards. For instance, consider the AngleMod: how would you use that “angle” on keyboards with curved 3D keywells (e.g. Glove80, Dactyl, Kinesis, Maltron) anyway? ๐ตโ๐ซ</p>
<p>As an overall comparison of Colemak and Engram statistics, what do you think of page 113 in <a href="https://bit.ly/keyboard-layouts-doc">the <em>Alt Keyboard Layouts</em> community’s document</a> on all things AKL? On that page, I see that Engram brings a modest reduction in SFS%, a significant reduction in LSB% (since it doesn’t have any letters in the central columns), better balance of left/right hand workload, significantly less redirects, and more left/right hand alternation (like Dvorak) along with more than double the amount of inward rolls — all at the cost of a negligible increase in SFB% compared to Colemak and Colemak-DH (seen on the following page) alike. (And also, not mentioned on that page: the Vim friendliness it coincidentally brings with JK and HL adjacency as well as B on left hand, W on right hand, T to the left of F, comma to the left of semicolon, and ease of <code>cw</code>, <code>dw</code>, <code>yw</code>, etc.).</p>
<p>There are many more keyboard layouts in the ecosystem, neatly quantized by SFB% in that document’s table of contents, available to be explored. But my feeling is that, if Colemak is considered to be a good enough campsite for travelers (welcomed by familiarity of conventional row staggered keyboards: ZXCV preservation, angle mods, and alt-fingering options to choose from) to settle down at, couldn’t Engram also be considered in the same light for split columnar keyboards (forgo ZXCV in favor of semantic undo/redo/cut/copy/paste keys such as those <a href="https://github.com/manna-harbour/miryoku/tree/master/docs/reference#nav">in Miryoku’s navigation layer</a>, and forgo angle mods along with alt-fingering because columnar keyboards practically enforce proper touch-typing)?</p>
<div id="halmak" class="section"></div><h2 class="heading">Halmak<a href="#halmak" class="permalink" title="Permalink"></a><a href="#__halmak__" class="uplink" title="Contents"></a></h2>
<p>Similarly, <a href="https://youtu.be/pZ40gmfDFfQ">Halmak’s AI was trained on a MacBook laptop’s row-staggered keyboard</a>, so it literally <em>assumes that exact</em> physical key placement as well as its trainer’s natural home row finger placement (see “fingers are not perfect” at timestamp 5:11). Thus, it might not provide as much benefit for columnar split/ortho keyboards or for those who have a different natural home row placement than the AI’s trainer. ๐ค</p>
<div class="footnotes">
<hr>
<ol>
<li id="fn1">
<p>I’ve found that time away from practice (especially sleep) actually gives the brain a chance to reinforce and optimize all those new neurological pathways you’re building in the form of muscle memory. You might be a little rusty for the first few minutes but soon it’ll all come rushing back. ๐ That’s what I observed recently after a week-long break away from computers. <a href="#fnref1">↩</a></p>
</li>
<li id="fn2">
<p>Specifically, I would consider layouts such as Engram and Dvorak that cluster all the vowels on one hand because words in Indo-European languages are composed of consonant+vowel formations, so you’ll get a more balanced workload distribution across both hands this way. Moreover, these improvements would benefit all of the languages you type in — whereas right now, they’re all encumbered by QWERTY legacy. :disappointed_relieved: <a href="#fnref2">↩</a></p>
</li>
</ol>
</div>
</div><hr /><h1 id="updates">Updates<a class="permalink" href="#updates" title="Permalink"></a></h1><aside class="update"><dl><dt class="title"><time datetime="2024-02-04T23:34:44-08:00"> 4 February 2024: </time></dt><dd class="content"><p>Added new sections on <a href="#learning">Learning</a> and <a href="#adaptation">Adaptation</a>.</p>
</dd></dl></aside><aside class="update"><dl><dt class="title"><time datetime="2023-12-12T12:07:00-08:00">12 December 2023: </time></dt><dd class="content"><p>Added <a href="#variations">Z/Q and B/V variations</a> to address pinky finger load and reachability.</p>
</dd></dl></aside><aside class="update"><dl><dt class="title"><time datetime="2023-07-09T17:49:54-07:00"> 9 July 2023: </time></dt><dd class="content"><p>Added a new <a href="#comparison">Comparison</a> section with my feedback posted online about Engram.</p>
</dd></dl></aside><div class="comments" id="comments"><script>var disqus_container_id = 'comments';
var disqus_title = "Switching to Arno's Engram 2.0 keyboard layout";
var disqus_url = "https://sunaku.github.io/engram-keyboard-layout.html";</script><script async="" src="https://theterminalprogrammer.disqus.com/embed.js"></script></div><hr /><footer><p class="copyright">© 2021–2024 Suraj N. Kurapati</p><p class="credits"><a href="https://github.com/sunaku/readably">Readably</a> written, <a href="https://github.com/sainnhe/everforest">Everforest</a> colored. </p><p>Like my work? ๐ Please <a href="vegan-for-life.html">spare a life</a> today as
thanks! ๐ฎ๐ท๐๐๐โ๐</p>
</footer><!--[if lt IE 9]><script src="js/html5shiv.min.js"></script><script src="js/html5shiv-printshiv.min.js"></script><![endif]--><script src="index.js"></script></article></body></html>