Pertanyaan Buat penggeser pembesaran dari Microsoft Natural Ergonomic Keyboard 4000 dan 7000 gulir ke atas dan ke bawah, di 14.04 (Tepercaya)


Saya mencoba menggunakannya tutorial ini untuk membuat tombol gulir berfungsi pada Microsoft Natural Ergonomic Keyboard 4000. Tapi saya menghadapi kesalahan berikut:

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

Saya memiliki versi udev 204-5ubuntu20.2 (versi yang ditemukan di Trusty)

Saya perhatikan bahwa versi ini tidak termasuk keymap alat. Tapi saya perhatikan itu lebih besar udev versi (yang tersedia untuk Debian, misalnya) termasuk alat ini.

Bisakah seseorang menjelaskan diff ini untuk saya? =) Dan apa yang harus saya lakukan dalam kasus ini - instal paket dari repo Debian?


27
2018-05-25 07:28


asal


Apakah Anda ingin mengatasi masalah ini menggunakan udev atau apakah Anda baik-baik saja dengan alternatif? Saya akan sedikit enggan untuk menginstal paket debian udev yang tidak dikemas di ubuntu. - jobin
ada alternatif yang diterima =) - dizpers
Apakah ini membantu? - jobin
Apa yang tidak lagi dikirimkan keymap utilitas lakukan? - matt
Saya telah memperbarui tutorial saya (yang Anda tautkan) untuk menyertakan jawaban di bawah ini. Terima kasih :-) - Terence Eden


Jawaban:


Jika Anda melihat /lib/udev/rules.d/60-keyboard.rules Anda akan melihat bahwa semuanya telah dipermainkan. Ini hanyalah bagian dari penggabungan udev ke dalam sistem yang telah berlangsung.

Semua aturan perangkat keras dikompilasi ke dalam basis data perangkat keras biner. Ini mengikuti format yang sangat aneh. Aturan yang ada untuk keyboard yang dikirimkan dengan udev tinggal di /lib/udev/hwdb.d/60-keyboard.hwdb. Lihatlah itu tapi jangan edit (pembaruan mungkin akan menimpanya).

Untuk menambahkan aturan khusus Anda, kami akan membuat file baru di /etc/udev/hwdb.d/ dengan berlari sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb. Yang perlu Anda lakukan adalah tempelkan berikut ini -

Jika Anda menggunakan model 4000:

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

Jika Anda menggunakan model 7000:

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

Ini diadaptasi dari tutorial yang Anda posting sehingga Anda mungkin perlu menyesuaikan berdasarkan keyboard Anda. Melihat lsusb dan pastikan vendor:product kode di atas (as v####p####) benar. Itu tidak akan berhasil jika tidak cocok.

Setelah selesai mengedit, rekompilasi hwdb yang udev gunakan:

sudo udevadm hwdb --update

Dan kemudian kamu mungkin perlu di-plug ulang. Jika ini adalah keyboard PS / 2 Anda mungkin perlu reboot. Dalam beberapa kasus Anda juga perlu melakukan reboot.


25
2018-05-29 08:28



Thx for reply! hwdb.d dir kosong, rules.d hanya berisi 3 file (70-persistent-cd.rules, 70-persistent-net.rules, README). Jadi, apakah maksud Anda saya harus membuat file baru? Atau saya harus mengeditnya? - dizpers
Ya Anda harus membuat file baru. Aturan keyboard yang ada sedang duduk /lib/udev/hwdb.d/60-keyboard.hwdb tetapi pengeditannya akan hilang setelah pembaruan udev. - Oli♦
sayangnya, tidak membuat tombol target berfungsi - dizpers
@matt, Anda dapat menempatkan beberapa alias sebagai sini - user.dz
Alih-alih mencabut | mencabut yang bisa digunakan udevadm trigger /dev/input/by-id/usb-Microsoft-* untuk memicu pembaruan - Alexandr Priymak


Ubuntu 15.10: Saya tidak berhasil dengan jawaban sebelumnya.

Saya telah berhasil menggunakan pendekatan yang mirip dengan yang sebelumnya - instruksi yang disebutkan di /lib/udev/hwdb.d/60-keyboard.hwdb.

Saya telah membuat file hwdb baru menggunakan sudo nano /etc/udev/hwdb.d/70-keyboard.hwdb mengandung:

# Microsoft Natural Ergonomic Keyboard 4000 - remap zoom in / out ke halaman atas / bawah
evdev: masukan: b0003v045Ep00DB *
 KEYBOARD_KEY_c022d = pageup
 KEYBOARD_KEY_c022e = pagedown

setelah itu saya sudah lari

sudo udevadm hwdb --perbarui
sudo udevadm control --reload

dan replikan keyboard dan itu berhasil.

Untuk model 7000 digunakan evdev:input:b003v045Ep071D*


34
2017-11-26 11:21



Ini adalah jawaban yang benar untuk Ubuntu 16.04 - Greg Dan
Terima kasih. Memang terlihat seperti itu keyboard: definisi tidak lagi bekerja pada Ubuntu 1604 dan perlu evdev:. Bahkan ada pemetaan default di /lib/udev/hwdb.d/60-keyboard.hwdb untuk model 4000 yang memetakan mereka zoomin/zoomout - namun X sepenuhnya mengabaikan peristiwa (xev tidak menunjukkan apa-apa) sehingga Anda masih memerlukan perubahan konfigurasi seperti ini. - wump
Itu b0003 terlihat seperti spesifik-bus (jadi mungkin hanya berfungsi di beberapa port USB). Jika sesuatu seperti itu b*v045Ep071D* bekerja, itu mungkin lebih baik. - Oli♦
Terima kasih, ini berfungsi di Ubuntu 16.04 (evdev:input:XXX dari pada keyboard:usb:YYY). Anda juga dapat menggunakan pemetaan yang berbeda pageup/pagedown. Misalnya, saya menggunakan scrollup dan scrolldown untuk melakukan scrolling nyata. - Martin Grůber
Bekerja di Kubuntu 17.10 juga - OOPMan


Solusi asli diposting oleh Oli tidak bekerja untuk saya, tetapi bekerja setelah saya mengubah nomor kunci "0c022d" dan "0c022e" untuk "c022d" dan "c022e". Saya menggunakan model 4000, jadi saya tidak dapat memverifikasi jika perubahan yang sama diperlukan untuk model 7000.

Untuk mengulang jawaban Oli, inilah yang saya lakukan: buat file baru dengan menjalankan sudo nano /etc/udev/hwdb.d/61-keyboard-local.hwdb. Sisipkan baris berikut ke file (untuk model 4000):

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

Setelah mengedit file, mengkompilasi ulang hwdb yang menggunakan udev:

sudo udevadm hwdb --update

Kemudian pasang kembali keyboard.


7
2018-04-29 22:21



Terima kasih. Anehnya saya perlu melakukan perubahan ini juga sekarang, dan juga restart diperlukan setelah semua (bukan hanya replging). - matt
bekerja untuk saya di Ubuntu 15.04. Terima kasih! - Pierre
Ini berhasil bagi saya di Debian Jessie 8.5. - Nicolás
Saya ingin membeli keyboard ekonomi, dan saya ingin tahu, apakah itu bekerja dengan 16,04 LTS? Atau tidak ada masalah seperti ini di sana. - Arpad Horvath


Menambah jawaban Oli, Jika Anda ingin menggulir baris seperti pada mouse, Anda dapat mengubah pageup / pagedown menjadi naik / turun dalam aturan kustom Anda. Seperti:

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

3
2018-05-27 02:16





Solusi bagus adalah sini, dan saya hanya dapat menambahkan bahwa Anda dapat memetakan kunci ke kunci X yang tidak terpakai seperti itu:

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

Nama yang tepat untuk digunakan, bukan katakana dapat ditemukan sini.

Setelah reboot ;-) Anda bisa mengujinya zoomin dan zoomout kunci berhasil dipetakan, dan juga untuk mengetahui nama-nama kunci yang tepat (untuk digunakan di rc.xml untuk OpenBox WM, misalnya) menggunakan 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
...

Sekarang Anda dapat menghubungkan kunci baru ke tindakan yang sepenuhnya arbitrer. Dalam kasus manajer jendela OpenBox saya menggunakan sesuatu seperti ini:

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

1
2017-07-15 17:34