Home Row Mods

Home Row Modifiers

Modifier keys — those which, when pressed and held, alter the behaviour of other keys which you then press before releasing the modifier — can be dangerous, and not just because of unintended consequences if you trigger them accidentally.

Most modern operating systems make use of four or five modifier keys, assuming you don’t count Caps Lock. The Shift/⇧ key is universal, and then things start to differ depending on your OS. Windows has Ctrl, Alt, and of course the Windows key itself. The various Apple platforms have Control/Ctrl/⌃, Option/Opt/⌥, and the Command/Cmd/⌘ key (which used to have an Apple logo on it).

In recent years, Apple has also added the Globe key, which was previously and occasionally Fn; its purpose was initially to toggle the F-keys in the top row between hardware functions like volume or brightness control, and their more traditional F1, F2 etc keys which are rarely used on Apple devices but popular on Windows.

Finally, Linux has Ctrl, Alt, and a modifier that might be called Meta, or Super, or something else, but essentially serves the same purpose as Command on Mac and iOS, and the Windows key on the operating system of the same name.

What these modifier, or mod, keys have in common is that they’re usually clustered at the bottom-left (and often also the bottom-right) of the keyboard, two rows beneath the home keys, and a couple of units to the left or right thereof. This makes the mod keys tough to hit if you’re touch-typing, and ergonomically dangerous — particularly given that many keyboard shortcuts use combinations of multiple mod keys plus an alphanumeric key, all at the same time.

In the unlikely event that you don’t know what the home keys are, well, let me tell you: they’re just the two pairs of four adjacent keys in the middle row of the alphabetical block of the keyboard, upon which your fingers most naturally rest. In a QWERTY layout, those keys are ASDF and JKL; respectively. Your forefingers go on F and J, and so on, hence the common tactile bumps on those two keys. The idea is that you keep your fingers on those keys by default, only deviating from there to type keys in the same column with the same finger, approximately speaking, in an attempt to reduce finger-stretching as much as possible.

Mod keys — and indeed any key in an extreme position, like the number row, the F-keys, Escape and Tab, Backspace and Return, the cursors, and so on — all throw a spanner in the works because you either have to make an extreme stretch from home position to hit them, or you have to move your whole hand. Both are ergonomically risky, and they also reduce speed and accuracy.

The other problem with mod keys is that they don’t do anything on their own. You can sit and tap Shift and Ctrl as long as you like, and nothing will happen unless you’ve specifically configured your computer to behave in a non-standard way. Mod keys take up a physical position on the keyboard, are regularly needed, but do nothing unless they’re pressed in combination with other, non-mod, keys at the same time. It doesn’t take a genius to see that there’s an intriguing opportunity embedded within this suboptimal situation.

You have a home position that’s four keys in a row, per hand. You also have four main mod keys, per hand. So why not put the mod keys in the home position instead, where ASDF etc usually are?

Now, wait a second; I know it sounds utterly crazy. But I’m not suggesting you get rid of ASDF from their usual places, not at all. That would be equally eccentric, at least for most people. Recall that modifier keys do nothing on their own, i.e. they have to be held down while you press another key in order to be useful.

Now consider that alphabetical keys — like ASDF — do nothing particularly useful when held down, other than maybe repeat themselves quickly, which is barely of use to anyone.

So why not, say, make the A key behave like A when tapped, but behave like Shift when held down?

Do the same for the other mod keys and home-position letters, in each hand, and suddenly you have what’s called home row mods. They’re reachable without any finger movement away from home position, they don’t require extra physical keys, and they can be combined in an arbitrary way with any key on the keyboard because you have two sets of them.

Home Row Modifiers

Let’s say you’re an Apple user and you choose to replicate the left-to-right order of the mod keys on the left side of the keyboard: Shift, Ctrl, Opt, Cmd. Put those as hold-down actions on ASDF. Now mirror that arrangement on the right hand’s home-position keys, since the physical mod keys are mirrored around the spacebar. That means you’ve got Cmd as a hold action on F and J, Opt on D and K, Ctrl on S and L, and Shift on A and semicolon. You can readily choose a different order, of course, but let’s use this as an example.

How do you type Cmd+Ctrl+Q, which incidentally will lock the screen of your Mac or iPad? You’d hold down S and F (left hand ring and index fingers, no movement), and you’d tap Q (left hand pinkie, one unit extension/upwards), for a total of 1U of reach from home position.

Let’s try another one. How do you type Cmd+Opt+F, which probably triggers some kind of Find and Replace feature in whatever app you’re using? You can’t use your left hand’s Cmd mod because it’s on the F key, and you’ll need to actually type F. So you’d use the Cmd mod on the right hand, by holding J. It’s your own choice whether to use the Opt mod on K or D. Then you tap F, of course. Zero movement from home position.

Now, this of course raises a couple of caveats. Most obviously, you’ll sometimes need to consciously choose which hand is pressing a given modifier, in order to keep the underlying letter-key free to participate in a combination, such as a keyboard shortcut. This is more of an issue when you’ll be using a given modifier extremely often, and in combination with many different letter keys, e.g. (and i.e.) the Shift modifier. Indeed, I’d recommend keeping a dedicated, physical Shift key for capitalisation, even if you’re using home row mods generally.

The second, lesser, issue is that you’ll have an acclimatisation period regarding timing: how long you need to hold a dual-function key to produce the hold action, such as a modifier, rather than the tap action, such as a letter. The default hold-period is commonly around 200ms, and whether you’re setting this all up via a mechanical keyboard’s firmware, or a piece of software running on your computer, you’ll be able to customise that period — but you’ll get used to it shockingly quickly, I promise.

Think about the adjustment period when you hop between a manual transmission vehicle and an automatic, or a car versus a large van or truck, or even just between the clutches of different makes or classes of car. You’ll notice it for the first five or ten minutes, then you’ll adapt. It’s just like that. You’ll be getting continuous feedback, just like when you’re driving, so you’ll make the change very quickly.

Acclimatising to the home row mods themselves takes longer, but it’s a pleasant sort of adjustment. You’ll realise that you suddenly barely have to move your hands from home position to trigger almost any chord of modifiers. Your brain will really love that, and will eagerly make accommodations. Your fingers will learn how to do it before you even realise.

The order of the modifiers within the home-position keys should be a subject of some consideration. I previously mentioned the obvious approach of replicating their pre-existing relative physical positions on your keyboard, but that’s suboptimal in its own way. Your fingers have different strengths, running pretty much in order from thumb to pinkie, strongest to weakest. Equally, some modifier keys are used more or less frequently than others.

It makes good sense to put the most often-needed modifier on the strongest finger, and so on — which would entail always using your forefingers for Shift. The order of the remaining keys is operating system-dependent; on Apple platforms, Cmd would be next, then Option, then Control. On Windows, I think Control is more often needed, then Alt, and then finally the Windows key (disclaimer: I don’t use Windows, so I’m not sure about the specific ordering, but any Windows user will be able to tell you immediately). On Linux, I have no idea at all, but it may well be different again.

To use the Apple-based example I’m familiar with, then, a proper frequency-to-strength distribution would assign Control to A, Option to S, Command to D, and Shift to F, and the mirrored arrangement for the right hand. But it’s up to you. If you happen to use macOS but do most of your work in vim, you’ll probably want to give more priority to the Control key, and so forth. That’s fine too.

There’s no particular reason that the modifier keys are in their standard positions, other than that they had to be added onto the pre-existing typewriter-era alphanumeric layout, and the bottom corners were a convenient place. Given their importance when interacting with contemporary devices, they deserve both more prominence of placement and less discomfort in use.

With a modest amount of adaption, home row mods can increase your accuracy and speed of interaction while (more importantly) reducing the strain on your body caused by repetitive movements. For heavy users of keyboard shortcuts and keyboard navigation generally, becoming proficient with them can provide a similar feeling of liberty and mastery as the experience of moving from two-finger hunt-and-peck to touch-typing.