कीबोर्ड फ़ंक्शन कुंजियाँ हमेशा मीडिया शॉर्टकट्स को ट्रिगर करती हैं, चाहे एफएन को नीचे रखा गया हो

Aug 17 2020

मैंने हाल ही में एक वर्मिलो VA109M मैकेनिकल कीबोर्ड खरीदा है । यह विंडोज पर ठीक काम करता है, लेकिन लगता है कि मेरे Ubuntu को स्थापित करने के लिए कि F1-F12 फ़ंक्शन कुंजियाँ हमेशा मीडिया शॉर्टकट सक्रिय करने के लिए दिखाई देती हैं, इस बात की परवाह किए बिना कि मैंने समर्पित Fn संशोधक कुंजी धारण की है या नहीं। उदाहरण के लिए, यदि मैं इसे अपने दम पर दबाता हूं, तो F12 मेरे सिस्टम की मात्रा बढ़ाएगा, और अगर मैं Fn + F12 दबाता हूं तो भी ऐसा ही होगा; सामान्य F12 कुंजी की तरह कार्य करने का कोई तरीका नहीं है। यह मुझे समस्याएं पैदा कर रहा है क्योंकि मैं बहुत सारी प्रोग्रामिंग करता हूं, और कई आईडीई शॉर्टकट मानक फ़ंक्शन कुंजियों पर भरोसा करते हैं।

मैंने Fn + Esc पकड़कर कीबोर्ड की आंतरिक सेटिंग्स को रीसेट करने की कोशिश की है, लेकिन इससे कोई मदद नहीं मिली। इस मशीन के साथ मेरा विंडोज इंस्टॉल एक ही मशीन पर काम करता है। क्या ऐसा कुछ है जिसे मैं करने की कोशिश कर सकता हूं और निदान कर सकता हूं कि उबंटू किस बारे में उलझन में है?

संपादित करें: lsusbनिम्न आउटपुट:

Bus 001 Device 003: ID 05ac:024f Apple, Inc. Varmilo Keyboard
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x05ac Apple, Inc.
  idProduct          0x024f 
  bcdDevice            1.00
  iManufacturer           1 
  iProduct                2 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x005b
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              350mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      75
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      85
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      33
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               4

जवाब

2 modwizcode Nov 07 2020 at 23:49

यह सॉल्व है!

इसलिए मैंने हाल ही में खुद इस बारे में कुछ शोध किया था और जबकि Jd3eBP ऐप्पल कीबोर्ड होने का नाटक करने वाले कीबोर्ड के बारे में सही है, यह वास्तव में वर्मिलो के कारखाने में चमकने के साथ एक मुद्दा है।

वे कीबोर्ड के एक मैक संस्करण को बेचते हैं जो मुझे लगता है कि केवल फर्मवेयर और लेबलिंग में भिन्न होता है, डिफ़ॉल्ट रूप से मुझे लगता है कि यह मैक लेआउट का समर्थन करता है, यह "विंडोज़ मोड" पर स्विच करने में सक्षम होना चाहिए, जो संभवतः कुंजी के क्रम को स्वैप करता है। आप क्या अपेक्षा करेंगे, यह मैक को ठीक से व्यवहार करने के लिए एक Apple कीबोर्ड के रूप में पहचानता है।

हालांकि ऐसा लगता है कि शायद वे गलती से उस मैक पर केवल मैक के बजाय हर कीबोर्ड पर फ़्लिकर करते हैं, जो विंडोज पर ध्यान देने योग्य नहीं है क्योंकि यह आईडी को अनदेखा करता है, लेकिन लिनक्स पर hid_apple ड्राइवर को सक्रिय करेगा।

उपाय:

उत्तर भाग पर। इसे हल करने के लिए दो बड़े विकल्प हैं, मैंने दोनों का परीक्षण किया और दूसरे को बहुत बेहतर पाया।

  1. Hid_apple को एक मोड में बदलें जहां यह फ़ंक्शन कुंजियों को सामान्य रूप से मानता है, इसे मूल रूप से समस्या का समाधान करेगा। आप यहाँ निर्देश दे सकते हैं कि कैसे करें, यह उबंटू पर भी काम करेगा।https://wiki.archlinux.org/index.php/Apple_Keyboard#Function_keys_do_not_work।

  2. उत्पाद और विक्रेता आईडी के साथ कीबोर्ड को वापस लाएं ताकि यह पता न चले। यह यकीनन सही जवाब है लेकिन थोड़ा अधिक जोखिम भरा है। आप यहां निर्माता कंपनी से फर्मवेयर फाइलें प्राप्त कर सकते हैं,https://en.varmilo.com/keyboardproscenium/Driverdownload, VA87M डाउनलोड का उपयोग कर। अपडेटर ने स्वयं काम नहीं किया (मुझे लगता है कि मुझे चीनी स्थानीयकरण स्थापित करने की आवश्यकता थी), इसलिए आप उस अपडेटर का उपयोग कर सकते हैं जिसे किसी व्यक्ति को यहां आपूर्ति की गई थीhttps://www.reddit.com/r/Varmilo/comments/g4sabk/fn_lock_on_va87m/, अच्छे उपाय के लिए आधिकारिक फर्मवेयर फ़ाइल का उपयोग कर। अगर आपको इस पर भरोसा नहीं है, तो मैं सुनता हूं कि अगर आप वर्मिलो को उस मुद्दे के बारे में ईमेल करते हैं जो वे आवश्यक फाइलें प्रदान करेंगे।

उस अपडेटर ने आधिकारिक साइट से वाइन स्थापित करने के बाद मेरे लिए शराब के तहत काम किया। यह सिर्फ Apple कीबोर्ड के रूप में नहीं आने के लिए विक्रेता और उत्पाद आईडी को वापस करता है, यह "विंडोज़ / मैक मोड में स्विच" कार्यक्षमता को भी हटा देता है जो विंडोज केवल संस्करण पर अप्रयुक्त था। आप शायद मैक फर्मवेयर को फ्लैश कर सकते हैं पुराने व्यवहार को वापस करने के लिए यदि आप चाहते हैं कि मैं हालांकि परीक्षण न करूं।

3 JdeBP Aug 21 2020 at 15:23

वर्मीलो यूएसबी सही नहीं करता है। से बचें।

WWW के आसपास यह देखा जा सकता है कि इसके कीबोर्ड विभिन्न निर्माताओं को Apple (विक्रेता ID 05ac के रूप में वर्मिलो VS109M और वर्मिलो VA88M द्वारा), सरू ( वार्मिलो Z104M द्वारा दावा किए गए विक्रेता ID 04b4 ), ROF Electronics () के रूप में अपने निर्माताओं को गलत तरीके से रिपोर्ट करते हैं। विक्रेता ID ffff, जैसा कि वर्मिलो VA87M द्वारा दावा किया गया है ), नॉर्डिक सेमीकंडक्टर (विक्रेता ID 1915 जैसा कि वर्मिलो VB87M द्वारा दावा किया गया है ), Holtek, और बहुत कुछ।

यह स्पष्ट रूप से गलत है, और अत्यधिक समस्याग्रस्त है।

यदि किसी का हार्डवेयर डिवाइस Apple के रूप में अपने निर्माता (PCI, USB, et al। बसों के डिवाइस एन्यूमरेशन में) की पहचान करता है और एक विशिष्ट Apple कीबोर्ड के रूप में उसका उत्पाद है, तो यह ऑपरेटिंग सिस्टम के लिए उस Apple कीबोर्ड के रूप में व्यवहार करने के लिए पूरी तरह से वैध है । विक्रेता ID 05AC उत्पाद ID 024F Apple एल्यूमिनियम कीबोर्ड (US) है।

यहाँ समस्या यह है कि VA109M वह कीबोर्ड नहीं है

Apple कीबोर्ड में Fnकुंजी के लिए विशेष और असामान्य शब्दार्थ हैं , जो कि अधिकांश कीबोर्ड से अलग हैं। लिनक्स डिवाइस ड्राइवर जो कि ऐप्पल कीबोर्ड से जुड़ा हुआ है hid_apple, और जो Fnअपने निजी USB HID "उपयोग" के साथ Apple की विशेष कुंजी को संभालना जानता है ।

VA109M एक Apple कीबोर्ड नहीं है। यह वर्मिलो कीबोर्ड है। यह Apple कीबोर्ड की तरह काम नहीं करता है। यह Apple विशेष USB HID "उपयोग" के लिए उत्सर्जन नहीं करता है Fn। सबसे कीबोर्ड की तरह, यह नहीं है FnUSB के माध्यम से दिखाई बिल्कुल

इसलिए इसे Apple कीबोर्ड की तरह चलाएं जो यह कहता है कि यह है, काम नहीं करता है

  • एक खराब फिक्स, जिसे लागू करने के लिए गैर-तुच्छ भी है, hid_appleलिनक्स से ड्राइवर को अक्षम करना या निकालना है ।
  • एक खराब फिक्स अपनी शिफ्ट की स्थिति को पलटने के fnmode=2लिए hid_appleड्राइवर के लिए विकल्प का उपयोग करना है Fn। मीडिया / उपकरण नियंत्रण कुंजी के बजाय फ़ंक्शन कुंजियाँ होने के कारण उन कुंजियों के शब्दार्थ पर कम से कम स्विच होता है।
  • सही निर्धारण एक निर्माता से कीबोर्ड खरीदना है, जो जानता है कि वर्मिलो के बजाय विक्रेता आईडी को ठीक से कैसे सेट किया जाए।

अग्रिम पठन

  • वरूमफॉन्डेल (2020-06-17)। udev: कीबोर्ड को Apple के रूप में गलत-पहचाना गया । डेबियन बग # 963002।
1 RoubenTchakhmakhtchian Aug 18 2020 at 03:59

निर्माता के अनुसार: https://en.varmilo.com/keyboardproscenium/subject_product_detailed?subjectid=221

केवल Windows OS, macOS शॉर्टकट कुंजियों का समर्थन नहीं करता है। यदि यह फ़ंक्शन कुंजी को संदर्भित करता है, तो यह उत्तर हो सकता है क्यों। शायद उनका macOS सपोर्ट उतना ही धब्बेदार है जितना कि उनका लिनक्स सपोर्ट।