Microsoft Natural Ergonomic Keyboard 4000'in zum kaydırıcısını (ve diğer düğmeleri) nasıl çalıştırabilirim?


21

Ubuntu 10.10'da Microsoft Natural Ergonomic Keyboard 4000 kullanıyorum. Multimedya tuşları (Ses, Oynat / Duraklat) çalışır, Posta ve Hesap Makinesi düğmesi de çalışır.

Şimdi zoom kaydırıcısını kullanmayı çok isterdim, eğer mümkünse sayfa kaydırma özelliğini kullanmak isterdim. Bunu sağlamanın bir yolu var mı?


2
Bkz askubuntu.com/questions/471802/... . Buradaki eski cevaplar eski olabilir.
mat

Yanıtlar:


18

/etc/udev/rules.d/98-ms-ergo.rulesAşağıdaki içeriklere sahip dosyayı oluşturun :

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"

Bu, yüklü dosyaları değiştirmeden yakınlaştırma tuşunu sayfa yukarı / sayfa aşağıya eşleyecektir /lib/udev.

Eklendikten sonra, çalışmaya başlaması için klavyenizi fişten çekip çıkarmanız yeterlidir.


Bu benim için kusursuz bir şekilde Fedora 19 kullanarak çalıştı.
Rubens Mariuzzo

Microsoft Ergonomic 7000 için, model 00db yerine 071d (lsusb tarafından elde edildiği gibi) gibi görünüyor - yani eğer 7000 için bunu deneyen biri varsa, yukarıdaki dosyada 00db'yi 071d ile değiştirmeleri gerekiyor. Her neyse, benim durumumda (Ubuntu 14.04), bu işe yaramıyor, belki de bu evtest, Ergonomic 7000 klavyesinin diğer çoğu tuşunun aksine, zoom kaydırıcısının herhangi bir olayı tetiklemediğini gösteriyor. Web / Ana sayfa düğmesi de herhangi bir çıktı göstermediğinden emin değilim evtest- Ubuntu bunu seçse de.
matt

1
4000'in 14.04'te çalışmasını sağlayamıyorum. İçindeki etkinlikleri görmemek xev.
Michael

Bunu 14.10'da denedim ve işe yaramadı.
Rubens Mariuzzo

@Cocoabean xevda benim için çalışmıyor. Ne yapmasıdır evtest /dev/input/event3. Eğer event3diğer olaylar ile herhangi Bu anahtara reaksiyonu, test yoktur ( event[0..9]).
Nicolás

9

Xubuntu 13.10'da (belki Ubuntu 13.10'da da) aynı şekilde yapılabilir:

Anahtar eşlemeleri şurada düzenle /lib/udev/hwdb.d/60-keyboard.hwdb:

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

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

Koşmak sudo udevadm hwdb --update

Yeniden Başlatma.


1
Benim için
14.04'te

Benim 60-keyboard.hwdb, klavye ile usb: b0003v045Ep00DB *, MNEK4K için mevcut bir girdi. Eylemleri değiştirmek işe yaramadı. Bu işlemlerle yeni bir giriş eklemek işe yaradı.
Alrekr

16.04 tarihinde bir cazibe gibi çalıştı. Web sayfalarına göz atarken daha yumuşak bir kaydırma elde etmek için "yukarı" ve "aşağı" (sırasıyla "sayfa" ve "sayfalama" yerine) kullandım. Çok teşekkürler!
Pierre

Mevcut anahtarlara takma ad yerine , katakanave katakanahiragana(veya kullanılmayan başka bir anahtar kodu hal.freedesktop.org/quirk/quirk-keymap-list.txt adresinden ) eşleyebilirsiniz . Bu sayede ses seviyesini, dili, boyutu vb. Değiştirmek için tuşları değiştiricilerle birlikte tanıyabilir ve kullanabilirsiniz (iki yeni süper tuşun tadını çıkarması için pencere yöneticinizi yapılandırın).
dmitry_romanov 14:07

4

Yapılandırmak için Microsoft ergonomik klavye 4000 biz klavye beyanı ve tuşları haritalama için kayıtlar içeren bir yapılandırma dosyası oluşturmak zorunda.

Bunu yapmak için belirlememiz gereken üç tür bilgi vardır:

  • Klavye tipi
  • Anahtar scancodeklavyede gerçek anahtarıdır
  • Anahtar nameseçilen tuşa istenen işlevselliği atamak

İlk önce klavye türünü bulun:

Terminalde aşağıdaki komutu çalıştırın:

lsusb 

çıktı klavye tipini belirler:

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

Sonra görünür ID. Bu durumda045e:00db

İkinci olarak, tarama kodunu ve anahtarın adını bulun.

Onları belirlemek için, evtestterminaldeki belirli bir cihazın olay bilgilerini kaydeden programı kullanıyoruz :

evtest

Programınız yoksa, aşağıdaki komutu çalıştırarak yükleyin:

sudo apt-get install evtest

evtestProgramı çalıştırarak aşağıdaki çıktıyı elde ederiz:

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]:

Çıktı oldukça açıklayıcıdır, klavye için uygun sayıyı 3girin , buradaki sayı daha sonra enter tuşuna basın:

Bunu yapmak, terminal hakkında pek çok bilgi çıkartacaktır ve aşağıdaki satırlarda bitecektir:

... 

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 ------------

Şimdi klavyedeki her tuşa basıldığında, tuş bilgileri dışarı atılır. Örneğin , Sağ Vardiya'nın yanındaki Slash tuşu şunları gösterir:

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 ------------

Günlüğün ilk satırı , klavyedeki değerden sonra gelen gerçek tuşla ilgili bilgileri içerir scancode. Bu durumda 70038

İkinci satır , anahtarın adı gibi atanmış işlevsellik bilgilerini içerir . Bu durumda SLASH'dir . Uygun isimleri bulmak için diğer anahtarları inceleyin.

Yani kısaca:

  • Klavye tipimiz: 045e: 00db
  • Slash tuşunun tarama kodu : 70038
  • Atama anahtarının adı SLASH

Gerekli bilgileri topladıktan sonra yapılandırma dosyasını yaratırız:

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

Hit ietkinleştirmek için Ekle modu ve aşağıdakileri yazın:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_70038=minus      

Tuşuna basarak escapeyazıp kaydedin ve enter tuşuna basın :wq.

Ardından, yapılandırmanın etkili olması için aşağıdaki iki komutu çalıştırın:

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

Son olarak klavyeyi çıkarın ve tekrar takın.

Yapılandırma dosyası hakkında bazı notlar:

  • Dosyanın formatı tam olarak gösterildiği gibi olmalıdır, kayıtların haritalanmasından önceki alan çok önemlidir.
  • Bunun yerine sudoeditbaşka bir metin düzenleyiciyi kullanabilirsiniz, sadece yukarıda açıklandığı gibi dosyanın tam biçimini takip etmeyi unutmayın.
  • Klavye türüne eklenen iki karakter vardır: vve psatıcı ve ürün anlamına gelir. Onlar da önemlidir.
  • Klavye tipi, yapılandırma dosyasında büyük harfle yazılmıştır. Klavye tipimiz 045e: 00db idi ancak konfigürasyonda v045Ep00DB * yazıyoruz
  • Anahtarın tarama kodu hemen sonra gelir. KEYBOARD_KEY_
  • Anahtar adı yapılandırma dosyasında küçük harf olarak görünür.
  • Bu öğreticiyi izleyerek klavyenizdeki her tuşu hemen hemen özelleştirebilirsiniz.

3

Sorun olduğunu > evdev sürücü keycodes görmezden 255 . Marco Chiappero
sayesinde çözüm :

1) İhtiyacınız olan bütün mesajları (şeklinde) tanımlamanız gerekir. 
"scancode keycode" list) ve onları "/ lib / udev / keymaps /" altındaki bir dosyaya yerleştirin 
(örneğin orada logitech-lx710-akülü kablosuz yarattım). Bulabilirsiniz
evtest ("sudo evtest / dev / input / eventX") kullanarak tarama kodları, burada X 
klavye aygıtı Dikkatli ol, bazen bu ekstra tuşlar ...
farklı bir cihaz veya fare arayüzünüz: örn. olay3 -> kbd, olay4 ->
fare ve ekstra tuşlar). İşte bazı örnek çıktı:

Olay: saat 1294153475.909379, tür 4 (Çeşitli), kod 4 (ScanCode), değer c1028
"c1028", keymap dosyanıza yerleştireceğiniz tarama kodu değeridir, ardından 
input.h dosyasından daha önce anlatıldığı gibi bir sayı alın ve dönüştürün 
onaltılık. Ardından remap çiftini belki açıklayıcı bir şekilde dosyanıza yazın.
yorum, şunun gibi:

0xC1028 0x9a # döndür düğmesi

Her anahtar için> yineleyin> 255.

2) udev'e bu yeniden eşleme dosyasını her karşılaştığında uygulayacağını söylemelisin 
klavyenizde "/lib/udev/rules.d/95-keymap.rules" dosya ekini düzenleyin 
HW'nize uyan udev kuralı. Lütfen benden bir kural tanımlamamı istemeyin
sen. 
NOT: keymap dosyanızı hemen kendiniz yazarak uygulayabilirsiniz. 
"sudo / lib / udev / keymap / dev / input / eventX / lib / udev / keymaps / $ YOUR_FILE" ve 
bir kez daha en kötüsü ile doğrulayın.

Şimdi, tuşların şimdi olduğunu görmek için Gnome kısayol düzenleyicisini kullanabilirsiniz. 
X içinde kullanılabilir ve yeni kısayollar oluşturun. Ancak bu olabilir
keysym bu tuş koduna atanmıştır (bu nedenle XF86Foo yerine 0xXY göreceksiniz). 
Geçerli eşlemeleri xmodmap -pke ile görebilirsiniz, çıktıyı bir 
Dosyaya ihtiyacınız varsa düzenleyin (tam bir keyym kod listesi
"/ Usr / lib / X11 / XKeysymDB").
Kayıp aldığınız anahtarlara keysyms ekledikten sonra, bu dosyayı kaydedebilirsiniz.
~ / .Xmodmap (veya her kullanıcıya başvurmak istiyorsanız / etc / X11 / Xmodmap).

İstediğim düğmelerin c022d ve c022e olduğunu anlıyorum, ancak input.h dosyasını bulamıyorum.
Martin Ueding

Anlıyorum gibi gerçekten input.h ihtiyacım yok (bu donanımı yok çünkü ama ben testi olabilir), sadece düzenlemek için bu dosyayı gerekir: /lib/udev/rules.d/95-keymap.rules. (Launchpad'de burada olabilirsiniz, aynı donanıma sahip kişileri bu nedenle bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/313514 adresinde yardımcı olabilirsiniz ) bulabilirsiniz. Yukarıda bahsettiğim dosyayı düzenlediniz mi?
desgua

1
Bu çok fazla teknik ve çoğu insan için bir cevap dağınık. Birkaç ciddi boşluk: uygun / dev / input / eventX'in belirlenmesi konusunda yardım yok, bağlamsal bilgi ile karıştırılan açık olmayan adımlar ve keymap oluşturma talimatlarını sormama talepleri.
Alain O'Dea

1
evtest bunu daha da kötüleştirerek varsayılan olarak bile yüklenmedi.
Alain O'Dea

Deneme ve yanılma sonucunda klavyemin / dev / input / event3 olduğunu ve evtest'in zoom kaydırıcısından herhangi bir olay almadığını öğrendim.
Alain O'Dea

0

Makinemde, / dev / input / event5 olsa da ekstra tuşlar (HomePage, Search, Calc, vb.) Ve zoom girişi, sıradan tuşlar / dev / input / event4 aracılığıyla gönderilir. Yakınlaştırma anahtarı değeri, kuyruğu akışına katılıyor.

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.