tl; dr
Je viens d'acheter un Logitech T630 . Il s'agit d'une souris Bluetooth qui prend en charge plusieurs événements clavier via des gestes (PDF). Ces gestes sont fins et dandy mais je les ai peu utilisés. J'ai du mal à m'en débarrasser.
Je souhaite effectuer les opérations suivantes, par ordre de priorité décroissante:
- désactiver ces gestes
- remapper les gestes (je pense que sans pirater le firmware ou inverser l'ingénierie des pilotes de périphériques Windows / OS X, ce n'est pas possible)
Je ne veux pas:
- utiliser Windows
- désactiver tous les gestes
Pour plus d'informations, lisez la suite…
boutons et gestes
Les treize événements souris possibles sont:
- click gauche
- Clic du milieu
- clic-droit
- faire défiler vers le haut
- défiler vers le bas
- défiler vers la gauche
- défiler vers la droite
- glisser le bord vers la gauche
- glisser le bord vers la droite
- glissement de deux doigts vers la gauche
- glissement de deux doigts vers la droite
- tapez deux fois
- toucher deux doigts
Les sept premiers sont dans l'ordre de la façon dont le système d'exploitation les mappe.
Seuls les trois premiers sont mécaniques - tous les autres utilisent la surface tactile:
Options GUI
L'installation dans Kubuntu Trusty était un jeu d'enfant, mais elle offre peu de support pour configurer ces autres gestes.
Ces gestes ne sont pas liés à:
- pavé tactile (
synaptics
ne fonctionne pas) - accessibilité
- coins chauds
- gestes standard de la souris
Tous les paramètres liés à ceux-ci ont été vérifiés et ils sont tous désactivés.
paramètres de ligne de commande
lomoco
L' lomoco
utilitaire permettant de configurer les fonctions spéciales des souris USB Logitech n'est pas applicable.
xinput
Je pensais que cela xinput
pourrait aider:
$ xinput --list | grep pointer
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Ultrathin Touch Mouse id=13 [slave pointer (2)]
$ xinput --list-props 13
Device 'Ultrathin Touch Mouse':
Device Enabled (144): 1
Coordinate Transformation Matrix (146): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (266): 0
Device Accel Constant Deceleration (267): 1.000000
Device Accel Adaptive Deceleration (268): 1.000000
Device Accel Velocity Scaling (269): 10.000000
Device Product ID (261): 1133, 45069
Device Node (262): "/dev/input/event11"
Evdev Axis Inversion (270): 0, 0
Evdev Axes Swap (272): 0
Axis Labels (273): "Rel X" (154), "Rel Y" (155), "Rel Horiz Wheel" (746), "Rel Vert Wheel" (265)
Button Labels (274): "Button Left" (147), "Button Middle" (148), "Button Right" (149), "Button Wheel Up" (150), "Button Wheel Down" (151), "Button Horiz Wheel Left" (152), "Button Horiz Wheel Right" (153), "Button Side" (1032), "Button Extra" (1033), "Button Unknown" (264), "Button Unknown" (264), "Button Unknown" (264), "Button Unknown" (264)
Evdev Middle Button Emulation (275): 0
Evdev Middle Button Timeout (276): 50
Evdev Third Button Emulation (277): 0
Evdev Third Button Emulation Timeout (278): 1000
Evdev Third Button Emulation Button (279): 3
Evdev Third Button Emulation Threshold (280): 20
Evdev Wheel Emulation (281): 0
Evdev Wheel Emulation Axes (282): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (283): 10
Evdev Wheel Emulation Timeout (284): 200
Evdev Wheel Emulation Button (285): 4
Evdev Drag Lock Buttons (286): 0
Notez les 13 étiquettes des boutons:
$ xinput --get-button-map "Ultrathin Touch Mouse"
1 2 3 4 5 6 7 8 9 10 11 12 13
Les désactiver n'a pas aidé:
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 2 3 4 5 6 7 0 0 0 0 0 0
Même si, par exemple, il peut transformer le bouton central de la souris en un clic gauche:
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 1 3 4 5 6 7 0 0 0 0 0 0
xmodmap
Similaire à xinput
, mêmes résultats:
$ xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0"
inputkbd
Suggéré par elmicha ci - dessous , cela fonctionne au niveau du noyau, essayant de faire en sorte que les gestes entraînent des événements clavier nuls. Devrait fonctionner, mais pas de chance ici non plus, avec le processus suivant:
$ sudo input-kbd 4 > keymap # note the 4 is from /dev/input/event4
# edit the keymap to map any combination of keys to either 0 or 240 (KEY_UNKNOWN)
# e.g. change this:
# 0x700e0 = 29 # KEY_LEFTCTRL
# to this:
# 0x700e0 = 0 # KEY_LEFTCTRL
# or this:
# 0x700e0 = 240 # KEY_LEFTCTRL
$ sudo input-kbd -f keymap 4
$ sudo input-kbd 4 # should return the updated keymap
Après cela, le clavier ne montre aucun changement.
xkbcomp
Cela a été suggéré par X
le pirate informatique Peter Hutterer , certainement un homme qui devrait savoir ce qu'il faisait. Mais pas de chance:
$ xkbcomp -xkb $DISPLAY t630.xkb
# edit the keyboard description and replace the definition of any key to NoSymbol or VoidSymbol
# e.g. change this:
# key <LCTL> { [ Control_L ] };
# to this:
# key <LCTL> { [ NoSymbol ] };
# or this:
# key <LCTL> { [ VoidSymbol ] };
$ sudo xkbcomp -i 8 t630.xkb $DISPLAY # here the 8 is the id in xinput, names don't work
$ xkbcomp -xkb -i 8 $DISPLAY - # should return the updated keyboard description
Après cela, la description du clavier ne montre aucun changement.
Peter a estimé que cela était probablement dû au fait que X
la nature de l'appareil en tant que clavier ou souris est confuse, un peu comme ce bogue qui a le problème opposé. Cela peut expliquer pourquoi tous les autres éléments attendus ne fonctionnent pas. Cependant, il a également déclaré que l'utilisation evdev
ne devrait pas fonctionner pour la même raison.
evdev
Cela a semblé fonctionner au début, mais ce n'est pas le cas non plus. Cela tente de tirer parti du pilote d'entrée générique pour X
définir le mappage des boutons en ajoutant les éléments suivants à /usr/share/X11/xorg.conf.d/10-evdev.conf
ou /etc/X11/xorg.conf.d/10-evdev.conf
:
# custom for Logitech Ultrathin Touch mouse
Section "InputDevice"
Identifier "Logitech bluetooth Touch Mouse"
Driver "evdev"
Option "Name" "Ultrathin Touch Mouse"
Option "ButtonMapping" "1 2 3 4 5 6 7 0 0 0 0 0 0"
EndSection
Section "InputClass"
Identifier "Ultrathin Touch Mouse"
Option "ButtonMapping" "1 2 3 4 5 6 7 0 0 0 0 0 0"
EndSection
Cela semble fonctionner sans erreur dans /var/log/Xorg.0.log
(utilisation grep EE
) et xinput
confirme le mappage des boutons, mais cela n'entraîne pas l'effet désiré.
Cependant, cela est connu pour fonctionner avec le T631.
événements clavier
Le problème réside, je pense, dans le fait que ces gestes génèrent des événements clavier:
$ sudo evemu-record /dev/input/event4 | grep "E: "
# swipe edge right
E: 0.000000 0004 0004 458976 # EV_MSC / MSC_SCAN 458976
E: 0.000000 0001 001d 0001 # EV_KEY / KEY_LEFTCTRL 1
E: 0.000000 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 0.000000 0001 007d 0001 # EV_KEY / KEY_LEFTMETA 1
E: 0.000000 0004 0004 458795 # EV_MSC / MSC_SCAN 458795
E: 0.000000 0001 000f 0001 # EV_KEY / KEY_TAB 1
E: 0.000000 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 0.002980 0004 0004 458976 # EV_MSC / MSC_SCAN 458976
E: 0.002980 0001 001d 0000 # EV_KEY / KEY_LEFTCTRL 0
E: 0.002980 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 0.002980 0001 007d 0000 # EV_KEY / KEY_LEFTMETA 0
E: 0.002980 0004 0004 458795 # EV_MSC / MSC_SCAN 458795
E: 0.002980 0001 000f 0000 # EV_KEY / KEY_TAB 0
E: 0.002980 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# swipe edge left
E: 3.306977 0004 0004 458978 # EV_MSC / MSC_SCAN 458978
E: 3.306977 0001 0038 0001 # EV_KEY / KEY_LEFTALT 1
E: 3.306977 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 3.306977 0001 007d 0001 # EV_KEY / KEY_LEFTMETA 1
E: 3.306977 0004 0004 458866 # EV_MSC / MSC_SCAN 458866
E: 3.306977 0001 00c1 0001 # EV_KEY / KEY_F23 1
E: 3.306977 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 3.310979 0004 0004 458978 # EV_MSC / MSC_SCAN 458978
E: 3.310979 0001 0038 0000 # EV_KEY / KEY_LEFTALT 0
E: 3.310979 0004 0004 458979 # EV_MSC / MSC_SCAN 458979
E: 3.310979 0001 007d 0000 # EV_KEY / KEY_LEFTMETA 0
E: 3.310979 0004 0004 458866 # EV_MSC / MSC_SCAN 458866
E: 3.310979 0001 00c1 0000 # EV_KEY / KEY_F23 0
E: 3.310979 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# two finger double tap
E: 10.225976 0004 0004 458983 # EV_MSC / MSC_SCAN 458983
E: 10.225976 0001 007e 0001 # EV_KEY / KEY_RIGHTMETA 1
E: 10.225976 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 10.229986 0004 0004 458983 # EV_MSC / MSC_SCAN 458983
E: 10.229986 0001 007e 0000 # EV_KEY / KEY_RIGHTMETA 0
E: 10.229986 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# two finger swipe left
E: 27.934977 0004 0004 589828 # EV_MSC / MSC_SCAN 589828
E: 27.934977 0001 0113 0001 # EV_KEY / BTN_SIDE 1
E: 27.934977 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 27.937983 0004 0004 589828 # EV_MSC / MSC_SCAN 589828
E: 27.937983 0001 0113 0000 # EV_KEY / BTN_SIDE 0
E: 27.937983 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
# two finger swipe right
E: 32.513990 0004 0004 589829 # EV_MSC / MSC_SCAN 589829
E: 32.513990 0001 0114 0001 # EV_KEY / BTN_EXTRA 1
E: 32.513990 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
E: 32.516994 0004 0004 589829 # EV_MSC / MSC_SCAN 589829
E: 32.516994 0001 0114 0000 # EV_KEY / BTN_EXTRA 0
E: 32.516994 0000 0000 0000 # ------------ SYN_REPORT (0) ----------
En ce qui concerne le clavier , ils se réfèrent à:
$ sudo input-kbd 4 | grep -e KEY_LEFTCTL -e KEY_LEFTMETA -e KEY_TAB -e KEY_LEFTALT -e KEY_F23 -e KEY_RIGHTMETA -e BTN_SIDE -e BTN_EXTRA
0x700e2 = 56 # KEY_LEFTALT
0x700e3 = 125 # KEY_LEFTMETA
0x700e7 = 126 # KEY_RIGHTMETA
0x7002b = 15 # KEY_TAB
0x70072 = 193 # KEY_F23
0x700e2 = 56 # KEY_LEFTALT
0x700e3 = 125 # KEY_LEFTMETA
0x700e7 = 126 # KEY_RIGHTMETA
0x90004 = 275 # BTN_SIDE
0x90005 = 276 # BTN_EXTRA
Appuyer deux fois ne semble rien faire.
Autres références
Il peut également être utile de signaler une référence à des problèmes similaires dans un bogue avec la souris susmentionnée ne se trouvant pas dans la gnome-bluetooth
base de données de code PIN. Inutile de dire que d'autres commentaires sur le sujet sont officiellement hors sujet sur ce rapport de bogue, mais les références peuvent aider à ajouter une certaine perspective sur la nature de ce problème.
Voici la sortie de evemu-describe /dev/input/event4
FWIW.
Adaptateurs Bluetooth
FWIW J'ai utilisé deux adaptateurs USB Bluetooth différents:
$ lsusb | grep Bluetooth
Bus 007 Device 010: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
$ lsusb | grep Bluetooth
Bus 007 Device 011: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
vmmouse_detect
utilitaire. xmodmap
et xinput
et même xorg.conf
sera utile sous votre Kubuntu mais pas sous Windows VM. Donc, sous WinVM, vous devriez pouvoir configurer votre souris avec les utilitaires Logitech standard pour Windows.