I’m passionate about creating efficient workflows. After several interations, I've found a layout that really works for me. It not named, should it?. The results are incredible, and I believe it's worth exploring if you're into optimizing your keyboard setup.
The biggest disadvantage of a fully custom keyboard layout was that it made my computers unusable for colleagues and friends. But I found a solution by mapping the layout at the keyboard level. A new world of programmable keyboards.
Programmable Keyboards
A new problem arose using laptop keyboards became tricky (unless i install the remapping software i created). However, this is a tradeoff I'm willing to accept since I always carry my keyboard with me. Plus i can now use other people computers provided the are on qwerty keyboard, using my sweet sweet Nuphy Air75 keyboard.
I think this is a super big win. I can now type anywhere (I mean this literally): Linux login terminals, Android TV, Sumsung Dex, and Windows login terminals. It was incredibly challenging to get my remapping software to work in these environments. Honestly, creating custom remapping software for my phone and Android TV felt like a deep rabbit hole, especially compared to just spending a few dollars on a programmable keyboard.
Current Layout
Disclaimer: The ideas shared here are not my original creation. I’ve adopted a layout designed by a programmer who was already well ahead in this journey. While I’ve made a few tweaks, the core layout remains his work. For more details, see the original discussion here.
With that said, I'll explain how to set up this layout on a NuPhy keyboard using the VIA software remapping tool. A more advanced task is to compile the QMK firmware directly for the NuPhy keyboard.
To-Do: "Compile NuPhy Air75 Keyboard source code with the keyboard as default."
Colemak Wide Mod
The wide mod introduce greater separtion between the left and right hands by moving all keys on the right-hand side of the keyboard one space to right.
The benefits of this mod are:
- Helps you achieve a more comfortable posture. Reduces the tendency to be "hunched over" the keyboard due to the compact nature of most keyboards.
- Easier to reach commonplace keys on the far right-hand side, such as Backspace/Delete and Return/Enter.
- Reduced usage of weak, right pinky finger.
- The Right Alt (or AltGr) key also becomes even easier to use as right-thumb modifier key. If you are not already using this key for accented characters/symbols, you may want to consider bringing it into use for
Still Colemak?
I’d like to say yes to wide-mode Colemak, but I’ve also remapped some keys and added more layers. I’ll dive into the details shortly.
Keyboard Layers
This layout uses 8 layers, which require 3 modifiers:
- Shift
- Level3 (often called AltGr)
- Level5
include "level3(lalt_switch)" // Left Alt
include "level5(ralt_switch)" // Right Alt
Level5 is less known but very useful, letting you add up to 200 extra characters.
Understanding the 8 Layers
Here’s how the 8 layers work:
- No modifiers
- Shift
- Level3
- Level3 + Shift
- Level5
- Level5 + Shift
- Level5 + Level3
- Level5 + Level3 + Shift
Numbers
Inputting Numbers
Numbers are on Layer3. As a rule, I avoid using numbers too often in programming—see Magic Number (Programming) for why.
- 1230 are the most common numbers and sit on the home row.
- The right-hand number pad has easy access to
-+.,#%$*/\;:=
, which are key mathematical operators.
I find this layout much more intuitive, reducing the time I spend searching for keys by 10× compared to a standard layout.
Alternative Characters (With Modifier)
Level Characters
Less common characters are assigned to Level3 and Level5 with some logic behind it:
@
is likeQ
&
is likeB
$
is likeZ
×
is likeX
~
is likeW
`
is onC
("aCute")|
is onV
("Vertical pipe")%
is onM
("Modulus")#
is onH
("Hash")<
and>
are easy to access for HTML^
is next to<
and>
+
and-
are near the numbers, with-
being the easiest to reach
Alternative Characters (No Modifier Required)
Non-Modifiable Keys
These are the most common programming characters:
?
and!
are in the corner since they often end sentences. Colemak is designed to place common sentence-ending letters on index and middle fingers, so putting these on the pinky improves movement.[
and]
are easily accessible, mirroring)
and(
. Regular Expressions use these a lot.)
and(
are reversed, making it easier to roll your fingers from pinky to index."
is easy to reach and mirrors'
.'
is opposites
, which is important for the's
bigram.{
and}
are placed in harder-to-reach areas since editors often handle them automatically.*
and/
are for the/*
bigram and are common in Vim commands.\
is in the far right corner, resemblingEscape
and working well with\t
,\n
,\r
.;
,:
, and=
are similar toReturn
, so they’re placed near the corners.Prior
andNext
(Page Up and Page Down) are in the middle, ideal for ThinkPad keyboards. They’re great for scrolling through documents and offer flexibility for run configurations._
(underscore) works well for naming objects and pairs withm_
ands_
. It’s placed to avoid the need for shifting.
Directional Keys
Moving Up, Down, Left, Right
Inspired by Vim:
- Without the "Wide Angle Mod," reaching for Level5 can be uncomfortable.
- This setup is excellent for editing regular documents.
Letters
Alphabet
- Shift +
[A-Z]
- Capslock and Enter are replaced by Shift.
- Shifts are now Control.
- This change makes Shifts 3× more comfortable and Controls 5× more comfortable.
- I didn’t miss Capslock at all. It’s better as Shift than Backspace or Escape, as long as I have those keys on Level3 or Level5.
Return
Using the Return Key
- Return is on
o
because in Vim, it works like Enter. - It might cause issues in games that don’t detect it, but it’s rare.
- It’s about 1.3× harder to use than the original position, but having Shift on the home row is worth it.
Functional Keys
Functional Keys Setup
Accessible via either modifier:
- Backspace is on the left pinky, aligning with the direction of deletion.
- Delete is on
D
, also aligning with the direction of deletion. - Escape feels best on the Ring Finger rather than the pinky.
- End and Home are inspired by a Colemak Vim configuration:
- Insert moves to the beginning of the line before editing.
- Append is on
T
, moving in the opposite direction.
Here’s how often I use these keys:
- Backspace: 10× more often than before (now on the Home Row)
- Delete: 20× more often
- Escape: 15× more often
- Home and End: 200× more often, especially when editing documents outside Vim.