Microsoft Natural Ergonomic Keyboard 4000 ve 7000'in yakınlaştırma kaydırıcısını 14.04'te yukarı ve aşağı kaydırın (Güvenilir)


29

Bu öğreticiyi kaydırma düğmesinin Microsoft Natural Ergonomic Keyboard 4000'de çalışmasını sağlamak için kullanmaya çalıştım . Fakat şu hata ile karşılaştım:

sudo: /lib/udev/keymap: command not found

Ben udev versiyonum var 204-5ubuntu20.2( Trusty'de bulunan versiyon)

Bu sürümün keymaparaç içermediğini fark ettim . Ancak daha büyük udevsürümlerin ( örneğin Debian için kullanılabilir ) bu aracı içerdiğini fark ediyorum .

Biri bu farkı benim için açıklayabilir mi? =) Ve bu durumda ne yapmalıyım - paketi Debian repo'dan yükleyin?


Bu sorunu udev kullanarak mı çözmek istiyorsunuz yoksa alternatifler konusunda iyi misiniz? Paketlenmemiş udev debian paketlerini ubuntu'ya yüklemek konusunda biraz isteksiz olurdum.
jobin

herhangi bir alternatif açığız =)
Dmitry Belaventsev

Does bu yardım?
jobin

Artık gönderilmeyen keymaphizmet programı ne işe yarıyor?
matt

Aşağıdaki cevabı eklemek için eğitimimi (bağlantı kurduğunuz) güncelledim. Thanks :-)
Terence Eden

Yanıtlar:


27

Eğer bakarsanız, /lib/udev/rules.d/60-keyboard.rulesher şeyin etrafta dolaştığını göreceksiniz. Bu, devam eden sisteme udev birleşmesinin bir parçası.

Tüm donanım kuralları ikili bir donanım veritabanında derlenir. Bunlar gerçekten garip bir formatta. Uudev ile birlikte gelen klavyeler için mevcut kurallar mevcuttur /lib/udev/hwdb.d/60-keyboard.hwdb. Şuna bak ama düzenlemeyin (güncellemeler muhtemelen üzerine yazacaktır).

Özel kurallarınızı eklemek için, /etc/udev/hwdb.d/çalıştırarak içinde yeni bir dosya oluşturacağız sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb. Tek yapmanız gereken aşağıdakileri yapıştırmak -

4000 model kullanıyorsanız:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_0c022d=pageup
 KEYBOARD_KEY_0c022e=pagedown

7000 model kullanıyorsanız:

keyboard:usb:v045Ep071D*
 KEYBOARD_KEY_0c022d=pageup
 KEYBOARD_KEY_0c022e=pagedown

Bu, gönderdiğiniz öğreticiden uyarlanmıştır, bu nedenle klavyenizi temel alarak ince ayar yapmanız gerekebilir. Bak lsusbve emin olun vendor:product(yukarıdaki kod v####p####) doğrudur. Eşleşmezlerse işe yaramaz.

Düzenlemeyi hwdbtamamladığınızda, udev'in kullandığı diziyi yeniden derleyin :

sudo udevadm hwdb --update

Ve sonra yeniden takmanız gerekebilir . Bir PS / 2 klavyesi ise, yeniden başlatmanız gerekebilir. Bazı durumlarda da yeniden başlatmanız gerekebilir.


Cevap için teşekkürler! hwdb.ddir, boş rules.dsadece 3 dosyalarını içeren ( 70-persistent-cd.rules, 70-persistent-net.rules, README). Yani, yeni bir dosya oluşturmam gerektiğini mi kastettin? Ya da düzenlemek için bir miktar olmalı?
Dmitry Belaventsev

Evet, yeni bir dosya yaratıyor olmalısın. Mevcut klavye kuralları oturuyor /lib/udev/hwdb.d/60-keyboard.hwdbancak udev güncellemelerinin ardından yapılan düzenlemeler kaybolacak.
Oli

2
ne yazık ki, çalışmak için hedef buton yapmaz
Dmitry Belaventsev

1
@ matt, burada
user.dz

1
Takmak yerine | unpluging udevadm trigger /dev/input/by-id/usb-Microsoft-*(güncelleme), güncellemeyi tetiklemek için kullanabilirsiniz
Alexandr Priymak

37

Ubuntu 15.10 : Önceki cevaplarda başarı elde etmedim.

Daha öncekilerle benzer bir yaklaşım kullandım - talimatlarda bahsedilmişti /lib/udev/hwdb.d/60-keyboard.hwdb.

Aşağıdakileri kullanarak yeni hwdb dosyası oluşturdum sudo nano /etc/udev/hwdb.d/70-keyboard.hwdb :

# Microsoft Natural Ergonomik Klavye 4000 - sayfa yukarı / aşağıya yakınlaştır / uzaklaştır
evdev: girdi: b0003v045Ep00DB *
 KEYBOARD_KEY_c022d = PageUp
 KEYBOARD_KEY_c022e = Pagedown

ondan sonra koştum

sudo udevadm hwdb - güncelleme
sudo udevadm denetimi - yeniden yükle

ve klavyeyi çıkardı ve çalıştı.

7000 modeli için evdev:input:b003v045Ep071D*


9
Bu Ubuntu 16.04 için doğru cevaptır
Greg Dan

2
Teşekkürler. Gerçekten de, keyboard:tanımların artık Ubuntu 1604 üzerinde çalışmadığı ve olması gerektiğine benziyor evdev:. /lib/udev/hwdb.d/60-keyboard.hwdbOnları zoomin/ ile eşleyen 4000 modeli için varsayılan bir haritalama bile vardır zoomout- ancak X olayları tamamen görmezden gelir (xev hiçbir şey göstermez), bu nedenle yine de böyle bir yapılandırma değişikliğine ihtiyacınız vardır.
16'da

2
Veri b0003yoluna özgü gibi görünüyor (bu nedenle yalnızca bazı USB bağlantı noktalarında çalışabilir). Gibi bir şey b*v045Ep071D*çalışıyorsa, bu daha iyi olabilir.
Oli

3
Teşekkürler, Ubuntu 16.04'te ( evdev:input:XXXyerine keyboard:usb:YYY) çalışıyor. pageup/ Yerine farklı haritalama da kullanabilirsiniz pagedown. Örneğin, ben kullanıyorum scrollupve scrolldowngerçek kaydırmayı yapmak.
Martin Grůber

1
Kubuntu
17.10'da

7

Oli tarafından gönderildi orijinal çözüm benim için çalışmalarını yoktu, ama anahtar numaralarını değiştirdikten sonra çalışır "0c022d"ve "0c022e"hiç "c022d"ve "c022e". 4000 model kullanıyorum, bu yüzden 7000 model için aynı değişikliğin gerekli olup olmadığını doğrulayamıyorum.

Oli'nin cevabını tekrarlamak için yaptığım şey şu: Koşarak yeni bir dosya oluşturun sudo nano /etc/udev/hwdb.d/61-keyboard-local.hwdb. Aşağıdaki satırları dosyaya yapıştırın (4000 model için):

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=pageup
 KEYBOARD_KEY_c022e=pagedown

Dosyayı düzenledikten sonra udev'in kullandığı hwdb'yi tekrar derleyin:

sudo udevadm hwdb --update

Sonra klavyeyi yeniden takın.


Teşekkürler. İşin garibi, şimdi de bu değişikliği yapmam gerekiyordu ve ayrıca hepsinden sonra yeniden başlatma gerekliydi (sadece yeniden değil).
matt

15.04'te Ubuntu'da benim için çalıştı. Teşekkürler!
Pierre,

Bu benim için Debian Jessie 8.5'te çalıştı.
Nicolás

Ekonomik bir klavye almak istiyorum ve merak ediyorum, 16.04 LTS'de çalışıp çalışmadığını merak ediyorum. Veya orada böyle bir sorun yoktur.
Arpad Horvath

4

Oli'nin cevabını ekleyerek, Fare üzerinde olduğu gibi satır kaydırma yapmak istiyorsanız, özel kuralınızda sayfa yukarı / aşağı sayfa düzenini yukarı / aşağı olarak değiştirebilirsiniz. Sevmek:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=up
 KEYBOARD_KEY_c022e=down

Bu arada: 18.04'te Yukarı / Aşağı varsayılandır.
LinuxLuigi

1

Güzel bir çözüm burada ve sadece kullanılmayan X tuşlarına tuşları eşleyebileceğinizi ekleyebilirim:

$ cat /lib/udev/rules.d/95-keymap.rules
...
ENV{ID_VENDOR}=="Microsoft", ENV{ID_MODEL_ID}=="00db", RUN+="keymap $name 0xc022d katakana 0xc022e katakanahiragana
...

Kullanmak yerine uygun isimler buradakatakana bulunabilir .

Yeniden başlattıktan sonra ;-) bunu zoominve zoomoutanahtarların başarıyla eşlendiğini ve ayrıca anahtarların uygun adlarını bulmak rc.xmliçin (örneğin, OpenBox WM'de kullanmak için) aşağıdakileri kullanarak test edebilirsiniz xev:

$ xev
...
KeyRelease event, serial 46, synthetic NO, window 0x3c00001,
    root 0x291, subw 0x0, time 1492891, (-261,-61), root:(573,380),
    state 0x0, keycode 101 (keysym 0xff27, Hiragana_Katakana), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
...

Artık tamamen keyfi işlem için yeni anahtarlar bağlayabilirsiniz. Benim OpenBox pencere yöneticisi durumunda böyle bir şey kullandım:

$ cat <whatever>/rc.xml
...
<keybind key="Katakana">
  <action name="Execute">
    <command>volume_up.sh</command>
  </action>
</keybind>
<keybind key="Hiragana_Katakana">
  <action name="Execute">
    <command>volume_down.sh</command>
  </action>
</keybind>
...
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.