My Thoughts After 7 Months with the Colemak-DH Layout

The Colemak-DH layout is awesome. When I first made the switch, I struggled... a lot. It felt incredibly difficult to break free from the ingrained habits of QWERTY and start fresh with Colemak. It was genuinely hard, but I felt I had to do it.
Why the Change?
My typing speed on QWERTY hovered between 90-94 words per minute (WPM). I just couldn't seem to surpass this speed, no matter how hard I tried; pushing past my current maximum felt impossible at times. Then, one day, I noticed my fingers were aching and even seemed a bit swollen. They were genuinely hurting, to the point where I couldn't even type comfortably. When I Googled my symptoms, one of the first suggestions that popped up was to consider changing my keyboard layout. This sparked my curiosity.
After some research, I found a few promising alternative layouts. I even wrote a Python script to analyze which layout required the least finger movement. The script's results pointed clearly to Colemak. Let me show you a comparison (assuming you're referring to a heatmap image you might include):
As you can see Colemak involves significantly less finger travel. This result convinced me: I needed to switch to Colemak.
While looking into Colemak, I discovered there were a few variants, such as Colemak-DH, Colemak-DHk, and Colemak-DpgH. Here are the layouts so you can see the differences:
COLEMAK-DpgH
COLEMAK-DHk
COLEMAK-DH
From all these options, I chose the Colemak-DH layout. However, I then found out that this specific layout isn't officially supported on Windows, and only a few variants have native support in Linux.
How Did I Switch from QWERTY to Colemak-DH?
For those on Linux, here's how you can typically change to Colemak-DH Ortholinear:
setxkbmap us colemak_dh_ortho
The original Colemak layout can often be selected with a command like:
setxkbmap us colemak
On Windows, you can usually find the standard Colemak layout in the language settings. However, for the DH modification, you'll need to use AutoHotKey (AHK) software and a script. Here’s an example of what that script might look like for an ANSI board:
; Colemak Mod-DH mapping for ANSI boards
;SC010::q
;SC011::w
SC012::f
SC013::p
SC014::b
SC015::j
SC016::l
SC017::u
SC018::y
SC019::;
;SC01E::a
SC01F::r
SC020::s
SC021::t
;SC022::g
SC023::m
SC024::n
SC025::e
SC026::i
SC027::o
SC02c::z
SC02d::x
SC02e::c
SC02f::d
SC030::v
SC031::k
SC032::h
; Swap CapsLock and Escape keys
CapsLock::Esc
Esc::CapsLock
Save a script like this as an .ahk
file and run it. That should set up the layout on Windows.
After completing the setup, I started the learning process. Within three weeks, I achieved 50+ WPM. But I wasn’t satisfied; I was determined to surpass my old QWERTY score. However, when I reached 70+ WPM, my progress began to slow. I think this was partly because I started feeling somewhat disheartened by the practical limitations.
One major issue was the inability to easily use Colemak-DH on other computers. The computer lab at my university, for instance, ran an old version of Ubuntu that didn't offer the Colemak-DH layout—only standard Colemak. This made coding on those PCs a struggle. Similarly, some labs had Windows OS, and for those, I’d have to install AutoHotKey and run the script each time, which quickly became a significant hassle.
At that time, I told myself that I had chosen this path and had to stick with it; these were the consequences I needed to accept. It even stung to remove "90+ WPM typing speed" from my CV.
A few months later, I received an interview call. I passed the first stage, but the second stage required me to code an API integration on a Windows system provided by the company. I knew I could implement the solution within an hour, but my first thought was a wave of panic: "Oh no! How will I code efficiently on QWERTY?" The interviewer was watching me, and I was struggling badly with the default layout.
When the interviewer briefly left the room, I seized the moment: I quickly installed AutoHotKey, ran my DH layout script, and got to work. When he returned, I was coding smoothly, my typing speed was decent, and everything appeared normal. In that instant, though, a voice in my head whispered that switching layouts might have been a poor choice.
Fortunately, the interviewer didn't realize I had used external software; in my country, this could have negatively impacted my interview outcome. Despite this close call and the mounting frustrations, I continued using the Colemak-DH layout.
Another time, I was about to teach some friends about FastAPI at their home. Before we could start, I had to go through the setup steps for my Colemak layout on their computer. To my utter surprise, even with their limited technical knowledge, they just watched me and then installed AutoHotKey themselves to follow along! I was a bit shocked, but yes, that actually happened.
Throughout this period, I've also struggled to improve my WPM. On QWERTY, I had peaked at 94 WPM. With Colemak-DH, it took months of concerted effort just to get to 80+ WPM. It's been incredibly hard for me to adapt fully and break through to the 100+ WPM speeds I had hoped for. In that specific goal of speed improvement beyond QWERTY, I feel like I've failed.
But here’s the thing: I absolutely LOVE the Colemak-DH layout. There's no doubt in my mind about its comfort and efficiency. The difficulty has been adjusting to a world largely unprepared for it, a world that operates on different standards.
I had steeled my mindset to accept these consequences, to embrace the challenges. But, if I'm honest, I feel like I’ve FAILED. I truly feel like I’ve failed in making this work seamlessly in my life.
I’m sorry, Colemak-DH.
Subscribe to my newsletter
Read articles from Romjan D. Hossain directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Romjan D. Hossain
Romjan D. Hossain
Exploring new/old technologies every day. Its just amazing.....!