Tạo thanh trượt thu phóng của Bàn phím tiện dụng tự nhiên Microsoft 4000 và 7000 cuộn lên xuống, trong 14.04 (Trusty)


29

Tôi đã cố gắng sử dụng hướng dẫn này để làm cho công tắc cuộn hoạt động trên Bàn phím tiện dụng tự nhiên Microsoft 4000 của tôi. Nhưng tôi gặp phải lỗi sau:

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

Tôi có phiên bản udev 204-5ubuntu20.2(phiên bản được tìm thấy trong Trusty)

Tôi nhận thấy rằng phiên bản này không bao gồm keymapcông cụ. Nhưng tôi nhận thấy rằng udevcác phiên bản lớn hơn ( có sẵn cho Debian chẳng hạn ) bao gồm công cụ này.

Ai đó có thể giải thích điều này khác cho tôi? =) Và tôi nên làm gì trong trường hợp này - cài đặt gói từ repo Debian?


Bạn có muốn giải quyết vấn đề này bằng cách sử dụng udev hoặc bạn có ổn với các lựa chọn thay thế không? Tôi sẽ có một chút miễn cưỡng khi cài đặt các gói debian udev chưa đóng gói trên Ubuntu.
việc

mọi sự thay thế đều được chào đón =)
Dmitry Belaventsev

Điều này có giúp gì không?
việc

Những gì không còn keymaptiện ích vận chuyển làm gì?
matt

Tôi đã cập nhật hướng dẫn của mình (mà bạn đã liên kết đến) để bao gồm câu trả lời bên dưới. Cảm ơn :-)
Terence Eden

Câu trả lời:


27

Nếu bạn nhìn vào /lib/udev/rules.d/60-keyboard.rulesbạn sẽ thấy rằng mọi thứ đã bị rối tung xung quanh. Đây chỉ là một phần của việc sáp nhập udev vào systemd đã diễn ra.

Tất cả các quy tắc phần cứng được biên dịch vào cơ sở dữ liệu phần cứng nhị phân. Đây là một định dạng thực sự kỳ lạ. Các quy tắc hiện có cho bàn phím đi kèm với udev sống /lib/udev/hwdb.d/60-keyboard.hwdb. Nhìn vào đó nhưng không chỉnh sửa nó (các bản cập nhật có thể sẽ ghi đè lên nó).

Để thêm quy tắc tùy chỉnh của bạn, chúng tôi sẽ tạo một tệp mới /etc/udev/hwdb.d/bằng cách chạy sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb. Tất cả bạn cần làm là dán vào sau -

Nếu bạn đang sử dụng mô hình 4000:

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

Nếu bạn đang sử dụng mô hình 7000:

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

Điều này được điều chỉnh từ hướng dẫn bạn đã đăng, do đó bạn có thể cần phải điều chỉnh dựa trên bàn phím của mình. Nhìn vào lsusbvà chắc chắn rằng vendor:productmã ở trên (như v####p####) là chính xác. Nó sẽ không hoạt động nếu họ không phù hợp.

Khi bạn chỉnh sửa xong, hãy biên dịch lại cái hwdbmà udev sử dụng:

sudo udevadm hwdb --update

Và sau đó bạn có thể cần phải cắm lại. Nếu đó là bàn phím PS / 2, bạn có thể cần phải khởi động lại. Trong một số trường hợp bạn cũng cần khởi động lại.


Thx đã trả lời! hwdb.ddir là trống rỗng, rules.dchỉ chứa 3 tác phẩm ( 70-persistent-cd.rules, 70-persistent-net.rules, README). Vì vậy, ý bạn là tôi phải tạo một tệp mới? Hoặc tôi phải có một số để chỉnh sửa?
Dmitry Belaventsev

Vâng, bạn nên tạo một tập tin mới. Các quy tắc bàn phím hiện tại đang ngồi /lib/udev/hwdb.d/60-keyboard.hwdbnhưng chỉnh sửa nó sẽ bị mất sau khi cập nhật udev.
Oli

2
thật không may, không làm cho nút mục tiêu hoạt động
Dmitry Belaventsev

1
@matt, bạn có thể đặt nhiều bí danh như ở đây
user.dz

1
Thay vì cắm | udevadm trigger /dev/input/by-id/usb-Microsoft-*
rút phích

37

Ubuntu 15.10 : Tôi không có thành công với các câu trả lời trước đó.

Tôi đã sử dụng thành công cách tiếp cận tương tự như cách trước - hướng dẫn đã được đề cập trong /lib/udev/hwdb.d/60-keyboard.hwdb.

Tôi đã tạo tệp hwdb mới bằng cách sử dụng sudo nano /etc/udev/hwdb.d/70-keyboard.hwdb có chứa:

# Bàn phím tiện dụng tự nhiên của Microsoft 4000 - ánh xạ lại phóng to / thu nhỏ trang lên / xuống
evdev: đầu vào: b0003v045Ep00DB *
 KEYBOARD_KEY_c022d = trang
 KEYBOARD_KEY_c022e = pagedown

sau đó tôi đã chạy

sudo udevadm hwdb - cập nhật
kiểm soát sudo udevadm - tải lại

và cắm lại bàn phím và nó hoạt động.

Đối với mô hình 7000 sử dụng evdev:input:b003v045Ep071D*


9
Đây là câu trả lời đúng cho Ubuntu 16.04
Greg Dan

2
Cảm ơn. Nó thực sự trông giống như các keyboard:định nghĩa không còn hoạt động trên Ubuntu 1604 và nó cần phải như vậy evdev:. Thậm chí còn có một ánh xạ mặc định /lib/udev/hwdb.d/60-keyboard.hwdbcho mô hình 4000 ánh xạ chúng tới zoomin/ zoomout- tuy nhiên X hoàn toàn bỏ qua các sự kiện (xev không hiển thị gì) vì vậy bạn vẫn cần thay đổi cấu hình như thế này.
wump

2
Các b0003trông giống như nó xe buýt cụ thể (vì vậy nó chỉ có thể làm việc trong một số cổng USB). Nếu một cái gì đó như b*v045Ep071D*làm việc, điều đó có thể tốt hơn.
Oli

3
Cảm ơn, nó hoạt động trong Ubuntu 16.04 ( evdev:input:XXXthay vì keyboard:usb:YYY). Bạn cũng có thể sử dụng ánh xạ khác nhau thay vì pageup/ pagedown. Ví dụ, tôi đang sử dụng scrollupscrolldownđể thực hiện cuộn.
Martin Grůber

1
Cũng hoạt động trong
Kubfox

7

Giải pháp ban đầu được đăng bởi Oli không hiệu quả với tôi, nhưng nó hoạt động sau khi tôi thay đổi số chính "0c022d""0c022e"sang "c022d""c022e". Tôi đang sử dụng mô hình 4000, vì vậy tôi không thể xác minh nếu cần thay đổi tương tự cho mô hình 7000.

Để lặp lại câu trả lời của Oli's, đây là những gì tôi đã làm: tạo một tệp mới bằng cách chạy sudo nano /etc/udev/hwdb.d/61-keyboard-local.hwdb. Dán các dòng sau vào tệp (cho mô hình 4000):

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

Sau khi chỉnh sửa tệp, biên dịch lại hwdb mà udev sử dụng:

sudo udevadm hwdb --update

Sau đó cắm lại bàn phím.


Cảm ơn. Thật kỳ lạ, tôi cũng cần phải thực hiện thay đổi này ngay bây giờ và cũng cần phải khởi động lại sau tất cả (không chỉ là thay thế).
matt

làm việc cho tôi trên Ubuntu 15.04. Cảm ơn!
Pierre

Điều này làm việc cho tôi trên Debian Jessie 8.5.
Nicolás

Tôi muốn mua một bàn phím kinh tế, và tôi tò mò, liệu nó có hoạt động với 16.04 LTS không? Hoặc không có vấn đề như thế này.
Arpad Horvath

4

Thêm vào câu trả lời của Oli, Nếu bạn muốn cuộn dòng như trên chuột, bạn có thể sửa đổi pageup / pagedown thành lên / xuống trong quy tắc tùy chỉnh của mình. Như:

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

Nhân tiện: Lên / Xuống là mặc định trong 18.04.
LinuxLuigi

1

Giải pháp tuyệt vời đã có ở đây và tôi chỉ có thể thêm rằng bạn có thể ánh xạ các phím thành các phím X không sử dụng như thế:

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

Tên thích hợp để sử dụng thay vì katakanacó thể được tìm thấy ở đây .

Sau khi khởi động lại ;-) bạn có thể kiểm tra zoominzoomoutcác khóa được ánh xạ thành công và cũng để tìm ra tên thích hợp của các khóa ( rc.xmlví dụ sử dụng cho OpenBox WM) bằng cách sử dụng 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
...

Bây giờ bạn có thể kết nối các khóa mới để hành động hoàn toàn tùy ý. Trong trường hợp trình quản lý cửa sổ OpenBox, tôi đã sử dụng một cái gì đó như thế này:

$ 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>
...
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.