top | item 24382110

Fast Typing: Keyboard Layouts

46 points| pavanyara | 5 years ago |codefaster.substack.com

83 comments

order
[+] germ|5 years ago|reply
If you're willing to go down a rabbit hole, designing your own keymaps and hacking on a layout can go a long way to alleviating RSI symptoms. The author doesn't touch on it but QMK will change the way you interact with a keyboard and make those tiny 40% and smaller boards feel a ton bigger.

When I made the layout for GergoPlex[2] I designed it around Vim/i3/Programming and other uses secondary. But because you can easily change it for your specific workflow weakpoints that you identify can be dealt with.

>Actuation force and travel probably matter more for RSI

I am not a doctor, but this matches my experience. I use 12g Low-Profile Kailh Chocs and noticed a good change in flare-ups as I kept driving it lower and switching to a non-MX switch.

I was able to get Kailh to manufacture lighter weighted Choc switches (gChoc, 20g Linear) for use on boards like GergoPlex and others. Reviews seem good across the board on those for people suffering from RSI, so I'll keep at it.

I'd argue that the main factors to be optimized for in decreasing order are: Split, Stagger, # of keys, layout, Spring weight, Travel distance. But getting there is a very, very strange time[1]

[1] https://blog.gboards.ca/2020/01/weird-keyboards-programmable...

[2] https://www.gboards.ca/product/gergoplex

[+] codesections|5 years ago|reply
> I was able to get Kailh to manufacture lighter weighted Choc switches (gChoc, 20g Linear) for use on boards like GergoPlex and others.

What are your thoughts on linear versus tactile switches as far as preventing RSI goes?

[+] pastrami_panda|5 years ago|reply
Programmers, and people working with computers in general, should really take better care of their neck, shoulders, scapulas, wrists etc. I just realized that the cobra[0] is in some ways the inverse of sitting down and is beneficial for "resetting" some effects of prolonged sitting. But there are many excercises and stretches that should be performed regularly. I've started getting pretty bad scapular pain that one day started impeding my work and it's a real pain to fix once it gets that bad. Having good gear is nice, but it should always be accompanied by a good stretching and excercise program.

https://images.app.goo.gl/MQX6XStfAMN2rhjK7

[+] ZeroGravitas|5 years ago|reply
I agree with most of this, except the vim part. I use vim, dvorak and a Kinesis Advantage keyboard and have never felt that it held me back. If anything, I think it encouraged me to use more appropriate controls a available in vim. If you're moving around in vim one character at a time you're probably not getting the most out of it.

I did learn dvorak before vim though, I can imagine unlearning and re-learning to be harder.

[+] jrib|5 years ago|reply
I agree. Yes, hjkl are no longer a single cluster in Dvorak, but jk are now on one's left hand for vertical movement and hl are on one's right. So it has that advantage. Like you pointed out though, you want to avoid overusing those keys to move around anyway.

I did learn Dvorak after Vim. Yes, it meant there was a second layer of added pain. I stopped using vim for a couple of weeks altogether, learned Dvorak to the point where I could touch type again (although more slowly), then went ahead and retrained the muscle memory for vim.

For anyone not used to using vim, vim users get to the point where they think "change word" and their mind maps that to top row middle finger, bottom row middle finger. There's no middle step of "change word" -> "cw". So just learning the muscle memory for letters isn't sufficient for then using vim as fast as you could before. At least that's how it was for me.

As someone who also started feeling RSI symptoms in his early 30s, I definitely recommend learning Dvorak and picking up a split keyboard. I like the ergodox, personally. The straight columns seem to help too. I think other alternative layouts and ergonomic keyboard combinations have their merits too.

For anyone else hesitating, observe how frequently your wrists end up in awkward angles while typing on a regular qwerty layout. That and the pain I started to feel is what motivated me.

[+] thomasahle|5 years ago|reply
I would assume you Jay remapped your vim keys. Or that standard such remaps were already available for dvorak.
[+] rsecora|5 years ago|reply
My two cents on the RSI and fast typing.

I learned typing 40 years ago, in the same way as secretaries do, with a real mechanical typewriter (an Olivetti one), and following an standard typewriter course for 2 months. My parents and relatives also used mechanical typewriters for 20 years before (8 hours a day).

The writer says "CapsLock is useless... remap". I have seen that statement a lot of times, and I deeply feel it wrong. That means the author hasn't been properly trained at typing. Maybe he also lacks:

- The balance of the "space" between the two hands.

- using the opposite shift for the special chars.

- using caps for continuous uppercase...

- numbers had an assigned finger. (Some people overuse only 2 fingers for them).

- the hand position and they way the rest/float in the keyboard, needed to achieve more than 100word/min.

- forearm and hand alignment.

I have work with people with RSI and almost all of them lack proper training at typing. So they tend to overuse 2/3 fingers, to only use one side of the space bar, or only one shift. They don't balance correctly the hands, and some positions are forced.

[+] austhrow743|5 years ago|reply
Many people lack a need for continuous uppercase. It might have been a big enough deal back in your typewriter days when bold and font size changes weren’t an option but it’s certainly not common enough to warrant a dedicated button in prime position now.
[+] tzs|5 years ago|reply
Caps lock is not useless, but its placement is totally inappropriate, and this has nothing to do with how trained you are.

In English text, and most programming languages, most of the text is in one case (usually lower), with small runs (often only one character long) in the other case.

For runs of one case switched character, shift will almost always beat caps lock because of the need to hit caps lock again to get back to the majority case.

Only when you get a longer run of switched case, or perhaps a shorter run where the letters nearly alternate between left hand and right hand letters so you are alternating shift keys or doing some characters with the "wrong" shift key if you are not good at alternating, do you change caps lock state.

For most text only a very small fraction of key presses will be to change caps lock state. Even Khassaki would only press it once. There is simply no way to justify putting it in the prime spot to the left of "A".

Also, while being in caps lock state is useful on some occasions, that does not mean that there needs to be a dedicated key to change that state. I suspect that something like pressing both shift keys simultaneously would be fine as a caps lock state toggle, or something like left shift/right shift/left shift.

[+] daveFNbuck|5 years ago|reply
What makes remapping capslock wrong? Does proper typing training make it easy to reach the escape key?
[+] DavidVoid|5 years ago|reply
Caps lock is usefully but only occasionally, so it doesn't make sense to give it its own key in such a prominent position. Remapping the Caps Lock key to Control is imo very useful. I use a HHKB so if I want to use Caps Lock I just press Fn+Tab.
[+] code-faster|5 years ago|reply
Hi, I'm the author, I would love to know more about proper typing training, I've never heard of such a thing beyond touch typing. Do you have any suggested online resources or books for where I could start?
[+] justwalt|5 years ago|reply
How should a trained professional be using caps lock?
[+] xwdv|5 years ago|reply
Remapping capslock to escape is not wrong if you’re using vim, in fact I would say it’s practically a requirement.
[+] codesections|5 years ago|reply
The post strongly recommends two different split keyboards to prevent RSI: the Microsoft Natural Ergonomic 4000 [0] and the Kinesis Advantage [1].

I'm curious how these would compare with the Keyboardio Atreus [2], which I've been considering for a while. The Atreus isn't tented, but it's also significantly smaller, which seems like something that might be helpful in reducing RSI

[0]:https://www.amazon.com/Microsoft-Natural-Ergonomic-Keyboard-...

[1]: https://www.amazon.com/Kinesis-Advantage2-Ergonomic-Keyboard...

[2]: https://shop.keyboard.io/products/keyboardio-atreus

[+] rsecora|5 years ago|reply
Keyboardio Atreus only have one shift, one control and a tiny space-key and return-key.

Some positions that need shift/control in the left hand will be forced. Keyboards use two shift/control to alleviate the stress. Traditional typewriters have both for fast typing and a balance of force with both hands. It's like a dance of fingers, using the shift with the opposite hand to the key being typed.

On top of that, there is a small "space key", in the right. Being space one of the most pressed keys,it put too much stress on that. traditional keyboards have a large space-key to help the hand position and press with the opposite hand to last key typed.

In an ergonomic keyboard the hand and forearm shall be aligned (that's done), but the keys shall help.

[+] bnolsen|5 years ago|reply
use a real split like a lily58 or kyria. Physically splitting the boards lessens the need for tenting and absolutely helps with posture issues.
[+] codetrotter|5 years ago|reply
> Personally, I use vim for everything and dvorak ruins the home row of hjkl, so I haven’t learned dvorak. If I were to, I’d first learn emacs, use emacs for everything, and then learn Dvorak.

I use Vim and Dvorak. At the beginning when I switched to Dvorak it felt awkward but, there’s actually a deeper reason it don’t matter that much.

Pressing hjkl for anything more than a few presses at a time is generally IME not desirable.

At the time when I began using Dvorak a decade ago I was still fairly new to Vim and so I used hjkl a lot.

Over time I learned to use more efficient motion commands, as well as using both the hjkl and the other motions in combination with numbers. Like say 5k 7w instead of kkkkkllllllllllllllllllllllllllllllllll.

And in fact the slightly awkward placement of hjkl on Dvorak may even have contributed to me bothering to learn more motion commands and combining them with numbers.

I’ve even gotten quite good at eyeballing number of characters, words, lines, etc without explicitly counting them.

[+] DavidVoid|5 years ago|reply
It honestly surprises me that the evolution of ergonomic keyboards has been so slow. Sure, we have plenty of split keyboards now, but we don't have any commercially available DataHand-like designs [1]. Watch someone type with a DataHand you'll see that they barely need to move their fingers at all [2]!

The best similarly ergonomic designs we have at the moment are a gaming keypad [3] and some DYI projects [4].

[1] https://en.wikipedia.org/wiki/DataHand

[2] https://www.youtube.com/watch?v=IrRWTeJ0-Ow

[3] https://www.azeron.eu/

[4] https://github.com/JesusFreke/lalboard see also https://geekhack.org/index.php?topic=41422.800

----

On another note, does anybody know how good steno keyboards tend to be for RSI issues in the long run?

I've practiced some steno with a regular keyboard (thanks to plover [5] and Typey Type [6]), but I'd need an actual steno keyboard to continue since I don't have N-key rollover on my current keyboard.

The Georgi [7] seems like a good option and I'd imagine that it would be pretty good for ergonomics since it's a split design and also rather small. The only problem is that I'd have to learn steno which will likely take quite some time.

Here's a demo of someone writing code with a steno keyboard (54 keystrokes needed vs 143 if you were using QWERTY) [8].

[5] http://www.openstenoproject.org/plover/

[6] https://didoesdigital.com/typey-type/

[7] https://www.gboards.ca/product/georgi

[8] https://youtu.be/Wpv-Qb-dB6g?t=380

[+] LargoLasskhyfv|5 years ago|reply
Oh! Azeron... at first sight I thought gamer crap, but after exploring a little I thought WOW!

Very interesting. Now it only lacks integration of something like the Spacemouse from 3dconnexion.

[+] GrantZvolsky|5 years ago|reply
I've been typing without any signs of RSI until I started using vim. Vim forced me to switch from my 'custom/natural' hand position* , which uses just 3-4 fingers of the right hand, to the home row position, which uses all five. This put too much strain on my ring finger which is much weaker than the other fingers, and that I believe led to RSI. Maybe I'm an outlier with atypical anatomy, or maybe we should challenge the notion that there is only one correct hand position.

* Interestingly my peak typing speed is 500 CPM in the 'incorrect' position and 470 CPM in the 'correct' position.

[+] saurik|5 years ago|reply
I have always used vim and I have a "custom/natural hand position" and am not at all sure how or why you are feeling the need to use all five fingers... I find vim extremely effective even on an iPhone pecking with my thumbs.
[+] CarelessExpert|5 years ago|reply
Huh, I had the opposite experience. Around... 15 years ago? I switched away from Emacs to Vim because of dreaded Emacs Finger.

Of course, I could've tried other solutions: actually using the right hand Ctrl and Alt (my typing form is... good but not great), or swapping Ctrl and and Capslocks.

But I opted to switch to Vim, and lo and behold, my problems evaporated when I no longer had to constantly chord. I'm now 41 with no significant RSI issues.

Or: YMMV!

[+] atemerev|5 years ago|reply
In my observations, this is quite common. Most people who complained about RSI in my environment were heavy vim or emacs users.
[+] bayindirh|5 years ago|reply
I've used Ergo 4000 for a decade (I still have it), but moved to a conventional G710+ because it has Cherry MX brown switches.

The problem with Ergo4000 is, its keys wear down over time. It's a very nice keyboard and tends to teach you touch typing correcty but, the keys become heavier over much use. I didn't notice it until I've switched to G710+. Cherry MX Brown switches are really softer and allows me to work with my computer longer.

I don't have RSI but, My fingers felt tired at the end of a long session. Now with 710+, it never happens.

[+] cosmotic|5 years ago|reply
DVORAK has long been debunked. It was a fraudulent study conducted by the US navy. The transition into dvorak will slow you; the constant need to setup your key layout on new computers will slow you, the inability to use other computers quickly will slow you, the inability for others to use computers you've setup will be a problem...

https://reason.com/1996/06/01/typing-errors/

[+] Symbiote|5 years ago|reply
That article is either crap (e.g. rubbished Dvorak to make some anti-government point), or irrelevant.

It's irrelevant since we were discussing typing _comfort_ (RSI etc), and it's difficult to find someone familiar with both Qwerty and Dvorak who will not argue that Dvorak is more comfortable to use.

[+] LargoLasskhyfv|5 years ago|reply
That was interesting to read. But does it really apply today? The lost Navy study was made in even pre-cubicle times. And even as a cubicler maybe bring-your-own(-typing)-device could apply? Not to mention work-from-home.
[+] karmakaze|5 years ago|reply
> Mechanical keys don’t help

I've used QWERTY for decades on whatever keyboard came with each machine. In the past year I've had fits of 'shooting nerve pains' along the back of my hands and forearms when I couldn't type for days. Since then, I've switched my typing style to more of a striking than pressing motion and also using a mechanical keyboard--no discomfort since.

> Learn Dvorak…unless you use vim

It's weird that vi and command-line have separate motor memories from typing words. I'm still trying to relearn them.

I also did go down that rabbit-hole of custom layouts, starting with a naive 'lets just shuffle a few keys' to a custom alternative to Colemak/Soul/Niro that I independently/incrementally arrived at.

If I were restarting from the beginning I would suggest MTGAP, it seems the most efficient. And I highly recommend Stevep99's keyboard layout analyzer[0].

In case anyone's curious, the layout I ended up using is Qwicker (aka KFLY)[1]

[0] https://stevep99.github.io/keyboard-layout-analyzer/#/config

[1] https://github.com/qwickly-org/Qwicker

[+] Offpics|5 years ago|reply
Recently I've realized I cramp my hands during the sleep. Now I sleep on the side with flat joined hands near my head and it greatly reduced my pain. Also 5 minute walk after 25/30 minutes is a blessing also, great for the whole body and also the mind. It's hard to take a break when you are in the zone but it's worth it in the long term.
[+] blumomo|5 years ago|reply
Thanks for this article. It made me buying a Kinesis Advantage. Since long I wanted to “get rid” of my notebook‘s touchpad and start using HJKL and all the other navigational commands in vim (instead of 2-finger scrolling on my touchpad). With that ergonomic keyboard, I will have no other choice. Looking forward to relearning my typing habits!
[+] atemerev|5 years ago|reply
Didn’t work for me, sold it after two months.
[+] Reefersleep|5 years ago|reply
I bought an Ergodox EZ because I wanted to try out the wonderful mechanical keyboard feedback that many blog posts talk about. The tactile feedback in particular; as I didn't want to bother my colleagues, I bought Blue Zilents from Zeal PC [1], which were a nice upgrade from the Cherry Browns - silent, regular, good tactility.

I never really got what I was looking for. While the keyboard "felt nice", the extra travel seemed excessive when compared to the standard Mac keyboard (2015 model), and the tactility didn't really improve my typing. Rather, due to the ortholinear layout of the Ergodox, and the keyboard not having room for the Danish characters (æÆ, øØ and åÅ) which I use every day, I spent a lot of time configuring first the keyboard layout, then my brain to fit it. And in spite of the silent switch choice, I could never be as ninjaish as on my Mac keyboard.

The final straw, however, was when I read a blog post that confirmed my general feeling about the sluggishness of the keyboard; the software that the keyboard runs internally means another hurdle in the signal path from my button press to the computer reacting, and a huge one when compared with other keyboards. Regardless of how much I practiced, the keyboard would _never_ feel as fast or responsive as I'd like it to, and consequently, my efforts into improving my typing would probably proceed at a poorer rate than it could have.

I reverted to the Mac keyboard, and I'm happy!

This isn't intended as an Ergodox bashing. Personally, I learned from the experience that a) Mechanical keyboards are not for me, and b) The Ergodox certainly isn't for me. And, possibly, that c) The butterfly mechanism of the 2015 Macbook Pro is actually a perfect fit for me. But I also learned a more general lesson, which is d) To keep critically pursuing alternative interfaces, _especially_ when I'm experiencing fatigue or pain, and e) That regardless of the interface, repetition can be hurtful. In my future home office, I hope to have more than one pointing device and more than one keyboard, so that I can switch it up once a while - use an vertical mouse rather than a horizontal one, or switch to a touchpad or Wacom when I feel like it. And the same for the keyboard; changing the angle of the board (angles in the case of a physically split board), strapping keyboards to my thighs, using keyboard with different switch mechanisms and key layouts. And, of course, getting away from the keyboard, stretching, and looking into the distance :)

Take care of yourselves, fellow keyboard warriors!

[1] https://zealpc.net/products/zilents

[+] YorickPeterse|5 years ago|reply
I've been using an Ergodox for about a year now, but never noticed any latency issues of any kind. This is just using standard Cherry MX brown switches. Perhaps the issue was something else?

At the end of the day I think it's a matter of taste/preference. Some like mechanical keyboards (i.e. me), others don't. That's fine, just pick whatever works for you :)

[+] tzs|5 years ago|reply
> The Microsoft Natural Ergonomic 4000 has a built in stand for negative tilt. The kinesis advantage2, however, does not. I solved this by going to a nearby plastics shop and had them build a custom stand for me which worked well.

What's it typically cost to have a custom plastic stand made?

I would have just taped a couple of dead AAA or AA batteries to the bottom, or went to an office supply store or Walmart and got something like these and stuck them to the bottom [1].

[1] https://www.amazon.com/Self-Stick-Noise-Dampening-Bumpers-12...

[+] ubercow13|5 years ago|reply
I use a weird layout and vim everywhere. I have a remapping I have to apply in every software I use vim keys in so that the home row is reverted. Overall it’s doable but not really worth it, but now I’m stuck.
[+] melling|5 years ago|reply
“ Almost every serious programmer I interviewed painfully developed RSI in their 20s. I didn’t even know until I asked them! Me? I was 24 when it struck. No warning. Just pain. ”
[+] shpx|5 years ago|reply
> Learn Dvorak…unless you use vim

I’ve been using vim with Dvorak for close to a decade now and it’s completely fine. J and K are where C and V are on QWERTY and it works great, I’ve even heard people say they like it more than where they’re supposed to be.

H is one to the left of where it is on QWERTY, but L is in the far top left, it’s my least favorite letter to type. It doesn’t matter much though, because you rarely use H and L, it’s usually W and B or 0.