J'ai récemment acheté la souris Utechsmart Venus : http://www.utechsmart.com/product/show/id/477/US-D16400-GM
Je n'ai pas été en mesure de lier ces boutons latéraux (et le "bouton de tir rapide près du bouton gauche de la souris) à différentes touches sans changer les touches sur lesquelles les boutons latéraux et de tir rapide pointent.
La raison en est que je n'ai pas réussi à faire en sorte que xev reconnaisse les boutons de tir latéral et rapide comme un événement à part entière. Au lieu de cela, lorsque j'appuie sur un bouton latéral ou un bouton de tir rapide, le testeur d'événements de xev signale immédiatement la liaison à laquelle le bouton est associé.
C'est-à-dire que j'appuie sur le bouton latéral "1", le mappeur d'événements rapporte :
KeyPress event, serial 74, . . .
KeyRelease event, serial 74 . . .
Lorsque j'appuie sur le bouton gauche de la souris, le mappeur signale :
ButtonPress event, serial 37, . . .
Button Release event, serial 37, . . .
Il est évident que je ne peux pas mapper le bouton à partir de la souris si celle-ci ne me dit pas quelle est l'"adresse" du bouton, comme dans ces deux messages connexes :
Comment configurer les boutons supplémentaires de la souris Logitech ?
Les raccourcis de la souris sont confondus avec les touches du clavier dans Kubuntu
Quelqu'un a-t-il des conseils pour essayer de trouver ce que sont ces boutons sur la souris ?
De toute évidence, la souris fonctionne, mais elle n'est pas associée aux boutons comme je le souhaiterais. Il me semble donc qu'il y a doit Il existe une solution à ce problème, et je serais plus qu'heureux de m'y plonger en profondeur pour le résoudre. J'ai regardé la documentation sur les pilotes Xorg et evdev, mais je ne suis même pas certain que ce soit la bonne direction.
Je ne cherche pas nécessairement à ce que quelqu'un résolve ce problème directement pour moi. Mais j'apprécierais grandement que l'on m'aide à trouver des idées sur la façon de résoudre ce problème.
Merci de votre patience !
UPDATE :
J'ai trouvé un message sur les forums d'Archlinux à propos de la Razer Naga qui est une souris très similaire. Cela semble prometteur : https://bbs.archlinux.org/viewtopic.php?id=145502 . Cela m'a conduit à un problème similaire avec les télécommandes infrarouges ici : https://www.mythtv.org/wik147+853!#@#+!i/Générique_HID_%22MCE%22_Remotes#XKB_Remapping . Vous y trouverez une mine d'informations sur le sujet. Ce serait bien s'ils expliquaient mieux comment ils déterminent quelles sont les "clés" dans les scripts, mais après avoir lu beaucoup de matériel complémentaire, il semble que le <AE[01/12]> vient de la convention (et puisque les boutons de la souris correspondent à ces mappages de touches, cela n'a que plus de sens. . .
Cependant, j'ai toujours un petit problème. Je n'ai pas encore créé de shebang, mais j'ai simplement essayé d'exécuter la commande à la main.
Tout d'abord, j'ai créé le fichier de symboles /usr/share/X11/xkb/symbols/custom (je ne sais pas vraiment pourquoi ils utilisent le répertoire tmp) et j'ai inclus les éléments suivants :
xkb_symbols "venus" {
2 key <AE01> { [ y, Y ]
3 key <AE02> { [ i, I ]
4 key <AE03> { [bracketleft, braceleft ]
5 key <AE04> { [bracketright, braceright ]
6 key <AE05> { [ slash, question ]
7 key <AE06> { [ j, J ]
8 key <AE07> { [ k, K ]
9 key <AE08> { [ l, L ]
10 key <AE09> { [ semicolon, colon ]
11 key <AE10> { [ comma, less ]
12 key <AE11> { [ minus, underscore ]
13 key <AE12> { [ equal, plus ]
14 };
Puis j'ai lancé xinput list qui a donné.. :
Virtual core pointer id=2 [master pointer (3)]
Virtual core XTEST pointer id=4 [slave pointer (2)]
USB Laser Game Mouse id=9 [slave pointer (2)]
USB Laser Game Mouse id=11 [slave pointer (2)]
EST Gaming keyboard id=13 [slave pointer (2)]
Virtual core keyboard id=3 [master keyboard (2)]
Virtual core XTEST keyboard id=5 [slave keyboard (3)]
Power Button id=6 [slave keyboard (3)]
Power Button id=7 [slave keyboard (3)]
Sleep Button id=8 [slave keyboard (3)]
USB Laser Game Mouse id=10 [slave keyboard (3)]
EST Gaming keyboard id=12 [slave keyboard (3)]
EST Gaming keyboard id=14 [slave keyboard (3)]
C-Media Electronics Inc. USB Audio Device id=15 [slave keyboard (3)]
USB Laser Game Mouse id=16 [slave keyboard (3)]
EST Gaming keyboard id=17 [slave keyboard (3)]
Après avoir analysé le script écrit dans les deux liens ci-dessus, j'ai déduit que ma variable $remote_id serait de 16 donc j'ai exécuté ce qui suit :
setxkbmap -device 16 -print | sed's/\(xkb_symbols.*\)"/\1+custom(venus)"/' | xkbcomp -I /usr/share/X11/xkb -i 16 -synch $DISPLAY
Je n'ai pas envoyé ma sortie dans /dev/null parce que je voulais voir ce que serait la sortie (évidemment, lorsque je ferai le script, alors je le ferai, mais j'essaie de comprendre ce que je fais pour le moment). Ma sortie était la suivante :
Warning: Too many file names on command line
Compiling /usr/share/X11/xkb, writing to -, ignoring :0
syntax error: line 1 of /usr/share/X11/xkb
last scanned symbol is:
Errors encountered in /usr/share/X11/xkb; not compiled.
Je ne sais pas vraiment où aller à partir de là. . .