kernel v5.3 will introduce a new BPF feature: loops. This makes it possible to decode IR based on raw IR. This means the keymap does not list a specific protocol or protocol decoder; for each key it simply list the pulses and spaces that make up that key.
Here is an example based on the blaupunkt remote.
So for each key, in the raw string the + denotes a pulse and the - a space. The + and - prefixes are actually optional, since the position in the string determines whether it is pulse or space. To load these keymaps, you’ll need a git ir-keytable and kernel v5.3 or later.
Having raw IR in keymaps makes them much more useful for sending IR too. So, ir-ctl now supports sending keys from keymaps. Save the above keymap to blaupunkt.toml, and you send keys like so:
ir-ctl -k blaupunkt.toml -K KEY_VOLUMEUP
This means that – as far as I know – we have feature parity with the lirc framework. However no daemon is required at all and it’s a much more modern setup.