Виявлення з evtest
sudo evtest
Подивіться список пристроїв:
/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"
Узяв перший "Logitech USB приймач", тут він має ідентифікатор події 9.
Testing ... (interrupt to exit)
Гаразд, зараз evtest хоче вводити дані, просто натисніть на віддалені кнопки Logitech, я отримав це (спрощено):
[>] value 7003e (KEY_PRESENTATION)
[>] value 70029 (KEY_PRESENTATION)
[ ] value 70037 (KEY_DISPLAYTOGGLE)
< value 7004b (KEY_PAGEUP)
> value 7004e (KEY_PAGEDOWN)
Примітка. Після цього я декілька разів клацнув на [>], давав 7003e, потім 70029, потім 7003e і т.д. Я не знаю, чому.
Модифікація конф. Конф
Тепер, коли у нас є вхідні коди, давайте подивимося на udev conf:
sudo gedit /lib/udev/hwdb.d/60-keyboard.hwdb
Шукайте "R400" та замініть презентацію та показ показів на потрібні, клавіші зі стрілками відтворення та зупинки :
# 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"
Як вже зазначалося раніше, з - за 07003e і 070029 одні і ті ж кнопки, я дав їм той же результат до ключа. 7004b і 7004e не відображаються тут за замовчуванням, можливо, тому, що вони є власними входами PAGEUP & PAGEDOWN і не пов'язані з "Logitech Presenter R400". Додамо їх:
KEYBOARD_KEY_07004b=previoussong # top left <
KEYBOARD_KEY_07004e=nextsong # top right >
Ось мій останній конф:
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"
Перезавантаження (нових) правил
sudo udevadm hwdb --update
Потім, використовуючи той самий ідентифікатор події, який ми обрали раніше, тут ідентифікатор події 9:
sudo udevadm trigger /dev/input/event9
Ви можете перевірити це нове відображення у веб-браузері, наприклад:
$('body').on('keydown', function(e){ console.log(e.key) })
Це дало мені:
[>] ArrowUp
[ ] ArrowDown
< ArrowLeft
> ArrowRight