Rilevando con evtest
sudo evtest
Guarda l'elenco dei dispositivi:
/dev/input/event0: Lid Switch
/dev/input/event1: Power Button
/dev/input/event2: Sleep Button
/dev/input/event3: Power Button
/dev/input/event4: AT Translated Set 2 keyboard
/dev/input/event5: Video Bus
/dev/input/event6: USB Optical Mouse
/dev/input/event7: AlpsPS/2 ALPS DualPoint Stick
/dev/input/event8: AlpsPS/2 ALPS DualPoint TouchPad
/dev/input/event9: Logitech USB Receiver
/dev/input/event10: Logitech USB Receiver
/dev/input/event11: HDA Intel PCH Dock Mic
/dev/input/event12: HDA Intel PCH Headset Mic
/dev/input/event13: HDA Intel PCH Dock Line Out
/dev/input/event14: HDA Intel PCH Headphone
/dev/input/event15: HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event16: HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event17: HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event18: Integrated Webcam
/dev/input/event19: Dell WMI hotkeys
Select the device event number [0-19]: 9
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x46d product 0xc52d version 0x111
Input device name: "Logitech USB Receiver"
Ha preso il primo "Logitech USB Receiver", qui ha ID evento 9.
Testing ... (interrupt to exit)
OK ora evtest vuole input, basta fare clic sui pulsanti remoti Logitech, ho ottenuto questo (semplificato):
[>] value 7003e (KEY_PRESENTATION)
[>] value 70029 (KEY_PRESENTATION)
[ ] value 70037 (KEY_DISPLAYTOGGLE)
< value 7004b (KEY_PAGEUP)
> value 7004e (KEY_PAGEDOWN)
Nota: ho scoperto che dopo aver fatto clic più volte su [>] è stato visualizzato 7003e, quindi 70029, quindi 7003e, ecc. Non so perché.
Modifica udev conf
Ora che abbiamo i codici di input, diamo un'occhiata a udev conf:
sudo gedit /lib/udev/hwdb.d/60-keyboard.hwdb
Cerca "R400" e sostituisci la presentazione e attiva / disattiva display con i tasti freccia desiderati, playpause e stopcd :
# Logitech Presenter R400
evdev:input:b0003v046DpC52D*
KEYBOARD_KEY_070029=playpause # bottom left [>] was "presentation"
KEYBOARD_KEY_07003e=playpause # bottom left [>] was "presentation"
KEYBOARD_KEY_070037=stopcd # bottom right [ ] was "displaytoggle"
Come indicato in precedenza, a causa 07003e e 070.029 sono lo stesso tasto, ho dato loro la stessa uscita su chiave. 7004b e 7004e non vengono visualizzati qui per impostazione predefinita, forse perché sono input PAGEUP e PAGEDOWN nativi e non correlati a "Logitech Presenter R400". Aggiungiamoli:
KEYBOARD_KEY_07004b=previoussong # top left <
KEYBOARD_KEY_07004e=nextsong # top right >
Ecco il mio conf finale:
KEYBOARD_KEY_07004b=previoussong # top left <
KEYBOARD_KEY_07004e=nextsong # top right >
KEYBOARD_KEY_070029=playpause # bottom left [>] was "presentation"
KEYBOARD_KEY_07003e=playpause # bottom left [>] was "presentation"
KEYBOARD_KEY_070037=stopcd # bottom right [ ] was "displaytoggle"
Ricarica (nuove) regole
sudo udevadm hwdb --update
Quindi utilizzando lo stesso ID evento che abbiamo scelto prima, qui ID evento 9:
sudo udevadm trigger /dev/input/event9
È possibile controllare questa nuova mappatura in un browser Web, ad esempio:
$('body').on('keydown', function(e){ console.log(e.key) })
Questo mi ha dato:
[>] ArrowUp
[ ] ArrowDown
< ArrowLeft
> ArrowRight