Salut,
Depuis un petit moment je me suis mis dans la tête de faire fonctionner un raccourci de mon clavier de mon ordi portable Dell qui active/desactive le touchpad.
Cependant je comprend pas trop comment faire pour faire marcher tout çà.
Car j'ai trouvé ces liens :
(1) http://lxr.free-electrons.com/source/drivers/platform/x86/dell-wmi.c
(2) https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/platform/x86/dell-laptop.c
Je comprend plutôt bien le dernier, et j'en aurais sûrement besoin plus tard car il permettra d'activer/désactiver une LED d'indication pour le touchpad.
Ensuite le premier lien, m'a l'air d'associer le code des touches à des événements. Mais dans le struct de la ligne 55 j'ai aucune info, concernant un éventuel bouton on/off pour le touchpad.
Avec xdev j'ai réussi à récupérer des infos sur le keycode:
http://pastebin.com/kpnrGctd
Pour l'instant, je vais juste essayer d'allumer/eteindre la LED, je verrais le touchpad plus tard, car ca me semble plus compliqué(entre Xorg, Xfce etc ...)
Donc je pensais ajouter mon keycode à dell-wmi.c et l'associer à un événement Touchpad (KEY_TOUCHPAD_TOGGLE d'après /usr/include/linux/input.h).
Cependant ca me pose déjà un problème, comment je fais pour modifier (1) en effet, j'imagine que ce raccourcis est unique à mon modèle de Dell et ca risque peut être de gêner d'autre personnes. Et ensuite ai-je le droit de changer un fichier comme ça, ou dois-je le faire ailleurs vu que c'est un code particulier et non commun à tout les dell
Pour la mise en oeuvre, j'imagine que je dois faire un module, et que j'y inclue ces deux fichiers(enfin leurs headers), et que je fasse une condition toute bête.
Mais comment dois-je faire pour récupérer les events sur linux ? Car je sais que je peux utiliser /dev/input/event mais directement en C je sais pas trop faire, surtout qu'il faut du coup faire une boucle infini qui filtre que entrée, j'imagine qu'il y a module qui le fait déjà non ?
Alors voilà mes questions:
- Est-ce que mon approche vous semble bonne ?
- Comment gérer l'Ajout de code pour le fichier (1) ?
- Comment récupérer les events de façon intelligente ?
Merci et désolé du pavé 