tl; dr
Ho appena comprato un Logitech T630 . È un mouse Bluetooth che supporta diversi eventi della tastiera tramite gesti (PDF). Questi gesti vanno bene e dandy ma ho poco da fare per loro. Mi sto divertendo molto a sbarazzarmi di loro.
Voglio fare quanto segue, in ordine di priorità decrescente:
- disabilita questi gesti
- rimappare i gesti (penso che senza hackerare il firmware o decodificare i driver di dispositivo Windows / OS X, questo non è possibile)
Non voglio:
- usa Windows
- disabilita tutti i gesti
Per maggiori informazioni, continua a leggere ...
pulsanti e gesti
I tredici possibili eventi del mouse sono:
- clic sinistro
- clic centrale
- tasto destro
- scorrere verso l'alto
- scorrere verso il basso
- scorrere verso sinistra
- scorrere verso destra
- fai scorrere il bordo a sinistra
- scorrere il bordo verso destra
- scorri con due dita verso sinistra
- scorri con due dita verso destra
- tocca due volte
- tocca due volte con due dita
I primi sette sono in ordine di come il sistema operativo li mappa.
Solo i primi tre sono meccanici, tutti gli altri usano la superficie tattile:
Opzioni della GUI
Configurare in Kubuntu Trusty è stato un gioco da ragazzi, ma offre poco supporto per la configurazione di questi altri gesti.
Questi gesti non sono correlati a:
- touchpad (
synaptics
non è in esecuzione) - accessibilità
- angoli caldi
- gesti standard del mouse
Tutte le impostazioni relative a quelle sono state verificate e sono tutte disattivate.
impostazioni della riga di comando
lomoco
L' lomoco
utilità per la configurazione delle funzioni speciali dei mouse USB Logitech non è applicabile.
xinput
Ho pensato che xinput
potesse offrire un aiuto:
$ 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
Nota le 13 etichette dei pulsanti:
$ xinput --get-button-map "Ultrathin Touch Mouse"
1 2 3 4 5 6 7 8 9 10 11 12 13
Disattivarli non ha aiutato:
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 2 3 4 5 6 7 0 0 0 0 0 0
Anche se, ad esempio, può trasformare il pulsante centrale del mouse in un clic sinistro:
$ xinput --set-button-map "Ultrathin Touch Mouse" 1 1 3 4 5 6 7 0 0 0 0 0 0
xmodmap
Simile a xinput
, stessi risultati:
$ xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0"
inputkbd
Suggerito da elmicha di seguito , funziona a livello di kernel, cercando di far sì che i gesti risultino in eventi null sulla tastiera. Dovrebbe funzionare, ma anche qui, senza fortuna, con il seguente processo:
$ 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
Dopo aver fatto ciò, la keymap non mostra alcun cambiamento.
xkbcomp
Ciò è stato suggerito X
dall'hacker di input Peter Hutterer , sicuramente un uomo che dovrebbe sapere cosa stava facendo. Ancora niente fortuna:
$ 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
Dopo aver fatto ciò, la descrizione della tastiera non mostra alcuna modifica.
Peter riteneva che ciò fosse probabilmente dovuto al fatto che era X
confuso sulla natura del dispositivo come tastiera o mouse, un po 'come questo bug che ha il problema opposto. Questo potrebbe spiegare perché tutti gli altri articoli previsti non funzionano. Tuttavia, ha anche affermato che l'utilizzo evdev
non dovrebbe funzionare per lo stesso motivo.
evdev
All'inizio sembrava funzionare, ma neanche. Questo tentativo di sfruttare il driver di input generico per X
impostare la mappatura dei tasti aggiungendo il testo seguente /usr/share/X11/xorg.conf.d/10-evdev.conf
o /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
Questo sembra funzionare senza errori /var/log/Xorg.0.log
(nell'uso grep EE
) e xinput
conferma la mappatura dei pulsanti, ma non provoca l'effetto desiderato.
Questo è noto per funzionare per il T631, tuttavia.
eventi da tastiera
Il problema risiede, credo, nel fatto che questi gesti generano eventi da tastiera:
$ 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) ----------
Per quanto riguarda la keymap , si riferiscono a:
$ 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
Il doppio tocco non sembra fare nulla.
altri riferimenti
Può anche aiutare a segnalare un riferimento a problemi simili in un bug con il mouse sopra menzionato che non si trova nel gnome-bluetooth
database con codice PIN. Inutile dire che ulteriori commenti sull'argomento sono ufficialmente offtopici su tale segnalazione di bug, ma i riferimenti possono aiutare ad aggiungere una prospettiva sulla natura di questo problema.
Ecco l'output di evemu-describe /dev/input/event4
FWIW.
Adattatori Bluetooth
FWIW Ho usato due diversi adattatori Bluetooth USB:
$ 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
all'utilità. xmodmap
e xinput
persino xorg.conf
sarà utile sotto Kubuntu ma non sotto Windows VM. Quindi sotto WinVM dovresti essere in grado di configurare il tuo mouse con le utility Logitech standard per Windows.