Forum Linux.gui Xmodmap

Posté par  .
Étiquettes : aucune
0
4
oct.
2005
Bonjour, j'aurais voulu faire fonctionner mon clavier multimedia ( Logitech Internet Navigator Special Edition conecté en PS/2 ).
J'ai configuré le clavier dans /etc/X11/xorg.conf :
Option "XkbRules" "xorg"
Option "XkbModel" "logiinkse"
Option "XkbLayout" "fr"
Il est reconnu sous KDE mais certains boutons ( F1 -> F12 quand le verrouillage Fonction n'est pas activé et Messenger / Caméra / iTouch / Achats ) ne fonctionnent pas du tout ( ils ne sont pas reconnus par le système ).
Ca en fait quand même 16/29 ... bref

Après avoir essayé de configuré lineakd / hotkeys, je suis revenu aux sources vu que ces boutons ne fonctionnaient pas non plus sur ces applications !

Alors j'ai lu sur cette page :
http://www.linuxquestions.org/questions/archive/18/2004/02/4/125333(...)
Qu'en faisant un tail -f /var/log/messages ( en tant que root )
On récupérait les "keycodes" pour ces touches
Et qu'avec la commande setkeycodes on pouvait assigner un keycode avec une sorte d'évènements XFree ( a piocher dans /etc/X11/xkb/symbols/inet puis pour trouver le code : /usr/X11R6/lib/X11/xkb/keycodes/xfree86 )
Je mets tout ça dans mon fichier rc.local ( je reboote / je le réexécute )
un bon coup de xmodmap -pke > .Xmodmap
puis xmodmap ~/.Xmodmap pour charger le mappage et là ... c'est le drame ...

Si je regarde avec xev
Les codes assignés ne sont pas ceux dans le fichier rc.local ! ( ça commence bien )
Si je change les keycodes du rc.local avec ceux donnés par xev et bien ça fait pareil ! ( en réexécutant xev après avoir rebooté/ré exécuté rc.local plus xmodmap ... )

#rc.local
#Messenger
setkeycodes e011 145
#Webcam
setkeycodes e012 146
#Achat
setkeycodes e014 148
#iTouch
setkeycodes e013 147
#Bouton molette de droite
setkeycodes e016 150

Ma question :
Comment on fait pour que l'association fonctionne ?!

Note : si je vire tous les setkeycodes dans rc.local, xev ne voit même pas qu'on presse les touches !

Configuration :
- Archlinux 0.7
- Xorg 11R6.8.2-6
- kernel 2.6.13.2
- KDE 3.4.2
  • # hotkeys

    Posté par  . Évalué à 1.

    regarde du cote de hotkeys ^^
    faut trouver le bon clavier, et configurer le /etc/hotkeys selon tes desirs ( ou configurer dans ton home directory )

    vala

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

    • [^] # Re: hotkeys

      Posté par  . Évalué à 1.

      C'est bien pire que ça !
      En fait le truc de fou c'est que "de base" xev ne réagit pas à certaines touches => pour les configurer on verra après, je pense qu'il faut d'abord que le système les reconnaisse pour après leur atribuer une fonction.
      Ensuite quand je configure une touche dans un fichier de démarrage style rc.local, après dans sev il a plus le même keycode !!! Et apparemment c'est normal !
      Là où ça devient n'importe quoi c'est quand à la fin ( j'ai rempli mon rc.local des 16 touches qui manques ... ) en vérifiant avec xev ... j'ai des touches qui ont le même keycode !!! SUPER !
      • [^] # Re: hotkeys

        Posté par  . Évalué à 4.

        Alors en fait j'ai "trouvé" tout seul mais bon ça pourra peut-être intéresser du monde !

        Si sur votre clavier Multimedia certaines touches ne sont pas reconnues par le système :

        0. Vérifications :
        Dans /etc/X11/xorg.conf, avez vous bien mis votre clavier ?
        Liste des claviers : /etc/X11/xkb/symbols/inet ( pas très lisible mais bon )
        En cas de doute ré-exécuter xorgconfig

        1. En tant que root faire un
        tail -f /var/log/messages
        => ça permet de voir le keycode console de la touche à mapper

        2. Dans un super fichier qui se lance au démarrage ( style /etc/rc.local ) définir à la main ces touches :
        setkeycodes <keycode console> <n° de commande>
        le n° de commande se trouve dans le super fichier hyper commenté :-) /usr/include/linux/input.h ( vous allez être impressionné ! )

        3. Quand toutes les touches qui ne fonctionnaient pas sont "setkeycodées" ( du verbe setkeycoder du premier group ;-) ), relancer la machine ou alors réexécuter le fichier /etc/rc.local )

        4. Vérifier avec xev que toutes les touches multimedia de votre clavier fonctionnent et notés le nouveau keycode ( !!! Oui alors bon pas de mauvais esprit, ils auraient pu faire pire en faisant des keycode différents pour chaque pays et chaque environnements ... :-D )

        On doit avoir quelque chose comme :
        KeyRelease event, serial 30, synthetic NO, window 0x2e00001,
        root 0x114, subw 0x0, time 1841338, (-973,-666), root:(1725,176),
        state 0x10, keycode 199 (keysym 0x1008ff8e, NoSymbol), same_screen YES,
        XLookupString gives 0 bytes:

        Je vous conseille à partir de là de faire un joli tableau :
        Nom de la touche | keycode X | Action à associer à cette touche

        5.Création du fichier de mappage
        xmodmap -pke > .Xmodmap
        et pour que ça fonctionne on le charge
        xmodmap ~/.Xmodmap

        6.Modification de ce fichier
        A l'aide d'un autre fichier ultra-commenté : /usr/X11R6/lib/X11/XKeysymDB , vous allez pouvoir remplir la colonne "Action à associer à cette touche" et modifier en conséquence votre fichier .Xmodmap qui se trouve dans votre répertoire home.
        Exemple :
        ...
        keycode 199 = XF86Messenger
        ...

        7.Vérification
        On recharge le nouveau mappage : xmodmap ~/.Xmodmap
        On relance xev et en appuyant sur les touches on doit avoir :
        ( en reprenant l'exemple ci-dessus )
        KeyRelease event, serial 30, synthetic NO, window 0x2e00001,
        root 0x114, subw 0x0, time 1841338, (-973,-666), root:(1725,176),
        state 0x10, keycode 199 (keysym 0x1008ff8e, XF86Messenger), same_screen YES,
        XLookupString gives 0 bytes:
        Noter : XF86Messenger <=> c'est "gagné" ( pour cette touche ;-) )

        8. Automatisation du lancement :
        Si vous êtes sous KDE, il "suffit" de créer un fichier dans le répertoire .kde/Autostart/ et de le rendre exécutable.
        Ce fichier contiendra :

        #!/bin/sh
        xmodmap ~/.Xmodmap

        Bien maintenant il ne reste pluis qu'à associer des actions / programmes à ces touches !
        Dans KDE, il faut aller dans le Centre de Controle de KDE, Régionalisation & Accessibilité, Dans disposition du clavier, Cocher "Activer les disposition de clavier", puis choisissez votre clavier ( celui défini dans /etc/X11/xorg.conf )
        Puis dans Khotkeys déclarez de nouvelles actions associées à ces touches

        Si vous ne savez pas quelle commande utiliser pour lancer tel ou tel programme utilisez l'éditeur de menu K pour trouver la commande à associer.
        Sinon regardez sur google pour des commandes dcop ( Sous KDE seulement )

        Voilà c'était pas si compliqué franchement ;-)
        Ha on me dit que sous windows il suffit d'installer iTouch et que ça fonctionne tout seul, il y'a même une interface pour associer une action à un bouton la première fois qu'on l'utilise !!!
        Oui mais bon y'a des drivers sous windows ! Et quel plaisir de pouvoir mettre les mains dans le camboui pour un résultat pareil !!!
        Il existe des solutions "graphiques" comme klineakconfig pour ceux qui veulent mais il faut que les touches existent ...

        Quelques liens :
        http://kadreg.free.fr/cla/
        http://shift.free.fr/?item=ordi_clavier_logitech
        http://www.trustonme.net/didactels/254.html

        Bonne chance !!
        • [^] # Re: hotkeys

          Posté par  . Évalué à 1.

          Disposant du même clavier mais branché en USB sur un autre ordinateur ( un portable en fait ;-) ) Je viens de me rendre compte de 2-3 catastrophes auquelles je n'ai pas de solutions .... :
          - certaines de mes touches sont reconnues comme des boutons de souris !!!
          - d'autres ne renvois ni keycodes dans /var/log/messages ni dans xev !!!

          Bref, bravo ! Trop puissant l'implémentation des claviers / souris ! J'oubliais, j'ai aussi un clavier multimedia Microsoft ( ... ) et ben lui il fonctionne complètement et directement ... qui a dit que linux n'était pas compatible ;-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.