Buat slider zoom dari Microsoft Natural Ergonomic Keyboard 4000 dan 7000 gulir ke atas dan ke bawah, dalam 14,04 (Terpercaya)

29

Saya mencoba menggunakan tutorial ini untuk membuat scroll switch berfungsi pada Keyboard Microsoft Natural Ergonomis 4000 saya.

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

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

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

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

Dmitry Belaventsev
sumber
Apakah Anda ingin menyelesaikan masalah ini menggunakan udev atau Anda tidak keberatan dengan alternatif? Saya akan sedikit enggan untuk menginstal paket debian udev yang belum dikemas di ubuntu.
jobin
ada alternatif yang diterima =)
Dmitry Belaventsev
Apakah ini membantu?
jobin
Apa yang tidak dikirimkan lagi keymaputilitas lakukan sih?
matt
Saya telah memperbarui tutorial saya (yang Anda tautkan) untuk memasukkan jawaban di bawah ini. Terima kasih :-)
Terence Eden

Jawaban:

27

Jika Anda melihat /lib/udev/rules.d/60-keyboard.rulesAnda akan melihat bahwa semuanya telah berantakan. Ini hanya bagian dari merger udev ke dalam systemd 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 bersama udev tinggal /lib/udev/hwdb.d/60-keyboard.hwdb. Lihat itu tetapi jangan mengeditnya (pembaruan mungkin akan menimpanya).

Untuk menambahkan aturan khusus Anda, kami akan membuat file baru /etc/udev/hwdb.d/dengan menjalankan sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb. Yang perlu Anda lakukan adalah menempel di 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 disesuaikan dengan tutorial yang Anda posting sehingga Anda mungkin perlu mengubah berdasarkan keyboard Anda. Lihatlah lsusbdan pastikan vendor:productkode di atas (as v####p####) sudah benar. Itu tidak akan berhasil jika mereka tidak cocok.

Setelah selesai mengedit, kompilasi ulang hwdbyang udev gunakan:

sudo udevadm hwdb --update

Dan kemudian Anda mungkin perlu pasang kembali. Jika itu keyboard PS / 2, Anda mungkin harus mem-boot ulang. Dalam beberapa kasus Anda juga perlu melakukan reboot.

Oli
sumber
Terima kasih! hwdb.ddir kosong, rules.dhanya berisi 3 file ( 70-persistent-cd.rules, 70-persistent-net.rules, README). Jadi, maksud Anda apakah saya harus membuat file baru? Atau saya harus memiliki beberapa untuk diedit?
Dmitry Belaventsev
Ya Anda harus membuat file baru. Aturan keyboard yang ada sekarang ada /lib/udev/hwdb.d/60-keyboard.hwdbtetapi suntingan akan hilang setelah pembaruan udev.
Oli
2
sayangnya, tidak membuat tombol target berfungsi
Dmitry Belaventsev
1
@matt, Anda dapat memasukkan beberapa alias seperti di sini
user.dz
1
Alih-alih mencolokkan | mencabut satu dapat digunakan udevadm trigger /dev/input/by-id/usb-Microsoft-*untuk memicu pembaruan
Alexandr Priymak
37

Ubuntu 15.10 : Saya tidak berhasil dengan jawaban sebelumnya.

Saya telah berhasil menggunakan pendekatan yang mirip dengan yang sebelumnya - instruksi disebutkan dalam /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: input: b0003v045Ep00DB *
 KEYBOARD_KEY_c022d = pageup
 KEYBOARD_KEY_c022e = pagedown

setelah itu saya sudah lari

sudo udevadm hwdb --update
sudo udevadm control - reload

dan memasang kembali keyboard dan berfungsi.

Untuk penggunaan model 7000 evdev:input:b003v045Ep071D*

Adam Chýlek
sumber
9
Ini adalah jawaban yang benar untuk Ubuntu 16.04
Greg Dan
2
Terima kasih. Memang sepertinya keyboard:definisi tidak lagi berfungsi di Ubuntu 1604 dan itu perlu evdev:. Bahkan ada pemetaan default /lib/udev/hwdb.d/60-keyboard.hwdbuntuk model 4000 yang memetakannya ke zoomin/ zoomout- namun X benar-benar mengabaikan acara (xev tidak menunjukkan apa-apa) sehingga Anda masih memerlukan perubahan konfigurasi seperti ini.
wump
2
The b0003tampak seperti itu bus khusus (sehingga hanya bisa bekerja di beberapa port USB). Jika sesuatu seperti b*v045Ep071D*bekerja, itu mungkin lebih baik.
Oli
3
Terima kasih, ini berfungsi di Ubuntu 16.04 ( evdev:input:XXXbukan keyboard:usb:YYY). Anda juga dapat menggunakan pemetaan berbeda sebagai ganti pageup/ pagedown. Sebagai contoh, saya menggunakan scrollupdan scrolldownmelakukan pengguliran nyata.
Martin Grůber
1
Bekerja di Kubuntu 17.10 juga
OOPMan
7

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

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

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

Setelah mengedit file, kompilasi ulang hwdb yang udev gunakan:

sudo udevadm hwdb --update

Kemudian pasang kembali keyboard.

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

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

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=up
 KEYBOARD_KEY_c022e=down
r11
sumber
Omong-omong: Atas / Bawah adalah default di 18,04.
LinuxLuigi
1

Solusi yang bagus ada di sini , dan saya hanya dapat menambahkan bahwa Anda dapat memetakan kunci ke kunci X yang tidak digunakan 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 dan bukan katakanadapat ditemukan di sini .

Setelah reboot ;-) Anda dapat mengujinya zoomindan zoomoutkunci berhasil dipetakan, dan juga untuk mengetahui nama kunci yang tepat (untuk digunakan dalam rc.xmlOpenBox 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 sewenang-wenang. Dalam kasus OpenBox window manager 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>
...
dmitry_romanov
sumber