Introducing the RSTHD layout

Screen Shot 2016-04-22 at 22.40.26.png

This is the actual RSTHD layout, as implemented in the firmware of my ErgoDox EZ. I have been using it consistently for four months, and since I started learning the layout, I have gotten up to about 120WPM on it. On a good day, I can occasionally manage 135. This is my fourth time learning a nonstandard keyboard layout for English (here I’m excluding Zhuyin and Dubeolsik because I’m not fluent enough in Chinese or Korean to run into issues with my typing speed anyway), so I think my brain is used to handling switching between layouts. My muscle memory for each layout is sufficiently abstracted away from my muscle memory from the physical keyboard that I can switch between layouts and learn new layouts with relative ease, as my typing speed history shows:

Screen Shot 2016-05-16 at 16.25.03.png

I switched to Dvorak in eighth grade and it has served me well as my primary layout over the years. When I used other people’s computers, including for doing work at school, I used Portable Keyboard Layout on a flash drive to remap the keyboard at the software level, so switching between Dvorak and Qwerty was never an issue. Up until I started learning RSTHD, I had a working proficiency of Qwerty and could sustain 80–90WPM fairly easily; my speed has since decreased to about 60–70, which is still above average, and I still use Qwerty on my phone and tablet without any issues. In my personal experience, learning an alternate layout does take a fair bit of commitment, but it is possible and in fact practical to retain muscle memory for multiple layouts as long as you use all of them on a regular basis. And if I have to, I have no problem getting on someone else’s computer and using Qwerty—perhaps to help troubleshoot an issue with their computer or something similar.

Since I will likely be working in front of a keyboard for eight hours a day for several decades of my life, I want to make sure that my keyboard is ergonomic and efficient. Dvorak has its own flaws; while it is a huge step up from Qwerty in terms of comfort, it still has little quirks that annoy me when I type:

  • L, a relatively common key, is in one of the hardest to reach corners of the keyboard, requiring you to stretch your pinky, the weakest finger, upward. This is exacerbated by how commonly the L key is used twice in succession.
  • The center column on the left side is used too often; for example, how much lateral movement your left index finger has to make to type words like “typing”, “hiking”, and “skippy”.
  • The bottom row on the left side often feels cramped on a standard staggered keyboard. The staggering is part of the culprit; it makes the middle and ring fingers bend towards the index finger to reach the keys if you are using the standard fingering.

When I was scouting out other alternate layouts, none of them struck me as much better than Dvorak; they all had some small but noticeable flaws, and since I’ve been using alternate layouts for years, I had come to know what I wanted in a keyboard layout very well and had some extremely specific requirements for a layout. So when nothing I found suited my particular needs, I did the only thing any sane engineer-at-heart would do: I created my own.

At first, I tried starting with the Malt layout and swapping keys around until I saw something I liked while trying to balance out hand and finger usage and eyeballing digraph comfortableness by intuition. But it turns out that I had so many different parameters I wanted to optimize at the same time that it was impossible for me to keep them all in mind at the same time. So in December, I wrote a Rust program to do the optimization for me using the simulated annealing technique made popular (relatively speaking) by the carpalx project.


Typing on RSTHD is very comfortable; my fingers move less than even in Dvorak. There are very few awkward hand stretches, and the vast majority of rolls feel very comfortable, since you tend to roll toward the center. Having E on a thumb key allows the rest of the alphabet to be arranged more optimally for comfortable strokes. Putting Backspace and Enter on the thumb as well greatly reduces the amount of load on the two pinkies, which are greatly overloaded on a standard layout. Escape on the home row makes working in Vim a pleasure; as for HJKL, I tend to use the arrow keys instead—they are placed in much more convenient locations on this keyboard. Down and Up take from Dvorak’s positioning of the J and K keys, and Left and Right are in the same position but on the other hand. In my opinion, this arrangement is much more usable than an arrow cluster awkwardly to one side of the keyboard. The number row is rearranged to put 1, 0, and 2, the most frequently typed numbers, on strong fingers while maintaining some semblance of natural ordering for ease of memorization.

The arrangement of the alphabet itself on the layout is based on optimizing a lot of parameters. The simplest parameter is that the easiest to reach keys are given the most frequently typed letters, and the hardest to reach keys are given uncommon letters. As you can see, this has worked out fairly well. The home row consists of the nine most common letters RSTH E NAIO, and the next two (DLU) are on the next easiest to reach keys. In the eight corners we have the least common letters: J, K, Z, Q, B, and X, with symbols taking up the bottom two corners. These are arranged in a way such that even when they occur, they appear in pleasant strokes of the hand; try tracing out the words JACK and QUEEN. Your hand will barely move at all.

Most of the strokes roll your hand toward the center of the keyboard, which people generally prefer to rolling outwards. Having most rolls in one direction means that it is relatively unlikely, compared to other layouts, that a roll will reverse direction in a hand. Reversing a roll prevents you from simply using the weight of your hand to support the rolling motion of your fingers, which slows down your typing. The keyboard is also designed so that as many strokes as possible consist of typing two to three letters successively using the same hand. Alternating hands for every keystroke at fast speeds can mess up your typing rhythm because it requires precise hand-to-hand coordination, and using one hand to type many keys in succession fatigues it, preventing fast typing.


My own metrics report the following penalties for various layouts (lower is better):

Screen Shot 2016-05-17 at 11.21.09.png
Full size

As you can see, the scaled penalty for RSTHD is much, much lower than the next best layout (MTGAP). Qwerty, naturally, is way worse than all of the other layouts. Surprisingly, my analysis showed that the optimized layout generated by carpalx (QGMLWY) is actually worse than Dvorak; it accumulates a large penalty due to high same finger usage. And the other layouts score about as well as I would intuitively think based on just looking at the layout: Colemak and Workman are in a league, and Maltron, Arensito and MTGAP, which are more liberal with moving around punctuation, beat Colemak by a small margin. But the gap between Colemak and MTGAP is still not as big as the gap between MTGAP and RSTHD.

For a full description of the heuristic I used along with brief justification, see the readme of my optimization program.

Patrick Gillespie’s keyboard layout analyzer seems to agree with the results: for the first chapter of Alice in Wonderland, it gives the following scores (higher is better):

Screen Shot 2016-05-16 at 17.55.14

Here again, we see Qwerty at the bottom, other alternate keyboard layouts in the middle, and RSTHD scoring a fair bit more than the rest. I haven’t done any more analysis using other people’s metrics, but I believe that they would yield similar results.

I think putting the E on the thumb key is the main differentiating factor in breaking past the sort of efficiency plateau that other layouts hit; getting an extra home row key for free is kind of a big deal. Without redoing your entire layout, I suppose you could also put Shift and/or Command/Control on the thumb instead of E and get similar significant improvements in comfort, but I did not consider those solutions. Relieving the non-thumb fingers of E key duty frees up space in the rest of the keyboard to improve in rolling comfort and same finger usage.

In the end, I learned Rust, wrote a simulated annealing program, and generated a unique keyboard layout that I’m proud to call my daily driver. The list of people in the world that use keyboard layouts that they’ve created probably fits on a single page of paper in normal sized font. If nothing else, I’m excited to be joining a small group of geeks who have a hobby that nobody really understands or appreciates. I seem to be good at having those :^)


Appendix: raw output of the optimizer.

Reference: QWERTY
q w e r t | y u i o p -
a s d f g | h j k l ; '
z x c v b | n m , . /

total: 5035296.5; scaled: 1.6927670825776282
base: 3483264.5 / t: 609156; n: 467607; e: 272982; y: 190108; o: 179775;
same finger: 776140 / ed: 107595; un: 66790; de: 49385; rt: 48070; tr: 46840;
long jump hand: 197021 / in: 40205; on: 21898; ve: 15038; be: 11513; no: 10805;
long jump: 348040 / ce: 76180; un: 66790; my: 44290; ec: 41740; mu: 22880;
long jump consecutive: 79184 / ct: 22384; ex: 15664; cr: 15616; o,: 8888; xt: 5064;
pinky/ring twist: 27272 / pl: 23656; lp: 2968; Pl: 320; PL: 128; Sz: 128;
roll reversal: 23496 / eas: 10040; cas: 3968; I'l: 1992; opi: 1312; sad: 904;
left crunch: 76 / Sz: 64; sz: 12;
same hand: 53342.5 / ever: 1370.5; were: 955; look: 914; tter: 609; ered: 561.5;
alternating hand: 52090.5 / with: 2424; ight: 1780; when: 911.5; them: 867.5; they: 846.5;
roll out: 40460.875 / re: 3399.375; hi: 2489.625; te: 1935.625; ve: 1879.75; wa: 1785.5;
roll in: -45014.875 / in: -5025.625; er: -4440; ou: -3636.25; at: -2978.25; on: -2737.25;

Reference: DVORAK
' , . p y | f g c r l /
a o e u i | d h t n s -
; q j k x | b m w v z

total: 2786545.75; scaled: 0.9367815618596818
base: 2285275.75 / l: 309984.5; f: 183732; i: 170015; y: 142581; d: 133745;
same finger: 332725 / gh: 34610; ki: 27690; e.: 25295; pi: 20610; up: 17845;
long jump hand: 16912 / bl: 3784; br: 2028; rm: 1415; Mr: 1188; k,: 1090;
long jump: 17570 / xp: 6150; rv: 5740; ky: 2010; mf: 1690; zl: 560;
long jump consecutive: 12304 / wr: 5576; lv: 3216; rw: 1864; wf: 1056; "Q: 240;
pinky/ring twist: 12192 / nl: 10496; o;: 856; ln: 632; o:: 184; NL: 24;
roll reversal: 18824 / rst: 7112; nst: 5392; nsw: 3096; nsc: 1456; ea,: 464;
left crunch: 5964 / ju: 3800; eq: 916; Ju: 684; o;: 428; o:: 92;
same hand: 7426.5 / ooke: 389.5; appe: 251; you,: 242; ooki: 232; "You: 229.5;
alternating hand: 100237 / here: 2119; have: 1477; ever: 1370.5; some: 1062.5; were: 955;
roll out: 20407.625 / ea: 1699.75; yo: 986.25; e,: 981.125; ke: 958.875; pe: 739.875;
roll in: -37328.125 / th: -7546.875; nd: -4083.75; ou: -3636.25; ng: -2612.75; st: -1985.875;

Reference: COLEMAK
q w f p g | j l u y ; -
a r s t d | h n e i o '
z x c v b | k m , . /

total: 2562625.375; scaled: 0.8615039610434362
base: 1996572 / h: 176607.5; g: 142815; d: 133745; l: 132850.5; b: 129280;
same finger: 192140 / e,: 39245; kn: 25540; nk: 18110; y.: 10305; ?": 9080;
long jump hand: 22018 / my: 4429; y,: 3536; mu: 2288; y.: 2061; l,: 1647;
long jump: 42910 / y.: 20610; lk: 8080; u,: 5070; lm: 3820; kl: 2490;
long jump consecutive: 40088 / y,: 28288; xp: 4920; u.: 2544; y?: 2144; .-: 1616;
pinky/ring twist: 216 / I;: 136; rz: 40; I:: 24; i;: 16;
roll reversal: 168520 / was: 66144; you: 62096; You: 9752; iou: 5648; car: 5488;
left crunch: 15684 / ct: 11192; tc: 4256; CT: 172; TC: 40; rz: 20;
same hand: 32116.5 / look: 914; like: 680; hink: 474.5; houl: 445.5; ooke: 389.5;
alternating hand: 64943.5 / with: 2424; ight: 1780; ever: 1370.5; were: 955; very: 909.5;
roll out: 46046.875 / he: 7694.625; hi: 2489.625; me: 2163.625; wa: 1785.5; le: 1709.375;
roll in: -42945.5 / in: -5025.625; ou: -3636.25; at: -2978.25; on: -2737.25; en: -2640.75;

Reference: QGMLWY
q g m l w | y f u b ; -
d s t n r | i a e o h '
z x c v j | k p , . /

total: 2876821.125; scaled: 0.9671303572419102
base: 2007832.5 / y: 190108; w: 173013; i: 170015; r: 150172.5; c: 93232;
same finger: 709525 / ai: 92120; ay: 72690; ki: 41535; e,: 39245; if: 35740;
long jump hand: 17757 / up: 3569; y,: 3536; y.: 2061; cl: 1804; pu: 1412;
long jump: 17770 / u,: 5070; lv: 4020; py: 2460; ky: 2010; yp: 1690;
long jump consecutive: 20376 / cl: 14432; u.: 2544; .-: 1616; Cl: 672; b,: 456;
pinky/ring twist: 1192 / o;: 856; o:: 184; Sz: 128; sz: 24;
roll reversal: 3568 / Oh,: 1768; eho: 816; e-b: 344; oh,: 288; ohe: 88;
left crunch: 19284 / nc: 16500; xt: 2532; Sz: 64; NC: 64; XT: 56;
same hand: 11341 / abou: 649.5; befo: 413.5; ooke: 389.5; appe: 251; you,: 242;
alternating hand: 99082.5 / with: 2424; ight: 1780; ever: 1370.5; some: 1062.5; were: 955;
roll out: 25358.5 / nd: 4083.75; ng: 2612.75; nt: 1389.875; fo: 1015.25; ld: 993.875;
roll in: -36981.375 / he: -7694.625; ou: -3636.25; ha: -3357.75; hi: -2489.625; st: -1985.875;

Reference: WORKMAN
q d r w b | j f u p ; -
a s h t g | y n e o i '
z x m c v | k l , . /

total: 2567358.375; scaled: 0.8630951020222921
base: 1914144.75 / l: 177134; r: 120138; m: 115986; d: 106996; b: 96960;
same finger: 357685 / ly: 65280; e,: 39245; kn: 25540; ny: 20810; po: 18325;
long jump hand: 27848 / ul: 7587; pl: 2957; cr: 1952; lf: 1885; rm: 1415;
long jump: 67590 / lf: 18850; rm: 14150; Mr: 11880; fl: 10610; u,: 5070;
long jump consecutive: 22224 / mb: 9832; p,: 5720; u.: 2544; .-: 1616; dm: 1240;
pinky/ring twist: 1192 / o;: 856; o:: 184; Sz: 128; sz: 24;
roll reversal: 71448 / had: 38120; mad: 7744; has: 6576; dar: 3424; sam: 2784;
left crunch: 1020 / tm: 640; xh: 224; Sz: 64; mt: 48; TM: 32;
same hand: 39148 / that: 4015.5; look: 914; what: 843.5; like: 680; ooke: 389.5;
alternating hand: 64044 / here: 2119; ever: 1370.5; some: 1062.5; were: 955; very: 909.5;
roll out: 46211.25 / th: 7546.875; ha: 3357.75; wa: 1785.5; le: 1709.375; ne: 1508.125;
roll in: -44176.625 / in: -5025.625; ou: -3636.25; at: -2978.25; on: -2737.25; en: -2640.75;

Reference: MALTRON
q p y c b | v m u z l =
a n i s f | d t h o r '
, . j g / | ; w k - x
        e
total: 2388307; scaled: 0.802901571474436
base: 1972571.5 / l: 309984.5; ,: 160419; d: 133745; w: 115342; b: 96960;
same finger: 98010 / n.: 9960; hu: 7265; sc: 7015; tw: 6100; rl: 6000;
long jump hand: 11064 / y,: 3536; y.: 2061; lk: 808; p,: 715; lw: 591;
long jump: 7790 / p.: 3810; uk: 1760; m;: 1260; P.: 250; m:: 130;
long jump consecutive: 27632 / y.: 16488; p,: 5720; -l: 1656; -m: 1352; l-: 1144;
pinky/ring twist: 134600 / lo: 63248; ol: 36496; n,: 28192; Lo: 5680; Ol: 544;
roll reversal: 24432 / hro: 6352; ian: 5624; ork: 4456; pai: 3264; olu: 1288;
left crunch: 14836 / n,: 14096; I.: 620; N,: 64; .i: 24; i.: 16;
same hand: 48167 / ould: 2370; woul: 1016; look: 914; thou: 843; been: 702;
alternating hand: 64550.5 / here: 2119; have: 1477; ever: 1370.5; tion: 1269; were: 955;
roll out: 39093 / th: 7546.875; in: 5025.625; to: 2750.375; or: 2301.125; ho: 1239.875;
roll in: -39603 / an: -4981.125; ou: -3636.25; ng: -2612.75; as: -2421.625; is: -2067.25;

Reference: MTGAP
y p o u - | b d l c k j
i n e a , | m h t s r v
( " ' . _ | ) f w g x
        z
total: 2299921.375; scaled: 0.7731880726619926
base: 1965028 / o: 179775; d: 160494; y: 142581; b: 129280; g: 119012.5;
same finger: 144135 / mb: 18435; tl: 13750; au: 8525; rk: 7165; sc: 7015;
long jump hand: 13885 / y.: 2061; lf: 1885; gl: 1109; fl: 1061; "Y: 715;
long jump: 23090 / lw: 5910; wl: 3930; u.: 3180; o': 3130; .-: 2020;
long jump consecutive: 28928 / gl: 8872; "Y: 5720; xc: 2800; "O: 2688; y?: 2144;
pinky/ring twist: 15952 / sk: 9160; ks: 6384; Sk: 368; KS: 32; SK: 8;
roll reversal: 28680 / oin: 9216; ein: 5272; "Yo: 3688; pie: 2240; "Ye: 1936;
left crunch: 3596 / e?: 2268; a': 548; 'a: 288; "E: 232; e": 100;
same hand: 12314 / upon: 281; appe: 251; ion,: 246; you,: 242; open: 241.5;
alternating hand: 86349 / here: 2119; have: 1477; ever: 1370.5; some: 1062.5; were: 955;
roll out: 25492.375 / an: 4981.125; on: 2737.25; en: 2640.75; ai: 1151.5; ay: 908.625;
roll in: -43932 / th: -7546.875; in: -5025.625; ou: -3636.25; st: -1985.875; ea: -1699.75;

Reference: CAPEWELL
. y w d f | j p l u q /
a e r s g | b t n i o -
x z c v ; | k w h , '

total: 2490136.375; scaled: 0.8371345931126758
base: 2018167.25 / h: 282572; f: 137799; e: 136491; w: 115342; ,: 114585;
same finger: 159825 / ey: 19440; gs: 11890; ds: 10505; ye: 10235; cr: 9760;
long jump hand: 13172 / ?": 1816; l,: 1647; hu: 1453; lk: 808; p,: 715;
long jump: 33710 / ?": 18160; u,: 5070; d;: 2970; ?': 1790; dv: 1560;
long jump consecutive: 34496 / l,: 13176; hu: 11624; cy: 4016; u': 2768; Hu: 1272;
pinky/ring twist: 18784 / ex: 15664; xe: 2320; Ex: 392; iq: 216; EX: 192;
roll reversal: 114472 / ear: 30624; hou: 28056; ion: 27976; eac: 3504; nou: 3384;
left crunch: 15304 / ex: 7832; sc: 5612; xe: 1160; cs: 224; Ex: 196;
same hand: 57649 / with: 2424; thin: 1950; ever: 1370.5; tion: 1269; woul: 1016;
alternating hand: 35187 / hand: 653.5; righ: 417.5; take: 409; heir: 382.5; stan: 357.5;
roll out: 54107.625 / th: 7546.875; re: 3399.375; to: 2750.375; hi: 2489.625; ve: 1879.75;
roll in: -49433.5 / in: -5025.625; er: -4440; ou: -3636.25; on: -2737.25; ed: -2689.875;

Reference: ARENSITO
q l , p   | f u d k
a r e n b | g s i t o
z w . h j | v c y m x

total: 2304346.25; scaled: 0.7746756281107176
base: 1907652.75 / h: 282572; m: 144982.5; w: 144177.5; d: 106996; t: 101526;
same finger: 151645 / e,: 39245; e.: 25295; ok: 19650; gs: 11890; ui: 8225;
long jump hand: 20648 / ck: 4524; uc: 2912; mu: 2288; dy: 1655; cu: 1423;
long jump: 17480 / lw: 5910; ph: 4820; wl: 3930; dm: 1550; uy: 400;
long jump consecutive: 60736 / mu: 18304; dy: 13240; um: 11368; w,: 7936; l.: 6600;
pinky/ring twist: 72 / rz: 40; kt: 24; tk: 8;
roll reversal: 48400 / ear: 30624; eal: 6176; mou: 3344; dou: 2040; tou: 1792;
left crunch: 57660 / we: 35052; n.: 7968; ew: 7564; We: 6584; EW: 216;
same hand: 38639 / here: 2119; were: 955; when: 911.5; been: 702; hear: 534.5;
alternating hand: 49758 / thin: 1950; hing: 1629; know: 890.5; ning: 694.5; ing,: 642;
roll out: 54585.125 / he: 7694.625; er: 4440; ha: 3357.75; to: 2750.375; it: 2501.375;
roll in: -45269.625 / an: -4981.125; ou: -3636.25; re: -3399.375; en: -2640.75; is: -2067.25;

RSTHD:
j c y f k | z l , u q =
r s t h d | m n a i o -
/ v g p b | x w . ; '
        e
total: 1865452.375; scaled: 0.6271281888794945
base: 1679719.75 / d: 133745; l: 132850.5; b: 129280; w: 115342; g: 95210;
same finger: 88285 / wn: 13635; ty: 10575; ui: 8225; sc: 7015; nl: 6560;
long jump hand: 11291 / by: 2226; ,": 1918; w,: 992; l.: 825; 'l: 595;
long jump: 11990 / lw: 5910; wl: 3930; gy: 890; "Q: 300; u;: 280;
long jump consecutive: 7352 / u': 2768; u.: 2544; vy: 1200; 'u: 376; "U: 208;
pinky/ring twist: 2288 / s?: 2032; iq: 216; S?: 16; s/: 16; /S: 8;
roll reversal: 1640 / cry: 1016; .-I: 392; io,: 80; io.: 32; aqu: 32;
left crunch: 28784 / gh: 27688; s?: 1016; GH: 44; Gh: 16; S?: 8;
same hand: 49379.5 / ther: 2398; here: 2119; ever: 1370.5; woul: 1016; very: 909.5;
alternating hand: 36579 / what: 843.5; whic: 719; ment: 587.5; went: 562.5; able: 512.5;
roll out: 23517.5 / wa: 1785.5; no: 1350.625; ai: 1151.5; li: 1139.625; wi: 1010.875;
roll in: -46589.375 / th: -7546.875; in: -5025.625; an: -4981.125; ou: -3636.25; on: -2737.25;

29 thoughts on “Introducing the RSTHD layout

  1. Thanks for sharing your work. I am seriously considering making the RSTHD layout of my Ergodox EZ.

    Before I learn another new keyboard layout, I would like to know if you tried to fix the left hand bottom row to keep the ZXCV keys, including a small shuffle similar to Colemak mod-DH: https://colemakmods.github.io/mod-dh/ .

    How is the feel of having Ctrl, Alt, and GUI on the index fingers?

    I have been using TECK, which has Shift keys along the home row and Ctrl along the bottom row as pinky finger stretch keys. This configuration works well.

    1. That’s great to hear! Let me know if you do decide to learn the layout; you’d be the first besides me, as far as I’m aware.

      The modifiers on the center column are easier to reach, since they’re close to your index finger, which is one of your strongest. I prefer them there over having them in the bottom corners of the keyboard, where you’d have to stretch your pinky or thumb over to reach them. You have to move your entire hand to make the pinky comfortable reaching the modifiers in their traditional position. Modifiers in the central column does make some fairly stretching chords—try holding down Ctrl, Alt, and Shift at the same time—but I would prefer dealing with that than making my pinky handle all the modifiers all the time.

      Keeping ZXCV in the bottom left corner has not been a design concern, since moving those shortcuts doesn’t bother me. I have those shortcuts (Cmd-Z through Cmd-V) on on another layer for easy access, so I don’t think it’s an issue that needs to be addressed in the letter placement: https://github.com/xsznix/qmk_firmware/blob/master/keyboard/ergodox_ez/keymaps/keymap_rsthd.c#L320

    2. Unrelated, but I recently came across this one, which is optimized for Vim and Japanese input. Influenced by Dvorak & keeps the ZXCV keys in the usual QWERTY place. May be an intriguing article for either of you to check out (likely you will want to have Google Translate enabled) https://yushakobo.jp/pluis9/2017/12/thinkkeylayout/

  2. Thanks so much for sharing your design and methods!

    I started Dvorak on my new 60% Pok3r 2 months ago. It was slow going at first, but my speed is increasing steadily. Blank let’s went a long way in forcing e to memorise the letter locations. Aside from the L and P keys, I too have discovered that Dvorak has been much more comfortable compared to QWERTY.

    While the pok3r is still a staggered layout keyboard, I really do like having the arrow and page up/down keys all in a cluster beneath my right hand. It is an awkward movement of the right pinky to activate that function layer, but I seem to be doing it unconsciously even on other keyboards now. I use my left hand for mouse, or better, trackball control. There is an advantage in having arrows controlled by one hand while simultaneously controlling the cheaper with the other.

    Soon parts for an 80-key ergodox will be arriving. I have been wondering how to adapt Dvorak to this, but maybe RSTHD is a smarter way to go. I will probably modify the layout to have the arrow keys on a function layer beneath the right hand, then also find a way to keep caps lock around.

    Interesting how “Rust” and “RSTHD” aren’t very dissimilar strings!

    1. Have you gotten your ErgoDox yet? If so, would you mind sharing the layout you ended up using? I’m always interested in comparing what design conclusions other people arrive at.

      1. Not sure if you are subscribed to these comment notifications, but FYI, I went through a few failed attempts an building an ErgoDox. Lack of ESD protection and poor de-soldering abilities were my issues. Today I have a yet-to-be-programmed ErgoDox infiiny which I am intending to sell in favor of a Dactylus project. Haven’t tried RSTHD layout yet, but will give it a shot before I sell that ErgoDox Infinity. Who knows, maybe it’ll be a good fit for the Dactylus too? Since I commented here, I’ve been pleased with the Dvorak experience on my daily driver board, which is an Atreus by /u/technomancy – that’s what’s been keeping my fingers busy since my last comment here. Glad I went through my links today to be reminded of this interesting now layout.

        Are you still using it & what has your experience been?

      2. Yep, RSTHD is my endgame layout so I’m committed to making it work in the long-term. I use Dvorak on my laptop keyboard and RSTHD on my ErgoDox and I find that I have a preference for RSTHD for longer typing sessions. However, I type at similar speeds on both layouts.

        The Atreus and Dactylus both look like good hardware to use RSTHD on—all you need are an ortholinear layout and at least two thumb keys (E, space). Let me know if you try it out!

  3. Hi. Are you still using this layout, and, if so, what are your thoughts at this point? I’ve recently acquired i an ErgoDox and added this with slight modification as a layer today. I am touch typing (slowly) with it right now after a few hours practice. Thanks for sharing your work.

    1. Hi Eric, really cool to hear that you’ve been trying RSTHD out! Yes, I’m still using RSTHD everywhere I have an ErgoDox and I believe it’s the best keyboard layout for me. Of course, YMMV because everyone’s idea of what makes sense to their fingers differs.

      1. FYI, 4 months later and I’m loving RSTHD. It’s my full-time layout except when I’m forced to use only my notebook’s kbd. I switched Enter and Space, since I had Enter on the right for the other layers I was originally using. The placement is actually better for me mechanically because I have large hands and long fingers/thumbs, so the more frequently used space bar is in a very natural position. I’m curious as to whether anyone’s optimization algorithms account for varying hand sizes or if overall dimensions would be the far bigger factor than organization.

        My ErgoDox’s perimeter keys are quite a bit different but I’ll not comment on specifics because a) several pertain to managing other layer access (numpad, etc.) and b) I think I’ve been using this long enough to consider some revisions to them. I will note, however, that the “space cadet shift” function is brilliant.

        Have you tried hacking RSTHD over a standard, staggered keyboard? Without cutting the space bar in half, I fear the thumbs would suffer by having to contract too tightly to manipulate other bottom row keys, but I’ve been wondering about the possibility, especially with respect to travel, client meetings, etc.

      2. That’s great that you’re still enjoying RSTHD!

        Hand size is definitely a consideration with any custom layout and I suspect that it’s a big reason why nobody agrees on how hard it is to reach any given key, even from a resting position. It’s good that you’ve found something that works for you.

        I personally don’t intend to try to use RSTHD on a standard keyboard; Dvorak works well enough for me when I’m on my laptop. One possible solution you might look into is taking the Arensito approach of moving the home row up one row. If you try it out and get it working, I’d love to see how you do it! See: http://www.pvv.org/~hakonhal/keyboard/arensito2.jpg

      3. I have never seen an optimisation algorithm directly consider hand size, but they indirectly do when they assign costs to the various key positions. I don’t think I’ve seen any consider it for bigram/trigram costs. Having said that, avoiding same finger usage and inward rolls would likely be good things regardless of hand size.

    1. I haven’t seen this particular set of layouts before. Looks like most of the development around BEAKL wasn’t around when I was working on RSTHD, which would explain why I didn’t know about it.

      Do you find that minimizing pinky usage makes a significant impact on your comfort?

      1. Short answer for me is that it has a moderate positive impact on my comfort.

        Having said that, I switched from Dvorak on a regular ANSI keyboard (which definitely overworks the right pinky) to BEAKL on an Ergodox. So it’s hard to isolate how much the move to Ergodox helped vs the switch to BEAKL. A further complication is that I dabble in rock climbing, which probably changes the relative strength of my fingers compared to the average person.

        One thing I have noticed is that on BEAKL, I use the middle of the top and bottom rows a lot more (on your layout “CYFVGPL,UW.;”, on the BEAKL variant I use “HOU,’.CRFMLP”). Intuitively I find curling index or ring down, or stretching middle up is more comfortable than even home row pinky press. Of course all this does come somewhat at the cost of higher same finger usage. Both you and the BEAKL designers have realised the horizontal index finger stretch should be minimised, which the Dvorak and Colemak designers didn’t, though Colemak mod DH is an attempt to mitigate that.

        However the more research I do about keyboard layouts, the more I come to the conclusion that personal preference is a larger factor than most people give it credit for.

        It also looks like the BEAKL designers discovered this page at one point and made a few comments about it: http://shenafu.com/smf/index.php?topic=89.msg1437;topicseen#msg1437

      2. Ah yes, I did see this discussion at some point while Googling around. I share your intuition about personal preference—there’s too much variation in typing habits, even among fluent touch typists, to say that one keyboard layout is truly optimal based on any heuristic. Rock climbing most definitely changes the equation in terms of what is comfortable for you versus me.

        Ultimately, I recommend Colemak to most people who ask because it comes with most operating systems, doesn’t change a lot of punctuation keys from QWERTY, and is “good enough.”

  4. Hi!

    I’m interested in trying this layout, do you have a version setup in the Ergodox online configurator? Would love to save the effort of making the layout if someone already did it.

    Also, still liking it? Your reasoning stands out as most appealing after about two weeks of research through mtgap, BEAKL, Dvorak, colemak, etc… This will begin my first jump from qwerty and into columnar linear. Theoretically want to have a maximally efficient / ergonomic layout on the ergodox and maintain functional qwerty typing skills on a normal layout for the near term.

      1. OK, so I have made this (slight variant of) RSTHP layout my daily dog food layout now:

        https://configure.ergodox-ez.com/ergodox-ez/layouts/QayrK/latest/2

        It contains a slightly modified ZenTron on the base layer (modified to maximize overlap with my version of RSTH which is on Layer-2.

        The RSTH layer does the Colemak-style forefinger swaps – in this case, P and D on the LHS, and W and M on the RHS, are swapped.

        Also, the low-frequency corners X, Q, J, K and Z are moved to maximise overlap with the ZTron (slightly modified ZenTron) layout.

        This has also improved ZenTron into this new ZTron variant.

        The ZenTron Readme (see link in above comment) shall be updated shortly.

  5. Thanks for this brilliant layout.

    My journey is similar to yours, I tried Malt for long enough to become familiar, and your brief critique made sense and so I swapped to RSTHD having shrunk it down to a Mindox. Of course by that point the placement of ‘E’ made sense!

    I am evangelising your layout the forums too. I reckon the recent success of Ergodox and other Maltron-inspired split keyboards mean that Malt-esque layouts will enjoy renewed interest.

  6. Hello! I recently discovered this layout through another friend and I’m fairly intrigued. I think the use of a thumb key for a letter is quite genius really, and it’s something I’d briefly thought of in the past when thinking of how useful thumb keys are. I have an iris, so the core of this layout (the letter positions) would still applicable. I was curious to hear about whether you still used the layout, and especially about what layout you use when typing on a regular keyboard. Since even obscure ones like colemak and such have ways to make them accessible on regular keyboards. But this layout is a whole nother level when you can’t even program it onto a standard board cause of the thumb E.
    I’ve going down the split board rabbit hole for a bit now so I’m definitely interested in exploring a lot of avenues. Also layout fluidity seems like it’d be a fun skill to be able to use what’s best for a given keyboard design too.

    1. I’m still avidly using my RSTHD configuration. When I switch to a regular keyboard, I revert to qwerty. Its just convenient when momentarily popping onto someone else’s machine, e.g., helping a family member with something on their laptop, so I’ve not ventured to explore other configurations there. The switch is easy enough, though my qwerty typing is now definitely slower. My biggest challenges in switching are the delete, tab, and shift keys in the left and the shift in the right – shift because they lack the tap for parenthesis capability I added to my ErgoDox.

    2. Yes, I still use RSTHD on a daily basis. On non-split keyboards I just use Dvorak, as it’s well-supported across all platforms and I don’t see any creative ways to drastically improve existing layouts for that form factor. I originally tried running the genetic algorithm on standard keyboards in addition to split keyboards and it didn’t result in anything I thought was worth trying.

  7. I’m considering to switch from workman to another keyboard layout. I was considering dvorak, because of the better hand alternation. There’s some arguments that hand alternation after a bigram improves both comfort and typing speed: https://mathematicalmulticore.wordpress.com/2010/01/09/should-a-keyboard-layout-optimize-for-hand-alternation-or-for-rolls/

    Hand alternation was, afaik, also one of the scientific criteria behind dvorak. This is why I’m a bit confused why this blog post seems to mention that same hand is preferable. I guess this is maybe more of a semantic problem: what do we really mean with hand alternation… alternate when? After 1 stroke, 2, 3?

    Can you say something how the hand alternation of RSTHD feels like in comparison with dvorak and maybe colemak?

    1. Good question. The heuristic used to generate RSTHD prefers quad-grams with between 2 and 3 consecutive same-hand strokes, since I qualitatively find those to be fastest and most comfortable. Dvorak prefers 1 to 2 strokes between alternations. I’m not 100% sure about Colemak since it’s been probably a decade since I actually tried it, but Dvorak is pretty extreme in its preference for alternation so I’d say Colemak is somewhere in between.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s