27 December 2024
It has been over a year since I switched over to Colemak-DH as my desktop keyboard layout. The switch wasn't smooth, and I didn't immediately land upon DH as my layout of choice. There was a decent amount of trial-and-error. I seriously attempted to use two different layouts before DH, excluding QWERTY.
QWERTY is a perfectly fine layout if you intend to type maybe one hour per day, and I don't think a typical programmer types more than an hour on an average work day. When I made the decision to switch, I was not working just an average work day—I would work 8 hours of office work and follow that with 2–3 hours of random programming projects. These random projects often required me to type a lot—often a lot more than I would during the preceding 8 hours.
I noticed a strange discomfort at the base of my wrist, a numbing pain that would worsen when I typed. The symptoms matched repetitive strain injury. RSI is not a good injury to have, so I immediately rolled back my typing, and started looking for solutions. I found that the most used keys were not on the home row in QWERTY. For example, the letter T is used very frequently, but it requires reaching with the left index finger to type. It is the same case with the letter Y. Just do a CTRL-F and search for 't' or 'y' and you'll know.
The first layout I tried was DVORAK. It was primarily because a lot of programmers used it, and it was the second most popular Latin-alphabet layout after QWERTY. Almost everything about that layout was new, and I struggled; a lot. But, I persevered for a few weeks. Then I noticed that the letter L and S are typed with the right pinky. 'ls' is a common Linux command. When I worked with the terminal, the problem with QWERTY would reappear on DVORAK whenever I wanted to use 'ls'. A few weeks of that was enough for me.
I landed on Colemak as my second layout. It was far friendlier than DVORAK. It maintains the original positions of keys wherever possible, so moving from QWERTY is easier. A couple of weeks of Colemak were enough for me to know that I needed something that placed the letters D and H elsewhere. Those letters are originally placed in the central row—not the worst place for those keys, but why settle?
A few minutes of searching the web brought me to Mod-DH. The letters D & H are moved to the bottom row, making them far easier to reach than the middle row. I find this layout most optimal for me.
I have not altered any keybinds, not even for vim. Not adjusting the keybinds for vim has allowed me to become better at vim. Now, I cannot just spam J to move a few lines down. If I have to go ten lines lower, I would type 10 followed by J—this is faster, and better in every way. But, having the key for J right underneath my finger kept me from adapting to the vim way. I feel I have actually gotten much faster with vim, even though my overall typing speed hasn't changed much.
The biggest con with this layout so far is not related to the layout itself, but the adoption. As far as I remember, Windows still does not support Colemak out of the box. So, folks usually have to use AutoHotkey, or something similar. I have a Keychron K8, which is a programmable keyboard. I have set it up to work as a Colemak-DH keyboard out of the box, so I don't need to set anything up on a computer that I'm accessing. But, I cannot be sure that I will always have my keyboard with me. I use QWERTY on my mobile phone, but I'm not sure if that habit would carry over to desktop after all this time. My wrist does not hurt anymore, so my decision to switch was worth it.