Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| clavier_multimedia [Le 16/10/2010, 16:49] – MAJ karmic 77.201.100.60 | clavier_multimedia [Le 28/08/2011, 13:36] (Version actuelle) – devenue inutile suite à refonte pages clavier jaaf64 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | ||
| - | ---- | ||
| - | |||
| - | ====== Configurer un clavier multimédia ====== | ||
| - | |||
| - | Vous trouverez comment configurer les actions associées aux touches multimédia de votre clavier. | ||
| - | ===== Introduction ===== | ||
| - | |||
| - | Bon nombre de machines sont maintenant vendues avec un clavier dit multimédia. C' | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== Utilisation ===== | ||
| - | |||
| - | La plupart des claviers se configurent de manière relativement simple en utilisant l' | ||
| - | |||
| - | Quand un clavier multimédia possède certaines touches qui ne semblent pas fonctionner avec xev, comme le //Media Keyboard// (idem version //Elite//) de Logitech, il faut alors plutôt essayer avec l' | ||
| - | |||
| - | //Remarque : keytouch semble ne pas fonctionner sous Intrepid// | ||
| - | |||
| - | ==== Raccourcis clavier ==== | ||
| - | |||
| - | * Lancez l' | ||
| - | |||
| - | Dans cette application, | ||
| - | |||
| - | Pour effacer un raccourci clavier assigné précédemment, | ||
| - | |||
| - | Si cela ne fonctionne pas, ou si // | ||
| - | |||
| - | |||
| - | ==== Retours d' | ||
| - | |||
| - | //(Merci de préciser votre __// | ||
| - | |||
| - | //retour 1 :// Sur certains ordinateurs portables, les touches multimédias peuvent poser problème. C'est le cas de mon Acer. Si vous vous retrouvez bloqué, tuez la session X pour obtenir à nouveau le contrôle du clavier (pour rappel : touches CTRL + ALT + RETOUR EN ARRIERE en même temps pour tuer X). | ||
| - | |||
| - | //retour 2 :// J'ai aussi un ordinateur portable ACER sur lequel par contre ça marche très bien. | ||
| - | ===== Problèmes et solutions | ||
| - | |||
| - | Et voilà, j'ai un super clavier multimédia, | ||
| - | |||
| - | * Les claviers supportés en natif par XOrg sont disponibles dans le fichier « / | ||
| - | * En [[: | ||
| - | * Commencez par essayer la [[#code touche|première solution]]. | ||
| - | À ce niveau, toutes vos touches sont utilisables. Je vous conseille de redémarrer votre serveur X avant de passer à l' | ||
| - | Nous avons créé le couple scancode/ | ||
| - | * Essayez de régler les [[#les keysyms de X|keysyms de X]]. | ||
| - | ==== Code touche ==== | ||
| - | |||
| - | Si la touche n'est pas prise en charge par le serveur X, vous devez assigner un code de touche à la touche du clavier ([[# | ||
| - | |||
| - | Pour ce faire on commence par identifier les touches qui n'ont pas de keycode : | ||
| - | |||
| - | * appuyez sur les touches qui vous intéressent | ||
| - | * trouvez ensuite leur code : | ||
| - | - en interface graphique : | ||
| - | * ouvrez le // | ||
| - | * ouvrez le journal nommé « messages ». | ||
| - | - ou en console : | ||
| - | * Exécutez '' | ||
| - | * Autre méthode : exécutez '' | ||
| - | Vous devriez trouver deux lignes ressemblant quelque peu à celles-ci, vers la fin :< | ||
| - | 07:41:52 localhost | ||
| - | 07:41:52 localhost | ||
| - | </ | ||
| - | Ce qui nous intéresse, c'est le code de la touche (ici, **0xa5**) et surtout le < | ||
| - | |||
| - | On affecte alors un keycode à une touche : | ||
| - | * Dans un terminal exécutez < | ||
| - | * Répétez cette étape pour chacune des touches à programmer. | ||
| - | * Utilisez alors [[# | ||
| - | |||
| - | Pour garder ce réglage après un redémarrage de la machine, il faut rajouter la ligne de commande précédente au fichier « / | ||
| - | * [[: | ||
| - | * à la fin du fichier ajoutez la ligne en question (juste avant la ligne '': | ||
| - | setkeycodes < | ||
| - | </ | ||
| - | * « / | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ==== Explications ==== | ||
| - | === Le couple SCANCODE/ | ||
| - | |||
| - | >« Où là là c'est quoi ce truc, une expression anglaise, HORREUR... » | ||
| - | Non, ne partez pas en courant, c'est plutôt logique. | ||
| - | |||
| - | Lorsque vous appuyez sur une touche du clavier, le serveur X reçoit un « scancode ». Il envoie au noyau Linux un « keycode » correspondant au « scancode » de la touche pressée et met à disposition des applications un « keycode » (il dit à quoi cela sert, à quelle information-clé cela correspond). | ||
| - | |||
| - | Attention, tout cela se fait en dehors du noyau Linux. On reste chez X. X transforme le scancode en un keycode, mais il faudra dire ensuite au noyau linux, à quoi le keycode correspond. | ||
| - | |||
| - | En gros, | ||
| - | * lorsque vous appuyerez sur la touche, elle enverra un scancode, à X. | ||
| - | * X lui attribuera un keycode. | ||
| - | * X dira au noyau linux à quoi sert le keycode lorsqu' | ||
| - | |||
| - | Vous allez me dire, mais pourquoi X ne fait pas la relation directe entre le scancode, et l' | ||
| - | |||
| - | En fait, pour que toutes les touches soient utilisables sous X, il faut donc définir pour chacune d' | ||
| - | |||
| - | Cette méthode peut sembler étrange mais permet à X de rester indépendant de la méthode utilisée par le noyau. | ||
| - | |||
| - | === Les keycodes du noyau === | ||
| - | |||
| - | Avant d' | ||
| - | * Allez sur une vraie console par < | ||
| - | * Connectez-vous | ||
| - | * Obtenez alors la liste des keycodes en exécutant < | ||
| - | * Vous repèrerez ceux qui ne sont pas encore utilisés (keycode < | ||
| - | |||
| - | < | ||
| - | |||
| - | Vous pouvez en sauvegarder la liste avec la commande : | ||
| - | |||
| - | dumpkeys | grep " | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ==== Les keysyms de X ==== | ||
| - | |||
| - | Le keysyms sont simplement un moyen de faire correspondre, | ||
| - | |||
| - | === Introduction === | ||
| - | |||
| - | La liste des keysyms affectés par le serveur X est fonction du modèle de clavier déclaré dans « / | ||
| - | |||
| - | Donc, il faut que vous ayez déclaré que vous avez un modèle multimédia, | ||
| - | |||
| - | __Exemple__ : si vous avez un //Logitech Cordless Keyboard// et que vous déclarez un clavier de type « pc105 », les touches multimédia devraient être opérationnelles mais sans keysym. Pour s' | ||
| - | |||
| - | Même avec un paramétrage adapté du clavier dans « / | ||
| - | |||
| - | Comme il n'est pas évident de trouver le nom du clavier (le nom commercial est rarement le même que le nom du clavier dans les fichiers X, si jamais le clavier est connu de X), la déclaration d'un clavier multimédia n'est pas nécessaire. | ||
| - | |||
| - | === Configuration === | ||
| - | |||
| - | Désormais, tout se passe sous X. | ||
| - | |||
| - | Les keysyms de X sont des étiquettes réservées comme : '' | ||
| - | |||
| - | La liste des keysyms affectés par le serveur X est fonction du modèle de clavier déclaré dans / | ||
| - | |||
| - | * Dans un terminal exécutez '' | ||
| - | * Appuyez sur la touche désirée. Si l' | ||
| - | KeyRelease event, serial 28, synthetic NO, window 0x3200001, | ||
| - | root 0xb7, subw 0x0, time 137010761, (693,138), root: | ||
| - | state 0x10, keycode 136 (keysym 0x1008ff27, XF86Forward), | ||
| - | | ||
| - | * C'est la troisième ligne qui nous intéresse : elle signifie que cette touche possède un keycode (136) et un keysym (XF86Forward). Si un keysym lui est affecté, c'est parfait, et vous pourrez l' | ||
| - | * Votre touche n'a probablement pas encore de keysym associé. Vous recevez alors ceci :< | ||
| - | KeyRelease event, serial 28, synthetic NO, window 0x3200001, | ||
| - | root 0xb7, subw 0x0, time 137355697, (401,146), root: | ||
| - | state 0x10, keycode 136 (keysym 0x0, NoSymbol), same_screen YES, | ||
| - | | ||
| - | </ | ||
| - | * Dans ce cas il suffit d' | ||
| - | * En premier lieu, récupérez la configuration de votre clavier X. Dans un terminal, exécutez :< | ||
| - | |||
| - | * Puis, éditez « xmodmap.conf » pour y ajouter les keysyms manquants : utilisez xev pour connaître le keycode attribué par X et recherchez dans le fichier « / | ||
| - | * Répétez cette étape pour chacune de vos touches sans keysym. | ||
| - | * Quand c'est terminé, sauvegardez le fichier xmodmap.conf et appliquez vos changements avec < | ||
| - | |||
| - | Maintenant, il ne reste plus qu'à charger « xmodmap.conf » [[#sous Ubuntu]] ou [[#sous Kubuntu]]. | ||
| - | |||
| - | == Sous Ubuntu == | ||
| - | |||
| - | < | ||
| - | |||
| - | //Texte d' | ||
| - | // Maintenant vous voulez loader votre nouveau xmodmap.conf lorsque X démarre. Ce qui suit ne marchera que pour GDM (Utilisé par défaut avec Ubuntu). Tapez ://< | ||
| - | $ sudo cp xmodmap.conf / | ||
| - | $ cd / | ||
| - | $ sudo cp Default.sample Default | ||
| - | </ | ||
| - | |||
| - | // * Maintenant ouvrir le ficher Default et ajoutez à la fin ://< | ||
| - | xmodmap / | ||
| - | exit 0 | ||
| - | </ | ||
| - | // * De cette façon, tous vos scancodes/ | ||
| - | * Maintenant vous pourrez faire quelque chose d' | ||
| - | |||
| - | == Sous Kubuntu == | ||
| - | |||
| - | Avec l' | ||
| - | |||
| - | Une fois le fichier « xmodmap.conf » modifié, placez-le dans « /etc/ » : | ||
| - | sudo cp xmodmap.conf / | ||
| - | Créez un script qui prendra « xmodmap.conf » en compte à chaque lancement de KDE : | ||
| - | vim ~/ | ||
| - | Appuyez sur la touche I (comme Insertion) et copiez-collez les deux lignes suivantes :<code bash> | ||
| - | #!/bin/sh | ||
| - | xmodmap / | ||
| - | </ | ||
| - | Tapez « Échap » puis « :w » (avec les deux points) et enfin « :q » pour successivement enregistrer et quitter le script. | ||
| - | |||
| - | Vous devez ensuite rendre ce script exécutable : | ||
| - | |||
| - | chmod +x ~/ | ||
| - | |||
| - | Relancez KDE, vos touches devraient être prises en charge. | ||
| - | |||
| - | |||
| - | |||
| - | ==== Autre méthode ==== | ||
| - | |||
| - | Si des touches n' | ||
| - | alors on va utiliser les gros moyens ! | ||
| - | |||
| - | on lance un **sudo tail -f / | ||
| - | On appuie sur ces touches. On doit obtenir un truc du genre : | ||
| - | |||
| - | [Wed Apr 30 15:07:21 2008] received event " | ||
| - | [Wed Apr 30 15:07:21 2008] notifying client 726[0:0] | ||
| - | [Wed Apr 30 15:07:21 2008] notifying client 5630[111: | ||
| - | [Wed Apr 30 15:07:21 2008] notifying client 726[0:0] | ||
| - | [Wed Apr 30 15:07:21 2008] executing action "/ | ||
| - | [Wed Apr 30 15:07:21 2008] BEGIN HANDLER MESSAGES | ||
| - | [Wed Apr 30 15:07:22 2008] END HANDLER MESSAGES | ||
| - | [Wed Apr 30 15:07:22 2008] action exited with status 0 | ||
| - | [Wed Apr 30 15:07:22 2008] completed event " | ||
| - | | ||
| - | Voilà notre touche s' | ||
| - | <note tip> Si la commande précédente ne renvoie rien de bien probant, tentez sudo tail -f / | ||
| - | Maintenant voyons voir ce que ces touches sont censées faire. | ||
| - | on va dans / | ||
| - | |||
| - | # / | ||
| - | # This is called when the user presses the power management button and calls | ||
| - | # / | ||
| - | | ||
| - | event=hotkey (ATKD|HOTK) 0000005c | ||
| - | action=/ | ||
| - | | ||
| - | Ouais trop cool j'ai retrouvé ma touche! | ||
| - | Si on ne la trouve pas je pense qu'il suffit de la créer, en suivant ce modèle. | ||
| - | Allons voir / | ||
| - | |||
| - | #!/bin/sh | ||
| - | | ||
| - | # . / | ||
| - | | ||
| - | # acpi_fakekey $KEY_COFFEE | ||
| - | | ||
| - | HA VOILA LA COUPABLE ! Donc apparemment $KEY_COFFEE ne fonctionne pas. On va changer ça. On regarde la liste de toutes les clés possibles dans **/ | ||
| - | Hmm...Vas pour $KEY_COMPUTER. | ||
| - | On modifie le fichier. | ||
| - | Pour vérifier qu' | ||
| - | |||
| - | <note help> | ||
| - | Pour relancer le démon acpid : | ||
| - | sudo / | ||
| - | </ | ||
| - | |||
| - | === Associer une commande à une touche === | ||
| - | |||
| - | Bon voilà, c'est enfin plus simple pour vous. | ||
| - | |||
| - | Alors bref, Vous avez le couple Scancode/ | ||
| - | |||
| - | == Sous Ubuntu == | ||
| - | |||
| - | * Ouvrez [[# | ||
| - | * Si cela ne suffit pas, utilisez metacity : | ||
| - | * lancez « Éditeur de configuration GConf » : | ||
| - | * Dans un terminal, exécutez « gconf-editor » | ||
| - | * ou passez par les menus pour lancer « Éditeur de configuration GConf » | ||
| - | * Ouvrez apps/ | ||
| - | * Cliquez sur global_keybindings : sur la partie droite de la fenêtre apparaissent alors quelques entrées de commandes, comme : run_command_1, | ||
| - | * Ensuite, cliquez sur « keybinding_commands » : sur la partie droite de la fenêtre, cliquez sur la ligne de la commande retenue et inscrivez la commande que vous désirez (ou le nom d'un script). Les possibilités sont quasi infinies (exemple : '' | ||
| - | |||
| - | == Sous Kubuntu == | ||
| - | |||
| - | * Ouvrez l' | ||
| - | * Maintenant si vous avez par exemple une touche « Play », il vous faudra sans doute créer votre propre raccourci. Par exemple nous voulons que la touche « Play » de notre clavier multimédia lance la lecture dans AmaroK : | ||
| - | * On va créer une entrée de menu pour lancer la lecture. Comme nous n' | ||
| - | * On assigne ensuite à cette entrée de menu l' | ||
| - | * Et enfin, nous assignons à cette entrée de menu le raccourci clavier voulu. Et voilà, le tour est joué ! | ||
| - | |||
| - | |||
| - | <note help> | ||
| - | </ | ||
| - | |||
| - | |||
| - | ===== Touches d' activation ===== | ||
| - | |||
| - | Pour activer les modules wifi bluetooth | ||
| - | |||
| - | [[: | ||
| - | |||
| - | [[:acerhk]] | ||
| - | ===== Sources et références ===== | ||
| - | |||
| - | * < | ||
| - | * Voir aussi sur le Wiki : [[keytouch|Configurer un clavier multimédia avec Keytouch]] | ||
| - | |||
| - | ---- | ||
| - | |||
| - | // | ||
