Keyboard
My keyboard looks something like this:
Even though the keycaps are arranged in the QWERTY layout, I actually type with the Colemak layout.Since before getting the external keyboard.
Since I no longer can remember where the keys on the QWERTY layout are, having the labels there helps in case I’m forced away from my preference. Interactions for some applications have been designed with “left hand on the keyboard, right hand on the mouse“ in mind. Despite that, I do use the QWERTY layout on my phone without issues. I suppose the interaction is different enough that it doesn’t get in the way.
Vim-Style Keybindings with Colemak ¶
About the same time I switched to the Colemak layout, I also took interest in Neovim. I have only ever used Vim-style editing with this layout so there was no need for relearning any shortcuts.
Customizability ¶
The keyboard runs qmk firmware which is highly configurable—as long as you are capable of writing C. Or you’re capable of learning to write C. The documentation is thorough and they’ve considered and already written examples for many scenarios you may find yourself in.
Home Row Modifiers ¶
I’ll refer to any key according to its place in the QWERTY layout.
Although it is a 60% keyboard, I don’t even use that many of its keys. Most of the time my fingers only traverse the keys from q to o, from a to ;, and from z to /, plus space and the key left of a which generally is caps lock, but in my case is esc. To type anything else, not among those 31 keys, I use layers and home row modifiers. Layers switch out what action tapping the key carries out—home row modifiers act as typical keys when tapped and as modifier keys when held. “Home row” because they are where my fingers usually rest. My layer switch and home row modifier keys are as follows:
- f or j activates symbol layer when held
- s or l activates number layer when held
- v and m are Command keys
- d and k are Option keys
- a and ; are Shift keys
- w, e, i, and o are Ctrl keys
- It’s useful to have some choice here for different fingers. Depending on if I need to press Option or switch to a number layer, I can pick one or the other.
- Caps Lock acts as an Esc key when tapped and as a Ctrl key when held. I really only ever use it as an Esc.
Home row modifiers can certainly be a source of dissension. I can’t say that I never mistype with them, because I do, but it’s rare enough that I don’t find it an actual hinderance. My number layer also brings backspace to the h key—this way recovering from any mistyping is easy enough.
Symbol Layer ¶
Number row is presented for location reference.
1 2 3 4 5 6 7 8 9 0
# ( ) | ^ - = *
! ` [ ] @ \ _ % $ ?
~ { } & + ' "
Here I have (,),[,],{,} in a nice formation. Everything else seems as if they are wherever they fell, but there are some neat symmetries about this layout when it comes to Vim shortcuts. # and *, that jump to previous and the next occurrence of the word under cursor, are both under ring fingers. - jumps to first character on the line above while + on the line below. _ goes to the beginning of the line while $ goes to the end.
Pressing Space on this layer gives me Enter.
Number Layer ¶
Number row is presented for location reference.
1 2 3 4 5 6 7 8 9 0
Home↑ End 7 8 9
Tab ← ↓ → Esc Bspc 4 5 6 ; Del
0 1 2 3 :
I have a whole numpad here as well as arrow keys. Even if you know and use better ways for navigation in Vim, accessible arrows are still convenient. Especially since Colemak’s h,j,k and l keys are h,y,n and u keys on the QWERTY layout—incidentally all under the right index finger. Yet I believe I use these keys about as much as the convenient arrow keys. the other important key here is backspace—frequently used so it’s close by.
Other Features ¶
Holding the >_ key on the bottom row and tapping one of the number row keys changes the default layer:
- Esc is the Colemak layout with home row mods
- 1 is the QWERTY layout with home row mods
- 2 is the standard Colemak layout
- 3 is the standard QWERTY layout
I also have a layer for mouse keys when q or p key is held. Not largely useful, however w and r allow me to scroll a window if my cursor is already on there.
My keyboard has a true Colemak layout—I use the “ABC”, or the QWERTY, input source on MacOs. Alternatively I could use the QWERTY layout on the keyboard and have the computer do the translating. The benefit of the former is that I should be able to have the Colemak layout on anything I plug the keyboard in.
Fin.