Hacker News new | ask | show | jobs
by ndeast 805 days ago
Last year during a couple month break I had between jobs I decided I would learn a new keyboard layout as it was something I always wanted to do, but never wanted to commit to the learning process while I still needed to be proficient at typing.

I chose to learn Colemak-DH [0]. Before learning I was around a 75-80 WPM Qwerty touch typist. I went all in and did a lot of heavy practice. It took me around a week to be able to touch type colemak-dh (slowly) and then a further few months to touch type at speed.

I didn't want to lose my ability to use Qwerty so after getting up to a moderate speed of ~45 WPM I exclusively brought my colemak flashed happy hacking keyboard to work, and left qwerty at home. I have now equalized at about 60 WPM on both layouts after 8 months, and can pretty easily swap between them.

Now I don't really know what to do, nor have I noticed really any perceived benefit of switching layouts. The biggest difficulty has been vim keybinds. I really don't want to have to remap all of my vim keybinds (as like the OP article states, I think of my vim commands based on their name and qwerty representation) so I have been relying on multiple keyboard layers to handle movement keys and the like. Having to use modifiers, remember the different locations between layouts, and stealing away previous CTRL+<key> modifiers from vim to accommodate this kind of sucks.

I notice no difference in wrist (dis)comfort, it's just become more mental overhead to typing, and I am kind of stuck. I guess I am waiting to have some time to think about what I want to do, but balancing two layouts doesn't seem practical, or reasonable, or efficient.

[0] https://colemakmods.github.io/mod-dh/

2 comments

I learned colemak a long time ago, and progressed just like you, except I didn't try to retain qwerty speed. I figured I can look at the key legends anyways. I initially reached about 50-60 wpm but after that the speed still seems to progress slowly. Now after several years I can type about 100 wpm which I was never able to on qwerty, and I didn't do any significant practice on typing speed.
Your story is similar to mine. I also use Colemak-DH. However, I sort of quit Qwerty cold turkey. I also used to touch type about 80 wpm on Qwerty, and because I didn't maintain it or practice while learning Colemak, I completely overwrote my muscle memory. Overall, the layout is more comfortable for me, but hard to justify especially if you rather not tamper with default keybindings.

I'm also a vim keybinding user, but in Emacs evil-mode mostly. Vim keybindings are definitely made for qwerty, and to me not rebinding the keys just seemed insane.

I ended up spending a weekend, reviewed all the keybindings I use, and ones I should probably use more, then wrote it all out [0].

I remapped a lot of keys back to their qwerty positions, but I also took the opportunity to make some changes that I thought would be more ergonomic. I also came up with me own mnemonic system for the re-mappings.

For example:

  | function          | before | after | new mnemonic      | Commentary                                 |
  |-------------------+--------+-------+-------------------+--------------------------------------------|
  | find file at pt   | g f    | g s   | search file at pt | need to free up `g f'                      |
  | find file.. w/ ln | g F    | g S   | search file.. etc | need to free up `g F'                      |
  | end WORD          | E      | F     | far WORD          | foot/forward are other possible mnemonics  |
  | end WORD          | g E    | g F   | far WORD rev      | foot/forward are other possible mnemonics  |
  | end word          | e      | f     | far word          |                                            |
  | end word          | g e    | g f   | far word rev      |                                            |
  | find              | f      | s     | search            | right next to till :)                      |
  | rev find          | F      | S     | rev search        |                                            |
  | visual mode       | v      | r     | range             | see note below                             |
  | visual lines      | V      | R     | range lines       |                                            |
  | visual block      | C-v    | C-r   | range block       |                                            |
  | visual restore    | g v    | g r   | range restore     |                                            |
  | replace           | r      | v     | revise            | convert is another possible mnemonic       |
  | replace mode      | R      | V     | revise mode       |                                            |
  | goto mk           | `      | j     | jump              | easier to reach and now mnemonic           |
  | goto mk ln        | '      | J     | jump to line      | same key as j now, which makes sense to me |
Here is a minimal vim config [1] that I use if I find myself wanting to use (neo)vim. My evil-mode config [2] in Emacs. Remapping `less` keys [3].

[0] https://github.com/willbush/system/tree/main/configs/keyboar...

[1] https://github.com/willbush/system/blob/main/configs/nvim/in...

[2] https://github.com/willbush/system/blob/82253534b92f3ab87d8e...

[3] https://github.com/willbush/system/blob/82253534b92f3ab87d8e...

I don't rebind my keys on Colemak for vim/evil. I got used to it pretty quickly. Beyond the basic hjkl movement commands I don't think anything is really meant for qwerty specifically. Remapping also breaks the mnemonics somewhat which I think is important. Emacs users got along just fine with Ctrl-n and p, so I see no specific reason remapping should be needed.