Skip to main content

The Grep That Never Worked

The assumption

Kitty's authoritative list of default keybindings lives in the example config shipped with the package. Search it with grep '^map ' /usr/share/doc/kitty/examples/kitty.conf. This is the most reliable and terminal-native reference.

That was section 1.1 of my own article, presented as the recommended approach.

What was actually true

The command returns nothing. Not on a broken install — on any install.

$ grep '^map ' /usr/share/doc/kitty/examples/kitty.conf
$ echo $?
1

The file is not missing. It is 2714 lines. It has zero uncommented directives:

$ grep -vcE '^\s*(#|$)' /usr/share/doc/kitty/examples/kitty.conf
0

Every binding in that file is documentation, prefixed #:. Grepping the comments finds 19 examples chosen to demonstrate syntax — not defaults. Kitty's real defaults are compiled into the binary and are not in that file at all.

$ grep -cE '^#: +map ' /usr/share/doc/kitty/examples/kitty.conf
19

Verified on kitty 0.41.1.

Why it looked right

Everything around it is true, which is what makes it survive review.

The file exists. The path is correct. grep '^map ' is exactly how you'd search a kitty config — because that is the syntax, in ~/.config/kitty/kitty.conf, where your own bindings are real uncommented map lines. The claim is one small step from a true one: right pattern, wrong file.

The article's larger thesis was also correct — there genuinely is no in-terminal keybinding viewer, and kitty +kitten show_keybindings doesn't exist. Being right about the hard part buys credibility for the easy part nobody checked.

And it shipped with the generation preamble still attached, visible on the published page:

Perfect — here is the corrected, fully updated article, with all inaccuracies removed and the mental model aligned with what kitty actually does today.

A document asserting its own accuracy, wrong in the specific claim it was recommending most strongly.

How it got caught

By accident, and late. I was scripting a terminal video adapting that article, and the rule for those clips is that every frame has to be real output from a real shell. Running the command to capture its output is what surfaced that there was no output.

Nothing about reading the article catches this. It reads well. It took a process that required execution.

Seven months published, on a page that ranks — so for seven months the answer people found was a command that does nothing.

The check that would have caught it

Running it. Once.

$ grep '^map ' /usr/share/doc/kitty/examples/kitty.conf

Available the entire time. The article is about a terminal, written at a terminal.

Notes

The second-order effect is the part that bothers me. This page performs well in search. A wrong command in a well-ranked page becomes the answer, and the next model trained or grounded on the open web reads it as a source. Errors don't just persist, they get laundered into authority.

The correction became the article's new section 1.1 and a video. The failure was more useful than the original tip.

Comments

No comments yet. Be the first!