IR-KEYTABLE(1)

πŸ“¦
version 1.32.0 Β· 5 versions
, in alpine 3.24, arch rolling, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, ubuntu resolute, ubuntu stonking

πŸ’– ir-keytable β€” the manual page, but make it cute πŸ’–

okay bestie, welcome to ir-keytable(1), a User Commands page, and it's literally the swiss-knife tool to handle Remote Controllers. no cap. let's get into it πŸŽ€


✨ NAME ✨

ir-keytable β€” a swiss-knife tool to handle Remote Controllers.


πŸ¦‹ SYNOPSIS πŸ¦‹

ir-keytable [OPTION]...

🌸 DESCRIPTION 🌸

So ir-keytable is that girl. It's a tool that lists Remote Controller devices, loads rc keymaps, tests events, and adjusts other Remote Controller options. she does it all πŸ’…

And like, if you don't feel like loading a whole rc keymap? no problem. It's also possible to set protocol decoders and set rc scancode to keycode mappings directly. do it yourself energy, love that for you.

⚠️ Note: you need to have read permissions on /dev/input for most of the options to work. yes, most. so pls check your perms before you come crying to me 😭

πŸ‘‘ OPTIONS πŸ‘‘

  • -a, --auto-load=CFGFILE β€” auto-loads keymaps based on a configuration file. only works with --sysdev, so don't try to be cute with it πŸŽ€
  • -c, --clear β€” clears the scancode to keycode mappings. bye bye old mappings πŸ’€
  • -D, --delay=DELAY β€” sets the delay before repeating a keystroke.
  • -k, --set-key=SCANKEY β€” set scancode to keycode mapping.
  • -p, --protocol=PROTOCOL β€” comma separated list of kernel protocols or BPF protocol to enable. All other protocols are disabled. she's exclusive like that.
  • -e, --parameter=PARAMETER β€” comma separated list of parameters for the BPF protocol.
  • -P, --period=PERIOD β€” sets the period to repeat a keystroke.
  • -r, --read β€” read and show the current scancode to keycode mapping. show me what you got πŸ‘€
  • -s, --sysdev=SYSDEV β€” rc device to control, defaults to rc0 if not specified.
  • -t, --test β€” test if the rc device is generating events.
  • -v, --verbose β€” enables debug messages. she's telling you everything fr fr.
  • -w, --write=KEYMAP β€” reads the protocols and scancode to keycode mapping from the KEYMAP file, and enables those on the rc device.
  • -?, --help β€” prints the help message.
  • --usage β€” give a short usage message.
  • -V, --version β€” print the v4l2-utils version.

Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options. Options can be combined together. so mix and match, it's giving ✨versatile✨

πŸŽ€ the options arguments are: πŸŽ€

  • SYSDEV β€” the rc device as found at /sys/class/rc
  • KEYMAP β€” a toml keymap file with a list of protocols and scancodes to keycode mappings. The format is described in rc_keymap(5).
  • SCANKEY β€” a set of scancode1=keycode1,scancode2=keycode2.. value pairs
  • PROTOCOL β€” Comma separated list of kernel protocols to be enabled (case insensitive). Supported kernel protocols are: nec, rc-5, rc-6, jvc, sony, sanyo, rc-5-sz, sharp, mce-kbd, xmp, imon, rc-mm, other, all. It can also be a BPF protocol, e.g. manchester, pulse_distance, pulse_length. If it does not match any of these, it is taken to be the path of BPF decoder to be loaded. so if she doesn't recognize the name she just assumes it's a path, iconic behavior tbh
  • PARAMETERS β€” Comma separated list of parameters for the BPF protocol being loaded. They have the format of name=value, where value is an number.
  • DELAY β€” Delay before repeating a keystroke
  • PERIOD β€” Period to repeat a keystroke
  • CFGFILE β€” configuration file that associates a driver/keymap name with a keymap file

πŸ’… EXIT STATUS πŸ’…

On success, it returns 0. Otherwise, it will return the error code. straightforward, no drama 🫢


πŸ”₯ EXAMPLES πŸ”₯

To list all connected Remote Controller devices:

ir-keytable

To clean the keycode mapping and use a newer one:

ir-keytable -c -w /etc/rc_keymaps/nec_terratec_cinergy_xs.toml

To append more codes to the existing table:

ir-keytable -w /etc/rc_keymaps/nec_terratec_cinergy_xs.toml

To read the current scancode to keycode mapping on the second remote controller:

ir-keytable -s rc1 -r

To enable NEC protocol and load a BPF protocol, with a parameter for the BPF protocol:

ir-keytable -p nec,pulse_distance -e pulse_header=9000

If you do not know what protocol a remote uses, it can be helpful to first try with all kernel decoders enabled. The decoded protocol and scancodes will be displayed in the output:

ir-keytable -c -p all -t

πŸ’€ BUGS πŸ’€

Report bugs to Linux Media Mailing List <linux-media@vger.kernel.org>. pls be nice, they're doing their best πŸ™ˆ


Copyright (c) 2010-2014 by Mauro Carvalho Chehab.

License GPLv2: GNU GPL version 2 <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. (that's the legal version of "no refunds bestie" 😭)


⭐ SEE ALSO ⭐

The keymap format is described in rc_keymap(5).

To transmit IR or receive raw IR, see ir-ctl(1).


and that's the whole page! this was v4l-utils 1.32.0, dated Fri Oct 3 2014, and yes i know that's an old date, she's vintage, she's classic, she's ir-keytable(1) and she ate πŸ’–βœ¨ go read a remote controller's mind, ily, bye πŸ¦‹

πŸ“¦ where this page comes from