Gros bug clavier [Clavier, souris, et Xorg evdev]

Bonjour,

Je suis l’heureux (??) propriétaire d’une souris 5 boutons / 2 molettes ainsi que d’un clavier multimédia avec plein de touches partout, qui me rendent de bons et loyaux services depuis plusieurs années. Sans même parler de Windows, ils ont servi sans broncher sur 3 Kubuntu et 3 Debian testing (KDE3 / i686).

Mais là, sous Debian testing (KDE4 / AMD64) ça coince ! Je sais, c’est pas très précis, je vais m’expliquer…
Pour le moment j’utilise la détection automatique (en passant par Xorg evdev) car c’est la solution la moins problématique (par rapport à kbd/mouse dans le xorg.conf, j’y viendrai après), mais c’est très loin d’être satisfaisant.

Côté clavier : si je joue un peu trop rapidement avec certaines combinaisons de touches (notamment Alt+Tab), Xorg cesse tout bonnement de prendre en compte mon clavier jusqu’à ce que je redémarre ma session utilisateur. Je me suis aperçu de ce problème en utilisant deux fois rapidement une des touches spéciales dudit clavier, qui génère automatiquement une combinaison Alt+Tab. Après de nombreux essais, je peux confirmer que même la combinaison Alt+Tab réalisée “normalement” provoque aussi le même problème (c’est juste plus dur à reproduire, il faut vraiment aller très vite).
J’ai aussi eu d’autres soucis de ce type dans Konsole (une seule session ne répondait plus à certaines touches, les autres sessions ouvertes continuant de fonctionner normalement) et dans Iceweasel. Aucune idée des combinaisons qui ont déclenché ça, mais je soupçonne qu’il s’agit du même problème.

Côté souris : j’avais l’habitude d’utiliser imwheel pour configurer mes boutons et ma molette supplémentaires. Or, là, voici ce qui se passe :

  • pour chaque application, le premier évènement qui devrait être géré par imwheel est tout bonnement ignoré
  • une fois qu’imwheel se met à fonctionner dans une application (au deuxième évènement, donc) je n’ai plus du tout de touche « flèche vers le haut » sur l’ensemble de ma session X ! Il y a probablement d’autres touches affectées mais je n’ai pas pris la peine de tout passer en revue.
    Accessoirement, ma deuxième molette avait pour habitude (sur mes précédentes Debian) avant la configuration imwheel de fonctionner comme la première molette. Là, elle ne sert à rien. C’est un détail, puisque si je parviens à faire fonctionner imwheel correctement ça n’aura aucune importance, mais c’est quand même preuve qu’il y a anguille sous roche.

Edit : le reste de ce message n’a pas grand intérêt vu ce que j’ai trouvé entre temps (voir mon message suivant).

Ni une ni deux, je fais la relation avec mes soucis de clavier “muet”, et je me mets en tête de configurer mon xorg.conf avec des bon vieux pilotes kbd / mouse (y compris AllowEmptyInput=off), histoire de voir si ça viendrait pas de evdev.

Pour la souris, aucun changement si ce n’est une légère accélération. Passons.
Pour le clavier c’est un peu plus délicat :

  • imwheel se comporte correctement (que j’utilise une souris mouse ou evdev), il n’ignore plus le premier évènement et ma touche « flèche vers le haut » continue de marcher comme il se doit
  • plus aucun problème de blocage complet du clavier avec Alt+Tab
  • par contre, le keymap c’est du grand n’importe quoi : Suppr ne fonctionne plus, PageUp se comporte comme la touche « menu contextuel », PageDn fait n’importe quoi (je n’ai même pas réussi à déterminer son comportement), Entrée du pavé numérique fait un CR+LF au lieu d’un bête LF comme il devrait, AltGr me fait des LF tant qu’il reste enfoncé (mais les combinaisons AltGr+… fonctionnent), j’en passe et des meilleures.

Du coup, j’ai préféré revenir en autodétection evdev, parce que là c’était du grand n’importe quoi.

Voici à quoi ressemblaient les sections appropriées de mon xorg.conf quand ça déconnait sec, je ne crois pas avoir fait de bêtises mais on sait jamais :[code]Section "ServerFlags"
Option “AllowEmptyInput” "off"
EndSection

Section "InputDevice"
Identifier "Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option “XkbRules” "xorg"
Option “XkbModel” "pc105"
Option “xkb_layout” "fr"
Option “xkb_variant” "latin9"
Option “CustomKeycodes” “on” # “on” ou “off”, même combat
EndSection

Section "InputDevice"
Identifier "Mouse"
Driver "mouse"
Option “Device” "/dev/input/mice"
Option "CorePointer"
Option “Protocol” "ExplorerPS/2"
Option “Emulate3Buttons” "false"
EndSection[/code]

Toutes ces bizarreries dépassent complètement mes compétences, vous auriez pas une petite piste s’iou plaît ?
Je veux juste avoir un clavier qui ne plante pas, avec un keymap normal, et imwheel qui fonctionne… :cry:

Edit : je viens juste d’y penser, peut-être que ça a un rapport… même quand je suis en configuration “manuelle” (kbd / mouse / AllowEmptyInput=off) dans mon Xorg.0.log je vois qu’il ajoute quand même un clavier et une souris en plus de ceux que j’ai définis (les mêmes que lorsque j’ai AllowEmptyInput=on). Ça provoque peut-être un conflit ? Mais je n’ai aucune idée de comment contrôler ça…
Et aussi, j’ai oublié de préciser que je n’ai, dans aucun cas, aucune erreur dans les logs.

Edit (2) : j’ai testé AutoAddDevices=off (avec ma configuration kbd / mouse / AllowEmptyIntput=off), je me suis retrouvé sans clavier du tout. Et maintenant j’obtiens systématiquement (je précise que ça concerne le clavier que j’ai défini moi-même, va falloir que je change le nom pour que ça soit plus clair) :

XKB: Failed to compile keymap (EE) Keyboard: Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config. (EE) Couldn't init device "Keyboard"

Bon, c’est définitivement louche.

Vu que ça me saoulait, j’ai décidé de revenir à la config par défaut : j’ai viré de mon xorg.conf tout ce qui avait trait au clavier et à la souris (les deux sections InputDevice et les lignes correspondantes dans ServerLayout), je suis repassé en AllowEmptyInput=on et AutoAddDevices=on, j’ai supprimé les paquets xorg-input-kdb et xorg-input-mouse, et histoire de faire bonne mesure j’ai rebooté.

Par acquit de conscience j’ai tout de même retesté imwheel, et là ça marche ! :open_mouth:
Du coup j’ai aussitôt vérifié mon bug de clavier (facile à tester avec ma touche qui compose Alt+Tab comme une grande). Résultat : même situation qu’auparavant, tout se remet à déconner (clavier muet immédiatement, puis plus aucune touche « flèche haut » quand je relance imwheel après un redémarrage de X).
Rien à faire, j’ai été obligé de rebooter complètement pour me débarrasser à nouveau du bug.

Conclusion : j’ai « seulement » un gros bug qui me fout le souk au niveau du clavier, et qui une fois provoqué déclenche également des conflits avec imwheel.
Et malheureusement, une fois que le bug en question a été provoqué par des combinaisons malheureuses de touches, la seule solution est de rebooter la machine (redémarrer seulement X ne suffit pas).

Une idée, quelqu’un ?
Que ce soit pour trouver l’origine du bug, ou bien pour avoir un keymap correct quand je spécifie un clavier manuellement dans le xorg.conf, peu importe du moment que j’arrive à avoir quelque chose qui fonctionne correctement (parce que là ça reste quand même sur trois pattes).