keyfuzz(8)

πŸ“¦ version 0.2, in nixos 26.05, nixpkgs unstable

πŸŽ€ 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/devices lists 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 --vebose in 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, -v is listed twice on this page β€” once for --vebose and 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 0x has 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:

  1. save the current table by passing --get to keyfuzz and storing its output in a file
  2. restore the table by passing the contents of that file back to keyfuzz with --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