Klavye işlev tuşları, Fn'nin basılı tutulmasına bakılmaksızın her zaman medya kısayollarını tetikler

Aug 17 2020

Yakın zamanda bir Varmilo VA109M mekanik klavye satın aldım . Windows'ta iyi çalışıyor, ancak Ubuntu kurulumumu, Fn değiştirici tuşunu tutup tutmadığımdan bağımsız olarak F1-F12 işlev tuşlarının her zaman medya kısayollarını etkinleştirmek için görünmesi nedeniyle karıştırıyor gibi görünüyor. Örneğin, F12 kendi başına basarsam sistem hacmimi artıracak, Fn + F12'ye basarsam da aynısını yapacak; normal bir F12 tuşu gibi davranmasını sağlamanın bir yolu yoktur. Bu bana sorunlara neden oluyor çünkü çok fazla programlama yapıyorum ve birçok IDE kısayolu standart işlev tuşlarına dayanıyor.

Fn + Esc tuşunu basılı tutarak klavyenin dahili ayarlarını sıfırlamayı denedim, ancak bu yardımcı olmadı. Windows kurulumum aynı makineye bu klavye ile mükemmel şekilde çalışıyor. Ubuntu'nun kafasının tam olarak neyi karıştırdığını denemek ve teşhis etmek için yapabileceğim bir şey var mı?

EDIT: lsusbaşağıdakileri çıkarır :

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

Yanıtlar

2 modwizcode Nov 07 2020 at 23:49

Bu çözülebilir!

Bu yüzden son zamanlarda bununla ilgili biraz araştırma yaptım ve Jd3eBP, klavye konusunda Apple klavyesi gibi davranırken haklıyken, muhtemelen Varmilo'nun fabrikada yanıp sönmesiyle ilgili bir sorun.

Yalnızca bellenim ve etiketlemede farklı olduğunu düşündüğüm klavyenin bir Mac sürümünü satıyorlar, varsayılan olarak Mac düzenini desteklediğini düşünüyorum, ayrıca muhtemelen tuşların sırasını değiştiren "windows moduna" geçebilmesi gerekiyor. Beklediğiniz gibi, Mac'lerin ona düzgün davranmasını sağlamak için kendisini bir Apple klavyesi olarak tanımlar.

Ancak, bu bellenimi sadece Mac yerine her klavyeye yanlışlıkla yazmış gibi görünüyorlar , bu, kimliği yok saydığı için Windows'ta fark edilmiyor, ancak linux'ta hid_apple sürücüsünü etkinleştirecek.

Çözüm:

Cevap kısmına. Bunu çözmek için iki büyük seçenek var, ikisini de test ettim ve ikincisini çok daha iyi buldum.

  1. Hid_apple'ı işlev tuşlarını normal şekilde işlediği bir moda değiştirin, afaik bu temelde sorunu çözecektir. Bunun nasıl yapılacağına dair talimatları burada bulabilirsiniz, Ubuntu'da da çalışacaktır.https://wiki.archlinux.org/index.php/Apple_Keyboard#Function_keys_do_not_work.

  2. Klavyeyi, ürün ve satıcı kimliği ile tespit edilmeyecek şekilde yeniden işaretleyin. Bu muhtemelen doğru cevaptır, ancak biraz daha risklidir. Üretici yazılımı dosyalarını buradan buradan alabilirsiniz.https://en.varmilo.com/keyboardproscenium/Driverdownload, VA87M indirmesini kullanarak. Güncelleyicinin kendisi çalışmadı (sanırım Çince yerelleştirmeye ihtiyacım vardı), böylece burada birine sağlanan güncelleyiciyi kullanabilirsinizhttps://www.reddit.com/r/Varmilo/comments/g4sabk/fn_lock_on_va87m/, resmi bellenim dosyasını kullanarak iyi bir önlem için. Buna güvenmiyorsanız, Varmilo'ya sorun hakkında e-posta gönderirseniz gerekli dosyaları sağlayacaklarını duydum.

Bu güncelleyici, resmi siteden şarap yükledikten sonra benim için şarap altında çalıştı. Bu, yalnızca satıcının ve ürün kimliğinin bir Apple klavyesi olarak ortaya çıkmaması için geri döner, ayrıca yalnızca Windows sürümünde kullanılmayan "Windows / mac moduna geç" işlevini de kaldırır. Eski davranışa dönmek için muhtemelen Mac bellenimini flaş edebilirsin, eğer istersen bunu test etmedim.

3 JdeBP Aug 21 2020 at 15:23

Varmilo, USB'yi doğru yapmaz. Önlemek.

WWW etrafında onun klavyeler çeşitli görülebilir yanlış Elma (Varmilo VS109M tarafından ve Varmilo VA88M tarafından iddia edildiği gibi satıcı kimliği 05ac) olarak üreticileri rapor, Selvi (satıcı kimliği 04b4 Varmilo Z104M tarafından iddia edildiği gibi ), ROF Elektroniği ( Varmilo VA87M tarafından iddia edildiği gibi satıcı kimliği ffff ), Nordic Semiconductor ( Varmilo VB87M tarafından talep edildiği üzere satıcı kimliği 1915 ), Holtek ve daha fazlası.

Bu açıkça hatalı ve oldukça sorunlu.

Bir kişinin donanım aygıtı üreticisini (PCI, USB, vb. Otobüslerin aygıt numaralandırmasında) Apple olarak ve ürününü de belirli bir Apple klavyesi olarak tanımlarsa, işletim sistemlerinin ona Apple klavyesi olarak davranması tamamen yasaldır . Satıcı Kimliği 05AC Ürün Kimliği 024F, Apple Alüminyum Klavyedir (ABD).

Buradaki sorun, VA109M'nin o klavye olmamasıdır .

Apple klavyesi, Fnçoğu klavyeden farklı olan , tuş için özel ve alışılmadık anlamlara sahiptir . Apple klavyelerine bağlanan Linux aygıt sürücüsü, Apple'ın özel USB HID "kullanımı" ile hid_appleApple'ın özel Fnanahtarını kullanması gerektiğini bilen .

VA109M, bir Apple klavye değildir. Bu bir Varmilo klavyesidir. Apple klavyesi gibi çalışmıyor. Apple için özel USB HID "kullanımı" yaymaz Fn. Çoğu klavyede gibi, yapmaz FnUSB üzerinden görünür hiç .

Yani, söylediği Apple klavyesi gibi sürmek işe yaramıyor .

  • Aynı zamanda uygulanması önemsiz olmayan kötü bir düzeltme, hid_applesürücüyü Linux'tan devre dışı bırakmak veya kaldırmaktır .
  • Kötü bir düzeltme, sürücünün vites durumunu tersine çevirme fnmode=2seçeneğini kullanmaktır . Bu, en azından medya / cihaz kontrol tuşları yerine işlev tuşları olan bu tuşların anlamsallığına geçiş yapar.hid_appleFn
  • Doğru düzeltme, klavyeleri Varmilo'dan ziyade satıcı kimliklerini doğru şekilde ayarlamayı bilen bir üreticiden satın almaktır.

daha fazla okuma

  • Vroomfondel (2020-06-17). udev: Klavye, Apple olarak yanlış algılandı . Debian hatası # 963002.
1 RoubenTchakhmakhtchian Aug 18 2020 at 03:59

Üreticiye göre: https://en.varmilo.com/keyboardproscenium/subject_product_detailed?subjectid=221

Yalnızca Windows OS, macOS kısayol tuşlarını desteklemez. Bu, işlev tuşuna atıfta bulunuyorsa, nedeni bu olabilir. Belki de macOS desteği, Linux desteği kadar eksiktir.