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 Receiver"를 받았습니다. 여기에 이벤트 ID 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 수정
입력 코드가 생겼으니 udev conf를 보자 :
sudo gedit /lib/udev/hwdb.d/60-keyboard.hwdb
"R400"를 검색하고, 원하는에 의해 발표 및 displaytoggle을 대체 playpause & 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"
이전에 언급 한 바와 같이 07003e & 070029이 같은 버튼 때문에, 나는 그들에게 동일한 출력했다 최대 키를 누릅니다. 7004b & 7004e는 기본적으로 여기에 나타나지 않습니다. 아마도 기본 PAGEUP & PAGEDOWN 입력이고 "Logitech Presenter R400"과 관련이 없기 때문일 수 있습니다. 그것들을 추가합시다 :
KEYBOARD_KEY_07004b=previoussong # top left <
KEYBOARD_KEY_07004e=nextsong # top right >
여기 내 마지막 conf가 있습니다.
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
그런 다음 이전에 선택한 것과 동일한 이벤트 ID (여기서 이벤트 ID 9)를 사용하십시오.
sudo udevadm trigger /dev/input/event9
웹 브라우저에서이 새 매핑을 확인할 수 있습니다 (예 :
$('body').on('keydown', function(e){ console.log(e.key) })
그것은 나에게 주었다 :
[>] ArrowUp
[ ] ArrowDown
< ArrowLeft
> ArrowRight