====== 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.♠