keyfuzz(8)
π KEYFUZZ(8) π
ok so bestie, welcome to keyfuzz β the System Manager's Manual page you didn't know you needed, but lowkey do.
β¨ NAME β¨
keyfuzz β Modify keyboard scancode tables of the Linux input layer π
π¦ SYNOPSIS π¦
keyfuzz [options]
that's it. that's the whole invocation. no positional args, no drama. periodt.
πΈ DESCRIPTION πΈ
okay so here's the tea: you use keyfuzz to manipulate the scancode/keycode translation tables of keyboard drivers that support the Linux input layer API β aka the "evdev API", iykyk. literally its whole personality is remapping your keyboard's brain. no cap. π§ β¨
π OPTIONS π
-g,--getβ dump the current scancode translation table of the device to STDOUT. it's giving "screenshot but for your keymap" πΈ-s,--setβ merge the translation table you pass through STDIN into the current translation table of the device. feeding it keys so it can feed you keys, iconic π₯-i,--infoβ show some information about the specified device. just a lil vibe check π- *
-d,--device=DEVICE* β use the specified event device. the virtual file/proc/bus/input/deviceslists all input devices available on the local system. (Default:/dev/input/event0) π -v,--veboseβ enable verbose mode. if used together with--set, all translation tables changes are printed to STDERR. yes bestie, the flag is spelled--vebosein the man page and we are respecting it fr fr, no correcting, we don't do that here ππ«Ά-h,--helpβ show help. our fave low-stakes option π-v,--versionβ show version. and yes,-vis listed twice on this page β once for--veboseand once for--versionβ and honestly? not me noticing that. very main character energy of the original author. keeping it exactly as written, amen π
ngl, that double -v is a whole situation. we are simply reporting it, not fixing it. no inventing, no merging, no "helpful" edits. π
β TRANSLATION TABLES β
okay this is the part where you actually learn the format, so listen up bestie:
the scancode/keycode translation tables β as read from STDIN or written to STDOUT β are formatted like this:
- lines beginning with a hashmark and empty lines are ignored
- all other lines have to contain a scancode and a keycode number separated by white space
- the numbers may be specified either in decimal or in hexadecimal notation
- in the latter case, a
0xhas to be prepended
so a line is basically <scancode> <keycode> and the parser is chill about hex as long as you bring the 0x. π
and here's the workflow, chef's kiss:
- save the current table by passing
--gettokeyfuzzand storing its output in a file - restore the table by passing the contents of that file back to
keyfuzzwith--set
backup and restore, but make it keyboard. obsessed. π§β¨
π AUTHOR π
keyfuzz was written by Lennart Poettering <mzxrlshmm (at) 0pointer (dot) de>.
keyfuzz is available at http://0pointer.de/lennart/projects/keyfuzz/ β go show some love, the link is literally right there π«Ά
π COMMENTS π
This man page was written using xmltoman(1) by Oliver Kurth. respect the craft, fr fr. π
and that's the whole page, bestie! this one came from the Manuals collection, User manual section, and it's keyfuzz(8) β so if you ever need to find it again, that's your receipt. slay, go remap something, and remember: back up your table first ππ
π¦ where this page comes from
- nixos 26.05: keyfuzz 0.2
- nixpkgs unstable: keyfuzz 0.2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms