स्पष्टवादिता से पता लगाना
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"
पहले "लॉजिटेक यूएसबी रिसीवर" को लिया, यहां इसकी इवेंट आईडी 9 है।
Testing ... (interrupt to exit)
ओके अब स्पष्ट रूप से इनपुट चाहता है, बस Logitech रिमोट बटन पर क्लिक करें, मुझे यह (सरलीकृत) मिला:
[>] value 7003e (KEY_PRESENTATION)
[>] value 70029 (KEY_PRESENTATION)
[ ] value 70037 (KEY_DISPLAYTOGGLE)
< value 7004b (KEY_PAGEUP)
> value 7004e (KEY_PAGEDOWN)
नोट: मुझे इसके बाद पता चला कि कई बार क्लिक करने पर [>] 7003e दे रहा था, फिर 70029, फिर 7003e, आदि। मुझे पता है क्यों।
Udv आत्मविश्वास को संशोधित करना
अब जब हमारे पास इनपुट कोड हैं, तो आइए udev conf पर एक नजर डालते हैं:
sudo gedit /lib/udev/hwdb.d/60-keyboard.hwdb
"R400" के लिए खोजें और अपनी इच्छानुसार प्रस्तुति और डिस्प्लेटॉगल को बदलें , playpause और stopcd arrow keys:
# 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 और 070,029 एक ही बटन हैं, मैं उन्हें एक ही आउटपुट दे दी अप कुंजी। 7004b और 7004e डिफ़ॉल्ट रूप से यहां नहीं दिखाई देते हैं, हो सकता है कि वे देशी PAGEUP और PAGEDOWN इनपुट हैं और "Logitech प्रस्तुतकर्ता 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