惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
博客园 - 聂微东
IT之家
IT之家
The Cloudflare Blog
L
LangChain Blog
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
G
Google Developers Blog
T
The Blog of Author Tim Ferriss
博客园 - 叶小钗
I
Intezer
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
ThreatConnect
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
小众软件
小众软件
T
The Exploit Database - CXSecurity.com
H
Help Net Security
T
Tenable Blog
WordPress大学
WordPress大学
F
Future of Privacy Forum
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
NISL@THU
NISL@THU
The Register - Security
The Register - Security
A
About on SuperTechFans
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MyScale Blog
MyScale Blog
Malwarebytes
Malwarebytes
博客园_首页
T
Threatpost
C
CERT Recently Published Vulnerability Notes
Know Your Adversary
Know Your Adversary
T
Threat Research - Cisco Blogs
V
Vulnerabilities – Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
Blog — PlanetScale
Blog — PlanetScale
Recorded Future
Recorded Future
大猫的无限游戏
大猫的无限游戏
K
Kaspersky official blog
月光博客
月光博客
Jina AI
Jina AI
S
Securelist
Hugging Face - Blog
Hugging Face - Blog
G
GRAHAM CLULEY
腾讯CDC
S
Secure Thoughts
V
V2EX - 技术

Lobsters

Fully in-browser container builds Nix's Substituter List Is Not a Routing Table What are you doing this week? Scoped Error in Rust Lambda on Lambda: Serverless Haskell on AWS | Blog Announcing feed-repeat v1.0 Scaling Akvorado BMP RIB with sharding EYG news: A host of CLI improvements, new guides and new effects The Eternal Sloptember JS Crossword C array types are weird; and related topics Flatpak will depend on systemd – OSnews Migrating from Go to Rust | corrode Rust Consulting Building Pi With Pi abyss * your_dotfiles_are_not_a_distro Vivado Licensing Options How my minimal, memory-safe Go rsync steers clear of vulnerabilities From AFSK to Goertzel the entropy layer of a wavelet codec, on its own 10,000 Lines Later: When a Tool Became a Compiler - Rob Durst - Gleam Gathering 2026 Debian SE Linux and PinTheft fht-compositor: A dynamic tiling Wayland compositor A Network Allow-List Won't Stop Exfiltration — André Graf Does bulk memmove speed up std::remove_if? (No.) What is Git made of? wake up! 16b 声明式部分更新 | Blog | Chrome for Developers Don't Roll Your Own ... Dianne Skoll's Web Site - Remind “Long-Term Support” doesn’t mean what you think The Architecture of Open Source Applications (Volume 1)Berkeley DB Pardon MIE? - ironPeak Blog seriot.ch It's time to talk about my writerdeck hershey Cuneiforth: A Forth for your Chifir z386: An Open-Source 80386 Built Around Original Microcode waylandcraft - Minecraft Mod On the <dl> HP QuickWeb, Singular And Pointless mvm - a fast virtual machine for Go That one time I used Go panics for flow control A new suite of modern tools coming for editing and publishing RFCs From the Tabletop… The Digital Antiquarian .NET (OK, C#) finally gets union types🎉: Exploring the .NET 11 preview - Part 2 Revised^7 Report on Scheme, Large: Procedural Fascicle Draft is now public The Soul of Maintaining a New Machine - Third Draft | Books in Progress
Switching to Colemak | Pedro Alves
pta2002.com · 2026-05-25 · via Lobsters

I’ve always been a fast typer, easily reaching the 100wpm mark when doing a typing test, so I’ve never really felt like my typing speed was holding me back. What I never really learned to touch-type properly, and so I’ve accumulated some rather nasty habits that have been leaving me with aching fingers after a lot of typing. In partiular, despite being right-handed, I do almost all of my typing with my left hand, and basically only use my pinky in my right hand (honestly, it’s a wonder I ever managed to hit those speeds…)

So I wanted to learn to touch type properly and get rid of these habits that were on track to giving me RSI. But despite how many times I tried forcing myself to use the “correct” fingerings for my keyboard, they never stuck, and I kept coming back to my awful keyboard posture.

Looking more into touch typing and ergonomic keyboards, I decided to try switching to a better keyboard layout than QWERTY. I’d tried this in the past with Workman, but it never stuck, and I wanted to give it another shot. Looking through various reddit threads and blog posts lead me to the [Colemak-DH], which is supposed to be a better variant of the Colemak keyboard layout without some of the drawbacks of Workman.

The Colemak-DH keyboard layout

I am writing this blog post as a sort of diary as I get used to switching to this new layout, so let’s get started!

Day 0

Typing speed: 22wpm

So as to not go in cold turkey and leaving me unable to work until I got used to the new layout, I started out by using keybr.com, which teaches you the keyboard layout progressively by starting with the home row and unlocking the next letter once you’re accurate enough with the existing letters.

Screenshot of keybr.com. Pretend I took this on day 0 and not much later when I already typed pretty good.

It has the very useful features of emulating a keyboard layout, which meant I could try out Colemak-DH without having to install it on my computer. Another nice feature is that it shows the keyboard at the bottom, color-coded with the correct fingers, which is a great reference while I don’t memorize the layout.

I found the progression a bit slow, and it took me 4 days to unlock all letters doing ~20 minutes per day per day, but it definitely helped me get a grip on the layout.

Days 1-4

Typing speed: 45wpm

Over these days, I slowly worked over the lessons on keybr, without switching my main keyboard from QWERTY. In the end, I got a decent typing speed, but I’m still making a lot of mistakes, with an accuracy rate of around 95%. That might not sound like a lot, but it means one in twenty letters is incorrect, which leads to a lot of corrections and a signifficant hit to my speed.

Day 5 - Actually using Colemak

Typing speed: 50wpm

Ok, enough exercises, let’s actually use Colemak as my keyboard layout.

Installation

My work machine is a Macbook Pro, and while macOS does come with a Colemak layout, it does not have the DH mod by default, so I needed to install it. There are layout files available in ColemakMods, and they can be installed with homebrew!

brew install --cask colemak-dh # Install Colemak-DH

After this, I needed to sign out and back in to have the layout show up in the settings. I set it up so that the QWERTY layout was still set up, and I could switch between them using the globe key or Ctrl+Space.

I did not move around the keycaps on my keyboard. This is my work laptop, and Apple’s keycaps don’t really seem designed to be removed, so I’m rather afraid of breaking them. I’ll probably print a layout reference to keep around.

Experience report

So, at the end of the first day using Colemak, I’ve got a lot of pain points. The QWERTY muscle memory is pretty ingrained, and it takes a bit for my brain to “switch” and I start writing a little faster. I’m doing relatively fine with the letters at the end of the day as I’m writing this (albeit a lot slower, with all the corrections I’m having to do!), but it turns out you use a keyboard for a lot more than just writing letters…

Keyboard shortcuts

I thought this would be a bigger pain point than it actually was, honestly! Things like copy, paste, undo, have all been fine after a few attempts, though I do keep opening new browser windows (Cmd+N) when I meant to select the URL (Cmd+L). Since these are mostly mnemonics based rather than position based, I think in a few days I’ll adapt quick enough.

Modifier keys

This isn’t really related to Colemak, but as I’ve mostly managed to use the proper fingers for pressing letter keys, I realized I basically only use the right shift key and that makes typing some capital letters on the right hand side really tricky if I am to always use the correct finger. Since I’ve been relying on the finger positions for remembering the layout, trying to use a different finger for uppercase letters because my pinky is occupied has resulted in considerably more typos in uppercase than in lowercase.

I’ve seen online the suggestion to use sticky keys, but for now I’m trying to be mindful to use the shift key on the opposite hand as the one typing a letter.

Symbols

What’s the issue here, you might ask? Alternative keyboard layouts typically don’t move around the symbol keys, and Coleman-DH mostly doesn’t either!

Well, the issue is, I’m used to typing with a Portuguese keyboard layout, and the Coleman layout I installed is based on the US one. The letters are all in the same place, but all the symbols are on different place!

I thought I’d get used to this relatively quickly, since I’m relatively used to the US layout due to setting up unconfigured Linux installs and already having gotten used to new symbol locations when I moved to a Mac from a PC, but holy shit, I’m probably typing like 10% of symbols accurately by this point, it’s being painful!

For whatever reason, in Portugal at least, Macs have fairly different symbol locations from PC keyboards. I don’t know if this is a thing in other countries, but after a little time getting used to it, I can safely say I prefer the Mac layout, considering the PC layout wastes a whole key with « and », which I don’t think I have ever used if not for complaining about the wasted key! (Supposedly that’s how you’re meant to do quotations in Portuguese, but everyone, books included, uses regular quotes.)

I’m also missing accents and ç, which are quite necessary for writing correct Portuguese, so I’ll probably end up creating a new custom Colemak-DH layout with portuguese symbol keys.

I did find a layout for Brazilian Portuguese which seems like it’d work, but I have no idea how to get that onto a format which works on a Mac.

Vim

I use vim keybindings everywhere (I’m writing this in Neovim!), and the hjkl keys are specifically chosen due to being in the home row in QWERTY keyboards, but they’re all over the place in Colemak, which is making using it a rather miserable experience (I’ve been using the arrow keys for now, which… yuck!). I’ve considered rebinding them, but they end up as mnei on Colemak, and the e and i keys are rather important bindings I use all the time, and those are mnemonics based (end of word and insert mode), so I don’t think it makes much sense putting them elsewhere!

Colemak.org suggests using an “Extend” layer, which I’ll definitely explore in the future!

Random other stuff

I’ve been realizing I type a lot of stuff purely from muscle memory and not by thinking of the actual word. I’m noticing this because I’ve had OK accuracy with writing text (around 98% now) but absolutely abysmal accuracy with things such as command-line commands (I keep doing ds instead of cd and nn insead of jj!). Presumably, like with keyboard shortcuts, this will fade in a few days.

One thing I’ve had an awful difficulty with is passwords. Since I can’t see what I’m typing, I’m making all sorts of typos, which isn’t helped by the fact that all my typing of passwords is completely muscle-memory and I can barely remember what the characters actually are. I’ve just been switching back to QWERTY for that for now — after a few seconds or so, I’ve been quickly “clicking” back into QWERTY and writing at full speed.

I’ve also kept QWERTY on my phone. I mostly rely on autocorrect and swipe-writing, and it’s a completely different muscle memory to writing on a computer, and I’ve had no issue with it so far. Also, I suppose Colemak on a phone keyboard wouldn’t actually be solving any ergonomics issue, considering you’re only typing with your thumbs and not every finger except your thumbs. Presumably an “ergonomic” mobile keyboard wouldn’t look very much like a regular PC keyboard anymore (which only look like they do to imitate typewriters!), and would be closer to something like T9 with some extra keys and gestures.

Also, I’ve been doing so many typing lessons I’ve been getting some kind of Tetris Effect with typing… I’ll see a word and keep imagining myself typing it!

Days 7-8

Typing speed: 65wpm

This was the first time actually using Colemak full time, without switching back to QWERTY at all. I’ve been getting faster and more accurate, and without tripping up nearly as much. I’m still slower than I was using QWERTY, but am firmly within average person territory now, and am mostly just typing slower, but not typing wrong.

I’ve also gotten better about the symbols and using shift keys. I’ve been doing exercises on monkeytype with the “punctuation” setting, which is handy to get used to typing these. There’s also a way to have monketype enforce using the opposite shift key, which has been helping get used to that!

At the same time, I’ve mostly managed to avoid editing the layout, since I can type accents using Option/AltGr. For now that’s been good enough, so I’ll probably keep the layout as-is.

Days 9-∞

Typing speed: 85wpm

It’s been around two weeks since I started with this, and I can confidently say I am fastly becoming a way better typist. Hell, I’m improving ~10wpm every day and am close to my original speed! Where I’m still struggling most is with accuracy when I am holding modifier keys, since I tend to shift my hands around a bit and need to find the little ridges in the home row keys to get my fingers back into position. Still, I can definitely tell that Colemak is a much better keyboard than QWERTY simply due to the fact that I can actually keep my hands on the home row.

As for writing in Portuguese, it’s clearly not optimized for it, but that’s fine — it’s not worse than QWERTY, and on my computer I mostly write in English anyway.

I’ve been using the Extend layer and it’s been really nice. In short, I can hold Caps Lock + some other key to do actions (such as go back in a page, or press the arrow keys, or scroll the page!), and it’s so convenient to not need to leave the keyboard for a lot of stuff. I’ve even mostly gotten used to using Vim with it!1 This is applicable even without Colemak, so I recommend reading this article about it to learn more.

I think this is all I have to say! I’m still improving, but I have no doubt I’ll be able to surpass my original typing speed soon. If you spend all your time typing like me, and can handle the productivity hit for a few days, I recommend giving it a shot!

My progress on Monkeytype, from 35pm to 80wpm!


Thanks for reading! No AI was used to write or edit this post. Sorry if there are mistakes, as you can see, I’m still struggling to type properly :)

Footnotes

  1. Yes, I am technically committing the mortal sin of using Vim with the arrow keys… although that’s a heck of a lot nicer when the arrow keys get brought up to the home row :)