ir-proxy can be used on a pipeline to process
ir-keytable output and propagate key events.
ir-proxy uses adapters (xdotool) to send key events to the display server.
ir-proxy conforms to the XDG Base Directory.
As a result, configuration file file is located:
${XDG_CONFIG_HOME:-~/.config}/ir-proxy/config.ymlCommands:
  ir-proxy config          # Display config
  ir-proxy help [COMMAND]  # Describe available commands or one specific command
  ir-proxy pipe            # React to STDIN events
  ir-proxy sample          # Print samples on STDOUT
sudo socat - EXEC:'ir-keytable -tc -D 850 -P 250',pty,setsid,ctty | sudo -u $(whoami) ir-proxy pipesudo socat - EXEC:'ir-keytable -tc',pty | sudo -u $(whoami) ir-proxy pipesudo socat - EXEC:'ir-keytable -tc',pty | sudo -u $(whoami) ir-proxy pipe --config /etc/ir-proxy/config.ymlbundle install --standalone
sudo socat - EXEC:'ir-keytable -tc',pty | ruby bin/ir-proxy pipe --config config.sample.ymlbundle install --standalone --without development test doc repl# /lib/systemd/system/ir-proxy.service
[Unit]
Description=Remote support service
PartOf=graphical-session.target
ConditionPathExists=/dev/tty20
[Service]
Type=simple
ExecStart=/usr/local/bin/_ir-proxy user
StandardInput=tty-fail
StandardOutput=tty
User=root
TTYVHangup=yes
TTYPath=/dev/tty20
TTYReset=yes
RemainAfterExit=false
Restart=always
RestartSec=1s
[Install]
WantedBy=default.target#!/usr/bin/env sh
# /usr/local/bin/_ir-proxy
export DISPLAY=${2:-:0}
set -eu
X_USER=${1}
LOGFILE=/var/log/ir-proxy.log
CONFIG=/etc/ir-proxy/config.yml
export XAUTHORITY=$(getent passwd "${X_USER}" | cut -d: -f6)/.Xauthority
touch "${LOGFILE}"
chown "${X_USER}" "${LOGFILE}"
(socat - EXEC:'ir-keytable -tc',pty,setsid,ctty | gosu "${X_USER}" -- ir-proxy pipe --config "${CONFIG}") > "${LOGFILE}" 2>&1sudo systemctl enable ir-proxy.service<!-- ~/.kodi/userdata/keymaps/ir-proxy.xml -->
<keymap>
  <global>
    <keyboard>
      <f12>ActivateWindow(Home)</f12>
      <power>ActivateWindow(ShutdownMenu)</power>
    </keyboard>
  </global>
</keymap>Disable poweroff button (power-key is handled by kodi)
edit /etc/systemd/logind.conf file
HandlePowerKey=ignoregrep -Eo 'KEY_.*' /lib/udev/rc_keymaps/rc6_mce.toml | perl -pe 's/\s+=\s+/: /g' | perl -pe 's/:\s+"KEY_/: "/'- ir-keytable on the Orange Pi Zero
- List of Keysyms Recognised by Xmodmap
- XF86 keyboard symbols
- Keyboard controls - Official Kodi Wiki
- Remote controller tables — The Linux Kernel documentation
- xdotool | Linux man page
- xbmc-system/keymaps/keyboard.xml
- xdotool list of key codes
- XF86 keyboard symbols
- List of built-in functions - Official Kodi Wiki
- Window IDs - Official Kodi Wiki
- Raspberry Pi4 and kodi as mediacenter