IR-KEYTABLE(1)
π 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 torc0if 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, wherevalueis 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 π
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
- alpine 3.24: v4l-utils-doc 1.32.0-r1 Β· LGPL-2.0-or-later
- arch rolling: v4l-utils 1.32.0-2 Β· LGPL
- fedora 43: rc-tools 1.32.0-1.fc43 Β· GPL-2.0-or-later AND GPL-2.0-only
- fedora 44: rc-tools 1.32.0-3.fc44 Β· GPL-2.0-or-later AND GPL-2.0-only
- nixos 26.05: v4l-utils 1.32.0
- nixpkgs unstable: v4l-utils 1.32.0
- ubuntu resolute: ir-keytable 1.32.0-2ubuntu1 Β· GPL-2.0-only
- ubuntu stonking: ir-keytable 1.32.0-5ubuntu1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms