Ho un logitech MX400 wireless. Ha un pulsante di ricerca che vorrei utilizzare per incollare (invece della rotella di scorrimento estremamente sensibile ma difficile da premere). Ho già rimappato altri pulsanti con xbindkeys e usato xev per trovare il codice di pressione del pulsante, ma questo non funziona per il pulsante di ricerca. usando xev e facendo clic sul pulsante di ricerca ottengo i seguenti eventi
FocusOut event, serial 34, synthetic NO, window 0x3c00001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 34, synthetic NO, window 0x3c00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 34, synthetic NO, window 0x0,
keys: 4294967275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PropertyNotify event, serial 34, synthetic NO, window 0x3c00001,
atom 0x1d7 (_NET_WM_ICON_GEOMETRY), time 23653064, state PropertyNewValue
Nessun evento ButtonPress. Sembra che il pulsante di ricerca sia intercettato a un livello inferiore agli eventi X. Qualche idea? Ho Ubuntu 12.04. Ubuntu in realtà vede il clic e genera una finestra di ricerca, ma non c'è traccia di un evento click nel xev.
modificare
Ho controllato il metodo fornito con xmodmap. Il mio .Xmodmap
ora contiene la seguente riga
keycode 225 = XF86Paste NoSymbol XF86Paste``
l'esecuzione xmodmap ~/.Xmodmap
ora disabilita del tutto il pulsante (o almeno, non ottengo alcun risultato premendolo). Ho provato xmodmap -pke
e stampa:
keycode 225 = XF86Paste NoSymbol XF86Paste NoSymbol XF86Paste
Abbastanza strano. Tutte le altre voci sono formattate in modo simile. Sono vicino alla soluzione, ma c'è ancora qualcosa di strano.
Modifica 2
Ho provato a eseguire xinput (mai sentito parlare di questo comando. Cose fantastiche). Vi sono due voci per Logitech. Ecco l'output di elencare ciascuno di essi (ID 9 e 10)
Logitech USB Receiver id=9 [slave pointer (2)]
Reporting 7 classes:
Class originated from: 9. Type: XIButtonClass
Buttons supported: 24
Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" "Button Side" "Button Extra" "Button Forward" "Button Back" "Button Task" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown"
Button state:
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 0:
Label: Rel X
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 1:
Label: Rel Y
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 2:
Label: Rel Horiz Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 3:
Label: Rel Vert Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIScrollClass
Scroll info for Valuator 2
type: 2 (horizontal)
increment: 1.000000
flags: 0x0
Class originated from: 9. Type: XIScrollClass
Scroll info for Valuator 3
type: 1 (vertical)
increment: -1.000000
flags: 0x2 ( preferred )
Logitech USB Receiver id=10 [slave pointer (2)]
Reporting 6 classes:
Class originated from: 10. Type: XIButtonClass
Buttons supported: 7
Button labels: "Button 0" "Button Unknown" "Button Unknown" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right"
Button state:
Class originated from: 10. Type: XIKeyClass
Keycodes supported: 248
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 0:
Label: Rel X
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 1:
Label: Rel Y
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 2:
Label: Rel Horiz Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIScrollClass
Scroll info for Valuator 2
type: 2 (horizontal)
increment: 1.000000
flags: 0x0
Il test del dispositivo 9 non fa nulla con il pulsante. Il dispositivo di test 10 invece funziona, e questo è l'output mentre clicco
$ xinput test 10
key press 225
key release 225
key press 225
key release 225
key press 225
key release 225
Quindi sembra che il mouse agisca come una tastiera in questo senso, ma per qualche ragione, xmodmap non fa nulla quando riceve il tasto 225.
** Modificare **
Posso confermare che l'aggiunta di keycode 225 = a
stampe a
ogni volta che faccio clic sul pulsante. Quindi il problema sembra essere correlato al modo in cui XF86Paste viene effettivamente gestito. Lo sto inviando, ma non sta incollando.
tail -f /var/log/dmesg
quindi prova a premere il pulsante. Hai qualche output riferito a tasti / pulsanti?
xinput list
quindi scopri il codice del pulsante della tua chiave di ricerca con xinput test <MOUSE ID>
. funziona?
xev
mostrare gli eventi XF86Paste / XF86Copy, ma non succede nulla. Ciò significa che devi usare la combinazione di tasti CTRL + v per incollare. Xmodmap mappa i pulsanti 1: 1, ma è possibile utilizzare le impostazioni delle scorciatoie da tastiera per attivare l'esecuzione di un comando alla pressione dei tasti (vedere la mia risposta).
xbindkeys
impostato per l'esecuzione all'avvio giusto? Puoi disabilitarlo e riprovare?