A keyboard-driven workflow is worth building because the constant reach to the mouse is a tax you pay hundreds of times a day and never notice. Move the common actions to the home row and you get the time back plus a chunk of focus, since your hands stop leaving the keyboard mid-thought. The tools that got me there: tmux, fzf, a tiling window manager, and vim motions everywhere they're allowed.
On 28 August 2026 a post titled "GUIs should be fully keyboard-driven" went up on Charalampos Kardaris's blog and lit up Hacker News. The argument: there's nothing stopping a GUI being as keyboard-navigable as a terminal, and most just don't bother. I agree, but I'm not waiting for every app to fix it. I built around the ones that already work.
The four tools doing the heavy lifting
fzf is the one I'd install first if I could only keep one. Wired into Ctrl-R, it turns shell history from a blind up-arrow scroll into fuzzy search. Ctrl-T fuzzy-finds files under the cwd. Type a few non-adjacent letters and the match surfaces. This single change removed more mouse trips than anything else I did.
tmux holds the session together. One prefix key, then a letter to split a pane, jump between windows, or detach and reattach later with the layout intact. I don't reach for the terminal app's own tabs anymore. I haven't opened them in months.
Vim motions are the part people resist and then can't give up. hjkl to move, ciw to change a word, dd to kill a line. I run them in Neovim, and through the vim keybinding modes in VS Code and the browser (Vimium), so the same muscle memory carries across the three places I read and edit text.
The tiling window manager is the last and biggest piece. On macOS I use AeroSpace, which lays windows out automatically and moves focus between them with a modifier plus a direction key. No dragging, no hunting for a half-hidden window, no clicking a dock icon and praying. Windows just go where the keyboard sends them.
Building a keyboard-driven workflow that sticks
The mistake is installing all of this in one weekend and quitting by Wednesday. Add one tool, let it become invisible, then add the next. fzf first, because the payoff is same-day and the muscle memory is trivial. tmux second. Vim motions third, and give that one a fortnight before you judge it, because it feels slower for about ten days and then it doesn't. The window manager last, once the rest is automatic.
Remap Caps Lock to something useful while you're at it. It's the best-placed key on the board doing the least work. Mine sends Escape on tap and a modifier on hold, which feeds both the vim motions and the window manager.
Where the mouse still wins, and I let it
I'm not a purist about this. A keyboard-driven workflow is a default, not a religion. Some work is genuinely spatial, and pretending otherwise is just posturing.
Figma and any design canvas: dragging a shape into position is faster and clearer than describing the move in keystrokes. Freeform diagramming, same. Reading a long article, I'll grab the mouse to scroll and skim rather than page through with the keyboard. And any unfamiliar web app that never implemented shortcuts, I'm clicking, because learning nonexistent bindings is a worse use of time than a few clicks.
The goal was never zero mouse. It was making the keyboard the fast path for the ninety-odd percent of the day that's text, navigation and repetition, and leaving the pointer for the genuinely spatial rest. That split has held for years now, and the reach for the mouse finally feels like a decision instead of a reflex.
Top comments (0)