Home Row Mods
Home Row Mods
You ever think about how often you move your wrists off of the home row? You ever hunt and peck? You ever get to the end of the workday and you think about how bad your wrists hurt?
What if I told you that that you could fix this all with just a little bit of keyboard hackery?
Its a lame sales pitch, but a fucking genius idea.
It goes roughly like this: you know how you press a button on your keyboard. What if when you held the button down a little longer, it did something different. This idea is brain breaking for a little while, but turns out to be extremely useful when you use modifier keys a lot. Think about how many times you press the shift key. Its slow. You have to move your hand quite a bit. Its rather inconvenient.
So, take the home row: asdf & jkl; and map them like this:
- a -> super
- s -> alt
- d -> shift
- f -> control
- j -> control
- k -> shift
- l -> alt
- ; -> super
essentially, your keys are loosely organized by how often you use each of the keys.
One of the problems: in vim, you hold down the j and k keys, so essentially you need a way to break out of that.
Solving the vim tap-j problem
Home row mods are super cool, but they absolutely slow down your typing speed, it adds the smallest amount of
latency in your key presses. Not that big of a deal, you gain the speed back in not having to move your hand
to stretch to modifier keys.
The main problem I’ve had is the hold-j problem.
For this, you need to know a little bit about vim. I’ll probably write up a personal page for this at some point, but it
mainly boils own to this: almost all interactions with the program require interaction via keycodes. Want to go up one
line? You press j and your cursor moves up. You want to keep moving up in the lines? You hold j. Here lies the problem:
we’ve remapped the hold-j behavior to a modifier key, (I’ve chosen CTRL) and so, I cant hold down the key to consistently
scroll. And I dont want to type a j key constantly.
For this, we need Quick tapping, quick-tap-ms: <200>;