- XBMC - Kodi will be the name of the project as of the next version (soonish) - Gotham is the current version - Presentation version is Eden - The XBMC-specific parts have been generally tested on the newest version "Gotham" - Custom keyboard mapping - UserData directory - ~/.xbmc/userdata - keymaps - example - where to find key names - wiki, ButtonTranslator.cpp, debug file (.xbmc/temp/xbmc.log) - file structure - global and windows - input methods -example of different actions in different windows - not all actions work in all window contexts - example Highlight - defaults are in /usr/share/xbmc/system - window list is also available in ButtonTranslator.cpp - Remotes - IR and RF remotes - Check for support! - MCE, iMon... - RF receivers and remote support - some receivers interpret the RF signal and send translated codes to the driver - some send the actual signal data - preferred for maximum remote compatability - it seems to be difficult to tell which type of receiver you are dealing with when looking to buy peripherals - stick with popular hardware or roll your own - LIRC, ir-core - ir-core - included in the kernel as of 2.6.33 - supports fewer devices - may "just work" - can lead to conflicts with existing LIRC configurations - ir-keytable to check if drivers loaded - presents remote as keyboard - use Keymap.xml to tweak behaviour with xbmc - can be used in conjunction with LIRC - LIRC - more flexible but more complex - can map buttons to arbitrary commands with lircrc and irexec - can be used to send mouse events from remote with - LIRC packages usually include handy testing tools - many conf files in /etc/lirc - hardware.conf or /etc/sysconfig/lirc - this is where LIRC general configuration happens - may be configured during package installation - driver setting (DRIVER=) - devinput if using kernel ir-core support - LIRC driver name otherwise (eg. mceusb) - device setting (DEVICE=) - the device on from which LIRC can receive codes - usually either /dev/lirc# or /dev/input/event# - if you don't have /dev/lirc#, check the output from `cat /proc/bus/input/devices` and look for something with a name that looks like your device I: Bus=0018 Vendor=0000 Product=0000 Version=0000 N: Name="i2c IR (Hauppauge WinTV PVR-350" P: Phys=i2c-0/0-0018/ir0 S: Sysfs=/devices/virtual/rc/rc0/input10 U: Uniq= H: Handlers=kbd event8 B: PROP=0 B: EV=100013 B: KEY=c0010 201080400000000 0 30200a000 18000004801 9e000000000000 ffc B: MSC=10 - module setting (MODULE=) - I'm not entirely clear, but seems to be the name of the kernel module for your receiver - testing: mode2 - lircd.conf - most likely, you will find an pre-set map for your remote in /usr/share/lirc/remotes - irrecord allows you to map an unknown remote - irrecord - testing: irw - tests mapping of ir codes to logical codes - Set up mappings in XBMC - Lircmap.xml - this maps LIRC names to XBMC button names - keymaps/remote.xml - controls which actions are executed when an XBMC button is pressed - as far as I can tell, remote.xml and keyboard.xml could be combined into one file with the format References: XBMC wiki http://wiki.xbmc.org Keynames http://wiki.xbmc.org/index.php?title=Keyboard.xml#Keynames Using with LIRC http://wiki.xbmc.org/index.php?title=LIRC MythTV wiki on LIRC http://www.mythtv.org/wiki/LIRC LIRC.org config guide http://www.lirc.org/html/configure.html