Aujourd'hui j'ai fait une install toute fraîche de F31 KDE sur mon Qosmio, j'ai repris totalement le contrôle par la télécommande IR puisque j'ai lu des trucs à ce propos sur le sujet.
Je n'ai pas installé LIRC cette fois, tout ce fait avec le seul paquet
v4l-utils. La télécommande est directement mappée sur des touches clavier, donc la théorie veut que ça peut marcher pour tout programme assez facilement.
Les dépôts RPM Fusion sont installés sur mon système, étant donné que j'ai besoin de Kodi.
J'ai commencé par mettre à jour le système, puis reboot:
dnf upgrade --refresh && reboot
Ensuite install des paquets dont j'ai besoin:
dnf install v4l-utils kodi
Je lance
ir-keytable (fourni par
v4l-utils) pour tester la config native du récepteur IR:
ir-keytable -t
Avec les scancodes qu' me retourne quand j'appuie sur les boutons de ma télécommande, je peux comparer rapidement si une config existe déjà (
/lib/udev/rc_keymaps/*.toml, par exemple pour le bouton "OK":
cat /lib/udev/rc_keymaps/*.toml | grep KEY_OK
Les fichiers keymaps ont une section scancodes qui se présente de la forme:
0x11 = "KEY_OK"
On a donc la valeur du scancode (par défaut en octal, mais ici en héxadécimal puisque préfixé de "0x") à gauche et à droite la correspondance avec l'action du bouton.
La suite: créer un fichier keymap pour correspondre à la télécommande (à moins d'avoir la chance qu'elle soit prise en charge nativement). J'ai copié un des fichiers keymap pour créer celui pour ma télécommande (une Thomson RCT311AFM1, en mode TV). Le fichier créé doit être placé dans
/etc/rc_keymaps/ et avoir l'extension
toml. Le fichier ne doit pas contenir de scancodes en double, ni de codekey non défini (par exemple "KEY_PURPLE", que j'ai essayé puisque "KEY_RED", "KEY_GREEN", "KEY_YELLOW" et "KEY_BLUE" existent, et que ma télécommande a tout ces boutons).
Mon fichier est le suivant:
[[protocols]]
name = "Thomson RCT311AFM1"
protocol = "rc-6"
variant = "rc-6-0"
[protocols.scancodes]
0x00 = "KEY_NUMERIC_0"
0x01 = "KEY_NUMERIC_1"
0x02 = "KEY_NUMERIC_2"
0x03 = "KEY_NUMERIC_3"
0x04 = "KEY_NUMERIC_4"
0x05 = "KEY_NUMERIC_5"
0x06 = "KEY_NUMERIC_6"
0x07 = "KEY_NUMERIC_7"
0x08 = "KEY_NUMERIC_8"
0x09 = "KEY_NUMERIC_9"
0x0d = "KEY_MUTE"
0x10 = "KEY_VOLUMEUP"
0x11 = "KEY_VOLUMEDOWN"
0x20 = "KEY_CHANNELUP"
0x21 = "KEY_CHANNELDOWN"
0x58 = "KEY_UP"
0x59 = "KEY_DOWN"
0x5a = "KEY_LEFT"
0x5b = "KEY_RIGHT"
0x5c = "KEY_OK"
0x6d = "KEY_RED"
0x6e = "KEY_GREEN"
0x0f = "KEY_YELLOW"
0x70 = "KEY_BLUE"
0x0c = "KEY_POWER"
0x0a = "KEY_BACK"
Les tests: on peut commencer par d'abord tester le fichier:
ir-keytable --test-keymap <keytable>
Mais de toutes façons, avant de le charger,
ir-keytable le teste.
Le test de la keymap:
ir-keytable -c -w <keymap>
L'option "-c" permet de décharger les autres configs (qu'on aurait pu charger avant), et "-w" charge notre keymap.
Ensuite on lance de nouveau le mode test:
ir-keytable -t
Pour finir, il faut activer ça de façon permanente (sinon ça saute au reboot). Il faut ajouter une ligne dans
/etc/rc_maps.cfg avec le nom du fichier keymap qu'on a créé, pour moi:
* * Thomson_RCT311AFM1.toml
L'amélioration par rapport à ma config avec LIRC, c'est que l'OSD s'affiche (quand je modifie le volume par exemple).
Reste plus qu'à voir pour gérer le bouton "Power", et si possible de réussir à lui faire démarrer le PC quand il est en veille. Ça doit être possible, puisque la télécommande d'origine du PC pouvait même démarrer le PC complètement éteint avant (quand j'avais encore Vista puis 7 installé), mais plus depuis l'install de Fedora. Je suppose que ça doit être un paramétrage lié à l'ACPI, et ce paramétrage doit rester mémorisé par le BIOS. Mais si c'est bien ça, il se pourrait que ça soit pas bien simple à faire, il faudrait de solides connaissances en ACPI et dans son langage.