Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
clavier_multimedia [Le 30/04/2008, 16:21]
opax
— (Version actuelle)
Ligne 1: Ligne 1:
-{{tag>​matériel personnalisation clavier}} 
  
----- 
- 
-====== 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'​est-à-dire qu'il y a quelques touches supplémentaires permettant d'​augmenter ou diminuer le volume, ouvrir votre boite aux lettres électronique,​ etc. 
- 
- 
- 
-===== Utilisation ===== 
- 
-La plupart des claviers se configurent de manière relativement simple en utilisant l'​application //​[[#​Raccourcis clavier]]// (gnome-keybinding-properties). 
- 
-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'​utilitaire //​[[:​keytouch]]//​ qui après installation se lance par le menu Système -> Administration -> KeyTouch, il suffit alors de choisir son modèle de clavier (si l'on a la chance qu'il le gère) et affecter les touches comme on le veux. 
- 
- 
- 
-==== Raccourcis clavier ==== 
- 
-  * Lancez l'​application disponible dans le menu //Système → Préférences → Raccourcis clavier//. 
- 
-Dans cette application,​ il vous suffit de cliquer sur la ligne qui vous intéresse (exemple : //Dossier personnel//​) et ensuite d'​appuyer sur la touche du clavier qui va effectuer cette fonction (sur mon clavier Logitech, c'est la touche //My Home//). 
- 
-Pour effacer un raccourci clavier assigné précédemment,​ vous devez cliquer sur la ligne qui vous intéresse et appuyer sur la touche « ⇐ » (retour arrière). 
- 
-Si cela ne fonctionne pas, ou si //​gnome-keybinding-properties//​ ne possède pas l'​action désirée pour votre touche, vous aurez besoin de lire le reste de cette page. 
- 
- 
-==== Retours d'​utilisateurs ==== 
- 
-//(Merci de préciser votre __//​modèle//​__ de clavier ou de portable.)//​ 
- 
-//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,​ et pourtant, lorsque j'​appuie sur la touche, rien ne se passe... 
- 
-  * Les claviers supportés en natif par XOrg sont disponibles dans le fichier « /​etc/​X11/​xkb/​rules/​base.lst ». 
-  * En [[:​tutoriel:​comment_editer_un_fichier|éditant le fichier]] **/​etc/​X11/​xorg.conf**,​ il est possible de définir son clavier multimédia et ce pour l'​ensemble des utilisateurs de l'​ordinateur. 
-  * 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'​étape suivante.\\ 
-Nous avons créé le couple scancode/​keycode,​ maintenant, il va falloir lui mettre une petite étiquette pour dire au noyau à quoi il sert... 
-  * 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 ([[#​Explications]] sur [[#le couple SCANCODE/​KEYCODE]]). 
- 
-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 //​Visionneur de journaux système// (//Système → Administration → Visionneur de journaux système//​). 
-      * ouvrez le journal nommé « messages ». 
-    - ou en console : 
-      * Exécutez ''​tail /​var/​log/​messages''​. 
-      * Autre méthode : exécutez ''​tail -f /​var/​log/​messages''​ (Ctrl--c pour revenir à l'​invite de commande) et appuyez sur les touches : les informations s'​afficheront directement à l'​écran.\\ 
-Vous devriez trouver deux lignes ressemblant quelque peu à celles-ci, vers la fin :<​file>​ 
-07:41:52 localhost ​  ​kernel ​  ​atkbd.c : Unknown key released (translated set 2, code 0xa5 on isa0060/​serio0). 
-07:41:52 localhost ​  ​kernel ​  ​atkbd.c : Use '​setkeycodes e025 ' to make it known. 
-</​file>​ 
-Ce qui nous intéresse, c'est le code de la touche (ici, **0xa5**) et surtout le <​scancode>​ associé (ici, **e025**). 
- 
-On affecte alors un keycode à une touche : 
-  * Dans un terminal exécutez <​code>​setkeycodes <​scancode>​ <​keycode></​code>​où <​scancode>​ doit être remplacé par la valeur trouvée à l'​étape précédente ; <​keycode>​ est le code clavier attribué : commencez la numérotation à 129 (([[#​Explications]] sur les [[#Les keycodes du noyau|keycodes disponibles]]) et incrémentez ce nombre à chaque touche supplémentaire (130, 131, etc.). 
-  * Répétez cette étape pour chacune des touches à programmer. 
-  * Utilisez alors [[#​raccourcis clavier]] avec les touches fraichement configurées. 
- 
-Pour garder ce réglage après un redémarrage la machine, il faut rajouter la ligne de commade précédente au fichier « /​etc/​init.d/​bootmisc.sh » : 
-  * [[:​tutoriel:​comment_editer_un_fichier|éditez le fichier]] **/​etc/​init.d/​bootmisc.sh** ; 
-  * à la fin du fichier ajoutez la ligne en question (juste avant la ligne '':​ exit 0''​) :<​file>​ 
-setkeycodes <​scancode>​ <​keycode>​ 
-</​file>​ 
- 
- 
- 
-==== Explications ==== 
-=== Le couple SCANCODE/​KEYCODE === 
- 
->« 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 noyau Linux reçoit un « scancode » (une marque, quoi, comme un scanner qui dit noir ou blanc) 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'​il est appuyé. 
- 
-Vous allez me dire, mais pourquoi X ne fait pas la relation direct entre le scancode, et l'​action qui découle de cette touche. 
- 
-En fait, pour que toutes les touches soient utilisables sous X, il faut donc définir pour chacune d'​entre elles : un couple scancode/​keycode valable pour le noyau quand il n'​existe pas encore (un clavier de type AT est mis en place par défaut), plus une table de correspondance pour X. 
- 
-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'​affecter les keycodes manquants et pour éviter tout conflit, vous devez savoir lesquels sont disponibles : 
-  * Allez sur une vraie console par <​CTRL><​ALT>​+F1. (<​CTRL><​ALT>​+F7 pour retourner sous GNOME) 
-  * Connectez vous 
-  * Obtenez alors la liste des keycodes en executant <​code>​$ dumpkeys</​code>​ 
-  * Repérez ceux qui ne sont pas encore utilisés (keycode <​valeur>​ = nul). 
- 
-<​note>​Remarque 
- 
-Vous pouvez en sauvegarder la liste avec la commande : 
- 
-  dumpkeys | grep "​nul"​ > keycode.list 
-</​note>​ 
- 
- 
- 
- 
-==== Les keysyms de X ==== 
- 
-Le keysyms sont simplement un moyen de faire correspondre,​ dans X, un numéro à un nom. Cela permet aux humains que nous sommes de travailler avec des noms alors que X va travailler avec des numéros. 
- 
-=== Introduction === 
- 
-La liste des keysyms affectés par le serveur X est fonction du modèle de clavier déclaré dans « /​etc/​X11/​xorg.conf ». 
- 
-Donc, il vaut que vous ayez déclaré que vous ayez un modèle multimédia,​ non ?? ;-) (voir [[#​Problèmes et solutions]]). 
- 
-__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'​éviter du travail, choisissez plutôt le type "​logiciink"​ et redémarrez votre serveur X. 
- 
-Même avec un paramétrage adapté du clavier dans « /​etc/​X11/​xorg.conf », il y a des chances pour que toutes les touches n'​aient pas encore reçues l'​affectation d'un keysyn. Nous allons donc les déclarer manuellement. 
- 
-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 : ''​XF86AudioMedia'',​ ''​XF86WWWW'',​ etc. La liste des keysyms est disponible dans le ficher « /​usr/​share/​X11/​XKeysymDB ». 
- 
-La liste des keysyms affectés par le serveur X est fonction du modèle de clavier déclaré dans /​etc/​X11/​xorg.conf. ​ 
- 
-  * Dans un terminal exécutez ''​xev''​. 
-  * Appuyez sur la touche désirée. Si l'​affectation est déjà faite, le terminal affiche quelque chose comme :<​file>​ 
-        KeyRelease event, serial 28, synthetic NO, window 0x3200001, 
-           root 0xb7, subw 0x0, time 137010761, (693,138), root:​(705,​256),​ 
-           state 0x10, keycode 136 (keysym 0x1008ff27, XF86Forward),​ same_screen YES, 
-           ​XLookupString gives 0 bytes:</​file>​ 
-  * 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'​utliser pour déclencher une action via gnome keybindings ou metacity bindings comme indiqué un peu plus loin (allez au paragraphe III c), plus bas) . 
-  * Votre touche n'a probablement pas encore de keysym associé. Vous recevez alors ceci :<​file>​ 
-        KeyRelease event, serial 28, synthetic NO, window 0x3200001, 
-           root 0xb7, subw 0x0, time 137355697, (401,146), root:​(413,​264),​ 
-           state 0x10, keycode 136 (keysym 0x0, NoSymbol), same_screen YES, 
-           ​XLookupString gives 0 bytes: 
-</​file>​ 
-  * Dans ce cas il suffit d'​utiliser xmodmap pour associer un keysym au keycode (136). 
-  * En premier lieu, récupérez la configuration de votre clavier X. Dans un terminal, exécutez :<​code>​$ xmodmap -pke > ~/​xmodmap.conf</​code>​ 
- 
-  * Puis, éditez « xmodmap.conf » pour y ajouter les keysyms manquants : utilisez xev pour connaitre le keycode attribué par X et recherchez dans le fichier « /​usr/​lib/​X11/​XKeysymDB » (ou « /​usr/​share/​X11/​XKeysymDB ») le keysym qui convient. Exemple : il serait tout indiqué d'​associer la touche iTouch d'un clavier Logitech au keysym « XF86iTouch ». 
-  * 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 <​code>​xmodmap ~/​xmodmap.conf</​code>​ 
- 
-Maintenant, il ne reste plus qu'à charger « xmodmap.conf » [[#sous Ubuntu]] ou [[#sous Kubuntu]]. 
- 
-== Sous Ubuntu == 
- 
-<​note>​La procédure qui suit ne fonctionne pas sous Gnome 2.10. Sous Hoary, le chargement de votre nouveau « xmodmap.conf » se fera automatiquement au prochain démarrage de la session. Vous pouvez donc passer directement au paragraphe suivant.</​note>​ 
- 
-//Texte d'​origine :// 
-// 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://<​code>​ 
-$ sudo cp xmodmap.conf /​etc/​xmodmap.conf ​ 
-$ cd /​etc/​gdm/​PostLogin ​ 
-$ sudo cp Default.sample Default 
-</​code>​ 
- 
-//  * Maintenant ouvrir le ficher Default et ajoutez à la fin://<​file>​ 
-xmodmap /​etc/​xmodmap.conf 
-exit 0 
-</​file>​ 
-//  * De cette façon, tout vos scancodes/​keycodes/​keysyms seront assignés au démarrage de X et du système. 
-  * Maintenant vous pourrez faire quelquechose d'​utile avec:// 
- 
-== Sous Kubuntu == 
- 
-Avec l'​environnement KDE, c'est un peu différent. 
- 
-Une fois le fichier « xmodmap.conf » modifié, placez-le dans « /etc/ » : 
-  sudo cp xmodmap.conf /​etc/​xmodmap.conf 
-Créez un script qui prendra « xmodmap.conf » en compte à chaque lancement de KDE : 
-  vim ~/​.kde/​Autostart/​xmod 
-Appuyez sur la touche I (comme Insertion) et copiez-collez les deux lignes suivantes :<code bash> 
-#!/bin/sh 
-xmodmap /​etc/​xmodmap.conf 
-</​code>​ 
-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 ~/​.kde/​Autostart/​xmod 
- 
-Relancez KDE, vos touches devraient être prises en charge. 
- 
-=== Autre méthode === 
- 
-Si des touches n'​apparaissent pas dans aucunes des méthode au dessus (si si ça arrive) 
-alors on va utiliser les gros moyens! 
- 
-on lance un **sudo tail -f /​var/​log/​acpid** 
-On appuie sur ces touches. On doit obtenir un truc du genre : 
- 
-        [Wed Apr 30 15:07:21 2008] received event "​hotkey ATKD 0000005c 00000005"​ 
-        [Wed Apr 30 15:07:21 2008] notifying client 726[0:0] 
-        [Wed Apr 30 15:07:21 2008] notifying client 5630[111:​123] 
-        [Wed Apr 30 15:07:21 2008] notifying client 726[0:0] 
-        [Wed Apr 30 15:07:21 2008] executing action "/​etc/​acpi/​lockbtn.sh"​ 
-        [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 "​hotkey ATKD 0000005c 00000005"​ 
-        ​ 
-Voila notre touche s'​appelle hotkey ATKD 0000005c et c'est la 00000005 ème fois depuis que le démons acpid est lancé que j'ai appuyé dessus. 
- 
-Maintenant voyons voir ce que ce que ces touches sont censée faire. 
-on va dans /​etc/​acpi/​events. ya plein de fichier avec des noms de fabriquant suivit de la fonction. PAr exemple "​asus-lock":​ 
- 
-        # /​etc/​acpi/​events/​asus-lock 
-        # This is called when the user presses the power management button and calls 
-        # /​etc/​acpi/​lockbtn.sh for further processing. 
-        ​ 
-        event=hotkey (ATKD|HOTK) 0000005c 
-        action=/​etc/​acpi/​lockbtn.sh 
-        ​ 
-        Ouai trop cool j'ai retrouvé ma touche! 
-Si on la trouve pas je pense qu'il suffit de la créer, en suivant ce modèle. 
-Allons voir /​etc/​acpi/​lockbtn.sh 
- 
-        #!/bin/sh 
-        ​ 
-        # . /​usr/​share/​acpi-support/​key-constants 
-        ​ 
-        # acpi_fakekey $KEY_COFFEE 
-        ​ 
-HA VOILA LA COUPABLE! Donc apparement $KEY_COFFEE ne fonctionne pas. On va changer ça. On regarde la liste de toutes les clés possible dans **/​usr/​share/​acpi-support/​key-constants**. Attention il faut choisir une touche qui soit sert déjà à la fonction qui va être utiliser soit utiliser une touche jusqu'​alors inutilisée. ​ 
-Hmm...Vas pour $KEY_COMPUTER. 
-On modifie le fichier. 
-Pour vérifier qu'​elle fonctionne on essaie la suite... 
- 
-<note help> 
-Pour relancer le démon acpid: 
-        sudo /​etc/​init.d/​acpid restart 
-</​note>​ 
- 
-=== Associer une commande à une touche === 
- 
-Bon voilà, c'est enfin plus simple pour vous. 
- 
-Alors bref, Vous avez le couple Scancode/​keycode reconnue avec un keysyms, il ne reste plus qu'à lui attribuer des actions //via// l'un de ces deux programmes : 
- 
-== Sous Ubuntu == 
- 
-  * Ouvrez [[#​raccourcis clavier]] et suivez simplement les indications affichées. 
-  * 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/​metacity. Parmi d'​autres lignes vous voyez apparaitre « global_keybindings » et « keybinding_commands ». 
-    * Cliquez sur global_keybindings : sur la partie droite de la fenêtre apparaissent alors quelques entrées de commandes, comme : run_command_1,​ run_command_2,​ etc. Ces commandes doivent être renseignées avec le keysym associé à une touche (éventuellement,​ utilisez xev pour connaitre le keysym d'une touche). 
-    * 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 : ''​xmms --fwd''​). 
- 
-== Sous Kubuntu == 
- 
-  * Ouvrez l'​éditeur de menu KDE (clic droit sur l'​icône du menu → Éditeur le menu), et assignez aux applications les touches voulues. 
-  * 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'​avons pas forcément envie de la voir en ouvrant le menu K, nous lui donnerons un nom commençant par un point (.), ce qui fera qu'​elle ne sera pas visible dans le menu. nous l'​appelons ici "​.play"​ ou « .augmentervolume ». 
-    * On assigne ensuite à cette entrée de menu l'​action ''​amarok --play-pause''​ ou '​amixer sset PCM 10+ unmute'​ pour augmenter le volume. 
-    * Et enfin, nous assignons à cette entrée de menu le raccourci clavier voulu. Et voilà, le tour est joué ! 
- 
- 
-<note help>​**Remarque :** Vous pouvez utiliser un terminal pour découvrir les paramètres disponibles pour une application (exemple : ''​xmms --help''​). 
-</​note>​ 
- 
-===== Sources et références ===== 
- 
-  * [[http://​www.ubuntulinux.org/​wiki/​MultimediaKeys]] 
- 
----- 
- 
-//​Contributeurs:​ loxol, Rhys Hynaws, oguenel, [[:​utilisateurs:​youp]],​ [[:​utilisateurs:​Id2ndR]].//​ 
  • clavier_multimedia.1209565307.txt.gz
  • Dernière modification: Le 18/04/2011, 14:58
  • (modification externe)