====== Piloter xbmc avec une télécommande USB (HID) ======
===== xbmc, prérequis =====
[[:xbmc|xbmc]] est un logiciel afin de transformer votre ordinateur en [[:media_center|media center]]. Afin de piloter ce type de software, il est possible d'utiliser des claviers ou télécommandes. Un problème survenant assez souvent est l'absence de correspondance entre les touches permettant de naviguer à travers xbmc et les touches de votre télécommande. Cet article décrit donc les différentes étapes nécessaires pour utiliser un périphérique HID avec xbmc (ou tout autre logiciel media center).
===== Utilisation d'un autre périphérique HID =====
Afin de pouvoir naviguer à travers xbmc en utilisant autre chose qu'un clavier (télécommande ou autre périphérique HID), il est nécessaire de remapper les touches de votre matériel HID pour qu'elles puissent correspondre à celles de xbmc [[http://manuel.xbmc.fr/index.php?title=Contr%C3%B4les_Clavier|(liste ici)]].
===== Désactiver les raccourcis multimédias d'Ubuntu =====
Nombreuses télécommandes ou autres périphériques ont des touches multimédia qu'Ubuntu utilise directement (tel qu'augmenter/diminuer le son) et qui sont aussi utilisés par xbmc.
Afin de les désactiver, allez dans Système > Préférences > Raccourcis clavier et désactivez tous les raccourcis "sons"
===== Installer evrouter =====
xbindkeys ne permettant pas de capturer les évènements HID lorsqu'xbmc est en plein écran, nous utiliserons [[http://www.bedroomlan.org/projects/evrouter|evrouter]].
Pour l'installer (32bits):
wget https://debian.bedroomlan.org/debian/pool/main/e/evrouter/evrouter_0.4_i386.deb
sudo dpkg -i evrouter_0.4_i386.deb
===== Capture d'évènements HID =====
Une fois evrouter installé, il vous faut déterminer où se situe votre périphérique HID dans **/dev/input/by-id/**. Attention, pour un périphérique HID peut se trouver plusieurs input devices. Ceci est expliqué par la présence de deux parties (par exemple un clavier normal & un clavier multimedia) lors de l'énumération HID du périphérique. Il vous faudra donc effectuer l'opération décrite ci dessous plusieurs fois.
Maintenant il s'agit de détecter les touches de votre périphérique:
evrouter -d /dev/input/by-id/votre_input_device
Pour chaque touche pressée, vous obtiendrez une sortie que vous devrez noter du genre:
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/115 "fill this in!"
===== Créer le fichier de configuration evrouter =====
Une fois toutes les touches déterminées, créez un fichier **.evrouterrc** situé dans votre home. Puis, avec l'éditeur texte de votre choix, remplissez le de cette manière (**avec les informations que vous aurez trouvé au paragraphe précédent**):
#Vol up
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/115 "XKey/+"
#vol down
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/114 "XKey/-"
#play
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/207 "XKey/p"
#prev
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/168 "XKey/r"
#next
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/208 "XKey/f"
#stop
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/166 "XKey/x"
#pause
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/119 "XKey/space"
#info
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/130 "XKey/m"
#list
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/362 "XKey/Tab"
#prev2
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/165 "XKey/comma"
#next2
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/163 "XKey/semicolon"
#page down
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/403 "XKey/KP_Down"
#page up
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/402 "XKey/KP_Up"
#return
"Chicony USB Wireless HID Receiver" "/dev/input/by-id/usb-Chicony_USB_Wireless_HID_Receiver-event-joystick" none key/158 "XKey/BackSpace"
Remarquez à la fin de chaque ligne le **XKey/**. En effet, evrouter permet d'effectuer plusieurs actions lorsque la touche spécifiée est appuyée (man evrouter pour plus de détails). La commande XKey/ permet de simuler l'appui d'une touche de clavier. Pour obtenir la liste des touches disponibles:
xmodmap -pk
Le fichier type situé ci dessus vous donne un exemple de mapping entres les touches d'une télécommande et les touches reconnues par xbmc.
===== Lancement d'evrouter au démarrage =====
evrouter nécessite les droits **sudo** pour fonctionner. Une solution possible consiste à ajouter evrouter au fichier sudoers:
sudo visudo
dans le fichier affiché, ajoutez:
votre_nom_dutilisateur ALL=NOPASSWD: /usr/bin/evrouter
Ceci effectué, il ne vous reste plus qu'à ajouter evrouter aux programmes lancés au démarrage (avec xbmc). Pour ceci, allez dans Système > Préférences > Applications au démarrage. Ajoutez une entrée nommée evrouter, avec pour commande
evrouter /dev/input/by-id/votre_peripherique1 /dev/input/by-id/votre_peripherique2 ...
Validez, déloguez puis reloguez vous.♠