Microsoft प्राकृतिक एर्गोनोमिक कीबोर्ड 4000 का ज़ूम स्लाइडर (और अन्य बटन) कैसे काम करें?


21

मैं उबंटू 10.10 पर एक Microsoft प्राकृतिक एर्गोनोमिक कीबोर्ड 4000 का उपयोग करता हूं। मल्टीमीडिया कीज़ (वॉल्यूम, प्ले / पॉज़) काम करते हैं, मेल और कैलकुलेटर बटन भी।

अब मैं ज़ूम स्लाइडर का उपयोग करना पसंद करूंगा, अगर यह संभव हो तो मैं उसके साथ पेज स्क्रॉलिंग का उपयोग करना चाहूंगा। क्या इसे सक्षम करने का कोई तरीका है?


2
Askubuntu.com/questions/471802/… देखें । यहां पूर्व के उत्तर अप्रचलित हो सकते हैं।
मैट

जवाबों:


18

/etc/udev/rules.d/98-ms-ergo.rulesनिम्नलिखित सामग्री के साथ फ़ाइल बनाएँ :

ACTION=="remove", GOTO="keyboard_end"
KERNEL!="event*", GOTO="keyboard_end"
ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end"
SUBSYSTEMS!="usb", GOTO="keyboard_end"

SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"

ENV{ID_VENDOR}=="Microsoft", ENV{ID_MODEL_ID}=="00db", RUN+="keymap $name 0xc022d pageup 0xc022e pagedown"

GOTO="keyboard_end"

यह स्थापित फ़ाइलों को बदले बिना पेज-अप / पेज-डाउन के लिए जूम की को मैप करेगा /lib/udev

एक बार जोड़ने के बाद, आपको काम शुरू करने के लिए बस अपने कीबोर्ड को अनप्लग करना होगा और फिर से भरना होगा।


इस के लिए मुझे दोषरहित फेडोरा 19 का उपयोग कर काम किया
रूबेंस Mariuzzo

माइक्रोसॉफ्ट एर्गोनोमिक 7000 के लिए, मॉडल 00db के बजाय 071d (lsusb द्वारा प्राप्त) के रूप में प्रतीत होता है - इसलिए यदि कोई 7000 के लिए यह कोशिश करता है तो उन्हें संभवतः उपरोक्त फ़ाइल में 001b के साथ 001b को प्रतिस्थापित करना चाहिए। वैसे भी मेरे मामले में (Ubuntu 14.04), जो काम नहीं करता है, शायद यह इस तथ्य से संबंधित है evtestकि जूम स्लाइडर किसी भी घटना को ट्रिगर नहीं करता है, एर्गोनोमिक 7000 कीबोर्ड के अधिकांश अन्य कुंजियों के विपरीत। इस बारे में निश्चित नहीं है कि वेब / होम बटन किसी भी आउटपुट को प्रदर्शित नहीं करता है evtest- हालाँकि उबंटू इसे उठाता है
मैट

1
मुझे 14.04 पर काम करने के लिए 4000 नहीं मिल सकते। में घटनाओं को नहीं देख रहे हैं xev
माइकल

14.10 को यह कोशिश की, और काम नहीं किया।
मरिंजो रूब

@ कोको xevमेरे लिए भी काम नहीं करता है। क्या है evtest /dev/input/event3? यदि event3इस कुंजी पर कोई प्रतिक्रिया नहीं है, तो अन्य घटनाओं के साथ परीक्षण करें ( event[0..9])।
निकोलस

9

Xubuntu 13.10 पर (शायद उबंटू 13.10 पर भी) निम्नानुसार किया जा सकता है:

इसमें मुख्य मैपिंग संपादित करें /lib/udev/hwdb.d/60-keyboard.hwdb:

###########################################################
# Microsoft
###########################################################

# Microsoft Natural Ergonomic Keyboard 4000
keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=pageup
 KEYBOARD_KEY_c022e=pagedown

रन sudo udevadm hwdb --update

रीबूट।


1
मेरे लिए 14.04 पर काम किया
अमीर उलल

मेरे 60-कीबोर्ड.एचडब्ल्यूडीबी में MNEK4K के लिए एक मौजूदा प्रविष्टि थी, कीबोर्ड के साथ: usb: b0003v045Ep00DB *। क्रियाओं को बदलने से काम नहीं चला। उन कार्यों के साथ एक नई प्रविष्टि जोड़ने से काम चला।
ट्रेक डेस

16.04 पर एक आकर्षण की तरह काम किया। मैंने वेब पेज ब्राउज़ करते समय एक स्मूथ स्क्रॉल प्राप्त करने के लिए "अप" और "डाउन" (सम्मान के बजाय "पेजअप" और "पेजडाउन") का उपयोग किया। आपका बहुत बहुत धन्यवाद!
पियरे

आप नक्शे कर सकते हैं katakanaऔर katakanahiragana(या से किसी भी अन्य अप्रयुक्त कीकोड hal.freedesktop.org/quirk/quirk-keymap-list.txt ) के बजाय मौजूदा कुंजी के रूप में नामित है। इस तरह आप मात्रा, भाषा, आकार आदि को टॉगल करने के लिए संशोधक के संयोजन में कुंजियों को पहचान सकते हैं और उनका उपयोग कर सकते हैं (दो नए सुपर-कीज़ का आनंद लेने के लिए अपने विंडो मैनेजर को कॉन्फ़िगर करें)।
dmitry_romanov

4

Microsoft एर्गोनोमिक कीबोर्ड 4000 को कॉन्फ़िगर करने के लिए हमें एक कॉन्फ़िगरेशन फ़ाइल बनानी होगी जिसमें कीबोर्ड डिक्लेरेशन और कीज़ को मैप करने का रिकॉर्ड होगा।

ऐसा करने के लिए तीन प्रकार की जानकारी है जो हमें निर्धारित करने की आवश्यकता है:

  • कीबोर्ड प्रकार
  • scancodeकीबोर्ड पर वास्तविक कुंजी जो कुंजी है
  • कुंजी nameचयनित कुंजी को वांछित कार्यशीलता आवंटित करने के लिए

पहले कीबोर्ड का प्रकार ढूंढें:

टर्मिनल में निम्नलिखित कमांड चलाएँ:

lsusb 

आउटपुट कीबोर्ड प्रकार निर्धारित करता है:

...
Bus 004 Device 022: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0
...    

इसके बाद दिखाई देता है ID। इस मामले में यह है045e:00db

दूसरा स्कैकोड और कुंजी का नाम ढूंढता है।

उन्हें निर्धारित करने के लिए, हम उस evtestप्रोग्राम का उपयोग करते हैं जो टर्मिनल पर किसी विशिष्ट डिवाइस की ईवेंट जानकारी को लॉग आउट करता है:

evtest

यदि आपके पास प्रोग्राम नहीं है, तो निम्न कमांड चलाकर इसे स्थापित करें:

sudo apt-get install evtest

evtestप्रोग्राम चलाने से हमें निम्नलिखित आउटपुट मिलते हैं:

No device specified, trying to scan all of /dev/input/event* Available devices: 
/dev/input/event0:    Power Button     
/dev/input/event1:    Power Button     
/dev/input/event2:    PixArt USB Optical Mouse   
/dev/input/event3:    Microsoft Natural® Ergonomic Keyboard 4000   
/dev/input/event4:    Microsoft Natural® Ergonomic Keyboard 4000   
/dev/input/event5:    HDA Intel Front Headphone     
/dev/input/event6:    HDA Intel Line Out     
/dev/input/event7:    HDA Intel Line   
/dev/input/event8:    HDA Intel Rear Mic     
/dev/input/event9:    HDA Intel Front Mic     
/dev/input/event10:   HDA ATI HDMI HDMI/DP,pcm=3
Select the device event number [0-10]:

आउटपुट बहुत अधिक आत्म व्याख्यात्मक है, कीबोर्ड के लिए उपयुक्त संख्या डालें, जो यहां संख्या है 3फिर हिट दर्ज करें:

ऐसा करने पर, टर्मिनल पर बहुत सारी जानकारी का उत्पादन होगा और निम्नलिखित पंक्तियों में समाप्त होगा:

... 

Testing ... (interrupt to exit)
Event: time 1472203902.240594, type 17 (EV_LED), code 0 (LED_NUML), value 0
Event: time 1472203902.240594, -------------- SYN_REPORT ------------
Event: time 1472203902.281456, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70058
Event: time 1472203902.281456, type 1 (EV_KEY), code 96 (KEY_KPENTER), value 0
Event: time 1472203902.281456, -------------- SYN_REPORT ------------

अब कीबोर्ड पर हर की-प्रेस के साथ यह महत्वपूर्ण जानकारी को मिटा देता है। उदाहरण के लिए दाएं शिफ्ट शो के आगे स्लैश कुंजी :

Event: time 1472205062.294078, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70038
Event: time 1472205062.294078, type 1 (EV_KEY), code 12 (KEY_SLASH), value 0
Event: time 1472205062.294078, -------------- SYN_REPORT ------------

लॉग की पहली पंक्ति में कीबोर्ड पर वास्तविक कुंजी के बारे में जानकारी होती है जैसे scancodeकि मूल्य के बाद आती है। इस मामले में यह 70038 है

दूसरी पंक्ति में कुंजी के नाम की तरह निर्दिष्ट कार्यक्षमता जानकारी है। इस मामले में यह SLASH है । उनके उचित नाम खोजने के लिए अन्य कुंजियों की जाँच करें।

तो संक्षेप में:

  • हमारा कीबोर्ड प्रकार है: 045e: 00db
  • स्लैश कुंजी का स्कैकोड है: 70038
  • असाइन करने के लिए कुंजी का नाम SLASH है

आवश्यक जानकारी एकत्र करने के बाद हम विन्यास फाइल बनाते हैं:

sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb

इन्सर्ट मोडi को सक्रिय करने के लिए हिट करें और निम्न टाइप करें:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_70038=minus      

escapeटाइप करें :wqऔर हिट दर्ज करके दबाएं और बाहर निकलें ।

फिर कॉन्फ़िगरेशन को प्रभावी करने के लिए निम्न दो आदेश चलाएँ:

sudo udevadm hwdb --update
sudo udevadm control --reload

अंत में कीबोर्ड को अनप्लग करें और इसे फिर से प्लग करें।

कॉन्फ़िगरेशन फ़ाइल के बारे में कुछ नोट्स:

  • फ़ाइल का प्रारूप बिल्कुल वैसा ही होना चाहिए जैसा कि रिकॉर्ड मैप करने से पहले का स्थान महत्वपूर्ण है।
  • इसके बजाय sudoeditआप किसी अन्य पाठ संपादक का उपयोग कर सकते हैं, बस ऊपर बताए अनुसार फ़ाइल के सटीक प्रारूप का पालन करना याद रखें।
  • कीबोर्ड प्रकार में दो वर्ण जोड़े गए हैं: vऔर pजो विक्रेता और उत्पाद के लिए खड़े हैं। वे महत्वपूर्ण भी हैं।
  • कॉन्फ़िगरेशन फ़ाइल में कीबोर्ड प्रकार को अपरकेस लिखा गया है। हमारा कीबोर्ड प्रकार 045e: 00db था लेकिन कॉन्फ़िगरेशन में हम v045Ep00DB * सम्मिलित करते हैं
  • कुंजी का स्केनोड ठीक उसके बाद आता है KEYBOARD_KEY_
  • कॉन्फ़िगरेशन फ़ाइल में लोअरकेस में मुख्य नाम दिखाई देता है
  • आप इस ट्यूटोरियल का अनुसरण करते हुए अपने कीबोर्ड की हर कुंजी को कस्टमाइज़ कर सकते हैं।

3

समस्या यह है कि evdev ड्राइवर keycodes पर ध्यान नहीं देता> 255
समाधान, मार्को चियापेरो के लिए धन्यवाद :

1) आपको उन सभी रीमैपिंग को परिभाषित करना होगा जिनकी आपको आवश्यकता है (के रूप में) 
"स्केनकोड कीकोड" सूची) और उन्हें "/ lib / udev / keymaps /" के तहत एक फ़ाइल में रखें 
(उदाहरण के लिए मैंने वहां लॉजिटेक-एलएक्स 710-कॉर्डलेस बनाया)। आप पा सकते हैं
स्केनोड्स का उपयोग करते हुए एक्सटेस्ट ("सुडो एवटेस्ट / डेव / इनपुट / इवेंटएक्स", जहां एक्स आपका है 
कीबोर्ड डिवाइस। सावधान रहें, कभी-कभी इन अतिरिक्त कुंजियों के माध्यम से उजागर किया जाता है
एक अलग डिवाइस या आपका माउस इंटरफ़ेस: उदा। Event3 -> kbd, event4 ->
माउस और अतिरिक्त कुंजी)। यहाँ कुछ नमूना उत्पादन:

घटना: समय 1294153475.909379, टाइप 4 (विविध), कोड 4 (स्कैनकोड), मान c1028
"c1028" आपके कीमैप फ़ाइल में आपके द्वारा लिए जा रहे स्कैन्कोड मान है, फिर 
पहले बताए अनुसार input.h से एक नंबर उठाएं और इसे रूपांतरित करें 
हेक्साडेसिमल। फिर रिमैप जोड़ी को अपनी फ़ाइल में लिखें, शायद एक वर्णनात्मक के साथ
इस तरह टिप्पणी करें:

0xC1028 0x9a # रोटेट बटन

हर कुंजी> 255 के लिए Iterate।

2) आपको udv को बताना होगा कि वह इस रीमैपिंग फ़ाइल को हर बार लागू करे 
आपका कीबोर्ड, इसलिए "/lib/udev/rules.d/95-keymap.rules" फ़ाइल जोड़ को संपादित करें 
udv नियम जो आपके HW से मेल खाता है। कृपया मुझे एक नियम को परिभाषित करने के लिए न कहें
आप। 
नोट: आप तुरंत अपने कीमैप फ़ाइल को स्वयं टाइप करके लागू कर सकते हैं 
"sudo / lib / udev / keymap / dev / input / eventX / lib / udev / keymaps / $ your_FILE" और 
एक बार फिर से इसे सत्यापित करें।

अब, आप Gnome शॉर्टकट संपादक का उपयोग करके देख सकते हैं कि कुंजी अब हैं 
एक्स के अंदर प्रयोग करने योग्य और नए शॉर्टकट बनाएं। हालाँकि ऐसा हो सकता है कि नहीं
कीसम को उस कीकोड को सौंपा गया है (ताकि आप XF86Foo के बजाय 0xXY देखेंगे)। 
आप xmodmap -pke के माध्यम से करंट मैपिंग देख सकते हैं, आउटपुट को a में सेव कर सकते हैं 
यदि आवश्यक हो तो फ़ाइल और उसे संपादित करें (एक पूर्ण कुंजी कोड कोड सूची में उपलब्ध है
"/ Usr / lib / X11 / XKeysymDB")।
एक बार जब आप उन कुंजियों को जोड़ देते हैं, जिन्हें आप हटाते हैं, तो आप इस फ़ाइल को सहेज सकते हैं
के रूप में ~ / .Xmodmap (या के रूप में / आदि / X11 / Xmodmap अगर आप हर उपयोगकर्ता के लिए आवेदन करना चाहते हैं)।

मुझे पता है कि मेरे इच्छित बटन c022d और c022e हैं, लेकिन मुझे input.h नहीं मिल रहा है।
मार्टिन यूडिंग

मैं समझता हूँ के रूप में (लेकिन मुझे नहीं परीक्षण क्योंकि मैं इस हार्डवेयर की जरूरत नहीं है सकते हैं) क्या तुम सच में input.h की जरूरत नहीं है, तो आप सिर्फ संपादित करने के लिए इस फ़ाइल की जरूरत है: /lib/udev/rules.d/95-keymap.rules। (लॉन्चपैड पर यहां हो सकता है कि आप एक ही हार्डवेयर वाले लोगों को ढूंढ सकते हैं इसलिए बग्सलाउन्चैप्ड.नेट / जुबंट /+source/xorg-server/+bug/313514 ) की मदद कर सकते हैं । क्या आपने ऊपर बताई गई फाइल को एडिट किया है?
देसगुआ

1
यह बहुत तकनीकी है और अधिकांश लोगों के लिए एक जवाब अव्यवस्थित है। कुछ गंभीर अंतराल: उपयुक्त / देव / इनपुट / ईवेंटएक्स का निर्धारण करने में कोई मदद नहीं, अस्पष्ट चरणों को प्रासंगिक जानकारी के साथ मिश्रित किया गया और कीमैप बनाने के लिए निर्देश न मांगने का अनुरोध किया गया।
Alain O'Dea

1
स्पष्ट रूप से डिफ़ॉल्ट रूप से इसे और भी बदतर बनाकर स्थापित नहीं किया गया है।
Alain O'Dea

परीक्षण और त्रुटि के माध्यम से मैंने पाया कि मेरा कीबोर्ड / देव / इनपुट / ईवेंट 3 है और स्पष्ट रूप से ज़ूम स्लाइडर से किसी भी घटना को नहीं उठाता है।
Alain O'Dea

0

मेरी मशीन पर, अतिरिक्त कुंजियाँ (HomePage, Search, Calc, आदि) और जूम इनपुट भेजे गए थे, हालांकि / dev / input / event5 जबकि साधारण कुंजी / dev / input / event4 के माध्यम से भेजे गए थे। ज़ूम कुंजी मूल्य कतार के प्रवाह से सहमत है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.