Làm cách nào để làm cho thanh trượt thu phóng 4000 Bàn phím tự nhiên của Microsoft (và các nút khác) hoạt động?


21

Tôi sử dụng Bàn phím tiện dụng tự nhiên Microsoft 4000 trên Ubuntu 10.10. Các phím đa phương tiện (Âm lượng, Phát / Tạm dừng) cũng hoạt động, nút Thư và Máy tính.

Bây giờ tôi rất thích sử dụng thanh trượt thu phóng, nếu có thể tôi muốn sử dụng cuộn trang với điều đó. Có cách nào để kích hoạt điều đó?


2
Xem Askubfox.com/questions/471802/ trên . Câu trả lời trước đây có thể là lỗi thời.
matt

Câu trả lời:


18

Tạo tập tin /etc/udev/rules.d/98-ms-ergo.rulesvới nội dung sau:

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"

Điều này sẽ ánh xạ phím phóng to lên trang / xuống trang mà không thay đổi các tệp đã cài đặt trong /lib/udev.

Sau khi thêm, bạn chỉ cần rút phích cắm và cắm lại bàn phím để bàn phím bắt đầu hoạt động.


Điều này làm việc cho tôi hoàn hảo khi sử dụng Fedora 19.
Rubens Mariuzzo

Đối với Microsoft Ergonom 7000, mô hình có vẻ là 071d (như thu được bởi lsusb) chứ không phải 00db - vì vậy nếu bất cứ ai thử điều này cho 7000 thì có lẽ họ nên thay thế 00db bằng 071d trong tệp trên. Dù sao trong trường hợp của tôi (Ubuntu 14.04), điều đó không hoạt động, có lẽ nó liên quan đến thực tế evtestcho thấy thanh trượt thu phóng không kích hoạt bất kỳ sự kiện nào, không giống như hầu hết các phím khác của bàn phím Ergonom 7000. Không chắc chắn về điều đó vì nút Web / Home không hiển thị bất kỳ đầu ra nào trong evtestcả hai - mặc dù Ubuntu không nhận nó.
matt

1
Tôi cũng không thể có được 4000 để làm việc vào ngày 14.04. Không thấy sự kiện trong xev.
Michael

Đã thử điều này vào ngày 14.10 và không hoạt động.
Rubens Mariuzzo

@Cocoabean xevcũng không hiệu quả với tôi. Gì là evtest /dev/input/event3. Nếu event3không có bất kỳ phản ứng nào với khóa này, hãy kiểm tra với các sự kiện khác ( event[0..9]).
Nicolás

9

Trên Xubfox 13.10 (có lẽ trên Ubuntu 13.10 cũng vậy) có thể được thực hiện như sau:

Chỉnh sửa ánh xạ chính trong /lib/udev/hwdb.d/60-keyboard.hwdb:

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

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

Chạy sudo udevadm hwdb --update

Khởi động lại.


1
Làm việc vào ngày 14.04 cho tôi
Amir Uval

Bàn phím 60.hwdb của tôi đã có một mục nhập hiện có cho MNEK4K, với bàn phím: usb: b0003v045Ep00DB *. Thay đổi hành động không hoạt động. Thêm một mục mới với những hành động đã làm việc.
Alrekr

Làm việc như một lá bùa vào ngày 16.04. Tôi đã sử dụng "lên" và "xuống" (thay vì resp. "Pageup" và "pagedown") để có được một cuộn mượt mà hơn khi duyệt các trang web. Cảm ơn rất nhiều!
Pierre

Bạn có thể ánh xạ tới katakanakatakanahiragana(hoặc bất kỳ mã khóa không sử dụng nào khác từ hal.freedesktop.org/quirk/quirk-keymap-list.txt ) thay vì bí danh cho các khóa hiện có. Bằng cách này, bạn có thể nhận ra và sử dụng các phím kết hợp với công cụ sửa đổi để chuyển đổi âm lượng, ngôn ngữ, kích thước, v.v. (định cấu hình trình quản lý cửa sổ của bạn để tận hưởng hai siêu phím mới).
dmitry_romanov

4

Để định cấu hình bàn phím tiện dụng Microsoft 4000, chúng tôi phải tạo một tệp cấu hình có chứa khai báo bàn phím và các bản ghi để ánh xạ các phím.

Để làm như vậy, có ba loại thông tin chúng ta cần xác định:

  • Loại bàn phím
  • Phím scancodeđó là phím thực tế trên bàn phím
  • Phím nameđể gán chức năng mong muốn cho khóa đã chọn

Đầu tiên tìm loại bàn phím:

Trong terminal chạy lệnh sau:

lsusb 

đầu ra xác định loại bàn phím:

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

Nó xuất hiện sau ID. Trong trường hợp này là045e:00db

Thứ hai tìm scancode và tên của khóa.

Để xác định chúng, chúng tôi sử dụng evtestchương trình ghi lại thông tin sự kiện của một thiết bị cụ thể trên thiết bị đầu cuối:

evtest

Nếu bạn không có chương trình, hãy cài đặt nó bằng cách chạy lệnh sau:

sudo apt-get install evtest

Bằng cách chạy evtestchương trình, chúng tôi nhận được đầu ra sau đây:

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

Đầu ra là khá nhiều tự giải thích, chèn số thích hợp cho bàn phím, đây là số 3sau đó nhấn enter:

Làm như vậy, sẽ xuất ra nhiều thông tin trên thiết bị đầu cuối và kết thúc bằng các dòng sau:

... 

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

Bây giờ với mỗi lần bấm phím trên bàn phím, nó sẽ loại bỏ thông tin phím. Ví dụ: phím Slash bên cạnh Shift phải hiển thị:

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

Dòng đầu tiên của nhật ký chứa thông tin về khóa thực tế trên bàn phím, chẳng hạn như scancodesau giá trị. Trong trường hợp này là 70038

Dòng thứ hai chứa thông tin chức năng được gán như tên của khóa. Trong trường hợp này là Slash . Kiểm tra các phím khác để tìm tên thích hợp của chúng.

Vì vậy, một cách ngắn gọn:

  • Loại bàn phím của chúng tôi là: 045e: 00db
  • Scancode của phím Slash là: 70038
  • Tên của khóa để gán là SLASH

Sau khi thu thập thông tin cần thiết, chúng tôi tạo tệp cấu hình:

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

Nhấn iđể kích hoạt chế độ Chèn và gõ như sau:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_70038=minus      

Lưu và thoát bằng cách nhấn escaperồi gõ :wqvà nhấn enter.

Sau đó chạy hai lệnh sau để cấu hình có hiệu lực:

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

Cuối cùng rút phích cắm bàn phím và cắm lại.

Một số lưu ý về tệp cấu hình:

  • Định dạng của tệp phải chính xác như được hiển thị, không gian trước khi ánh xạ bản ghi là rất quan trọng.
  • Thay vì sudoeditbạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào khác, chỉ cần nhớ làm theo định dạng chính xác của tệp như được giải thích ở trên.
  • Có hai ký tự được thêm vào loại bàn phím: vvà viết ptắt của nhà cung cấp và sản phẩm. Họ cũng quan trọng.
  • Loại bàn phím được viết hoa trong tập tin cấu hình. Loại bàn phím của chúng tôi là 045e: 00db nhưng trong cấu hình, chúng tôi chèn v045Ep00DB *
  • Scancode của khóa xuất hiện ngay sau đó KEYBOARD_KEY_
  • Tên khóa xuất hiện bằng chữ thường trong tệp cấu hình
  • Bạn có thể tùy chỉnh khá nhiều phím trên bàn phím theo hướng dẫn này.

3

Các vấn đềevdev tài xế bỏ qua mã phím> 255 .
Giải pháp, nhờ Marco Chiappero :

1) bạn phải xác định tất cả các bản sửa lỗi mà bạn cần (ở dạng 
danh sách "mã khóa scancode") và đặt chúng vào một tệp trong "/ lib / udev / keymaps /" 
(ví dụ tôi đã tạo logitech-lx710-không dây ở đó). Bạn có thể tìm thấy
scancodes sử dụng evtest ("sudo evtest / dev / input / eventX", trong đó X là của bạn 
thiết bị bàn phím. Hãy cẩn thận, đôi khi các phím phụ này được hiển thị thông qua
một thiết bị khác hoặc giao diện chuột của bạn: vd. event3 -> kbd, event4 ->
chuột và phím phụ). Ở đây một số đầu ra mẫu:

Sự kiện: thời gian 1294153485.909379, loại 4 (Misc), mã 4 (ScanCode), giá trị c1028
"c1028" là giá trị scancode bạn sẽ đặt trong tệp sơ đồ bàn phím của mình, sau đó 
lấy một số từ input.h như được mô tả trước đó và chuyển đổi nó thành 
thập lục phân. Sau đó viết cặp remap trong tệp của bạn, có thể với một mô tả
bình luận, như thế này:

Nút xoay 0xC1028 0x9a #

Lặp lại cho mọi khóa> 255.

2) bạn phải nói với udev để áp dụng tệp ánh xạ lại này mỗi khi nó gặp 
bàn phím của bạn, vì vậy hãy chỉnh sửa tệp "/lib/udev/rules.d/95-keymap.rules" 
quy tắc udev phù hợp với CTNH của bạn. Xin đừng yêu cầu tôi xác định một quy tắc cho
bạn. 
LƯU Ý: bạn có thể ngay lập tức áp dụng tệp sơ đồ bàn phím của mình bằng cách nhập 
"sudo / lib / udev / keymap / dev / input / eventX / lib / udev / keymaps / $ YOU_FILE" và 
xác minh nó với evtest một lần nữa.

Bây giờ, bạn có thể sử dụng trình chỉnh sửa phím tắt Gnome để thấy rằng các phím hiện đang 
có thể sử dụng bên trong X và tạo các phím tắt mới. Tuy nhiên, điều đó có thể xảy ra là không
keyym được gán cho mã khóa đó (vì vậy bạn sẽ thấy 0xXY thay vì XF86Foo). 
Bạn có thể thấy ánh xạ hiện tại thông qua xmodmap -pke, lưu kết quả đầu ra vào 
tập tin và chỉnh sửa nó nếu bạn cần (một danh sách mã keyym đầy đủ có sẵn trong
"/ usr / lib / X11 / XKeysymDB").
Khi bạn đã thêm các từ khóa vào các phím bạn đã ánh xạ lại, bạn có thể lưu tệp này
as ~ / .Xmodmap (hoặc as / etc / X11 / Xmodmap nếu bạn muốn áp dụng cho mọi người dùng).

Tôi nhận ra rằng các nút tôi muốn là c022d và c022e, nhưng tôi không thể tìm thấy input.h.
Martin Uting

Theo tôi hiểu (nhưng tôi không thể kiểm tra vì tôi không có phần cứng này) bạn không thực sự cần đầu vào. Bạn chỉ cần chỉnh sửa tệp này : /lib/udev/rules.d/95-keymap.rules. (Có thể ở đây tại launchpad, bạn có thể tìm thấy những người có cùng phần cứng, do đó có thể giúp đỡ nhiều lỗi hơn.launchpad.net / ubfox / + source / xorg-server / +bug/313514 ). Bạn đã chỉnh sửa các tập tin tôi đã đề cập ở trên?
desgua

1
Đây là quá nhiều kỹ thuật và vô tổ chức một câu trả lời cho hầu hết mọi người. Một vài lỗ hổng nghiêm trọng: không giúp xác định mức độ phù hợp / dev / input / eventX, các bước không rõ ràng trộn lẫn với thông tin theo ngữ cảnh và yêu cầu không yêu cầu hướng dẫn tạo keymap.
Alain O'Dea

1
evtest thậm chí không được cài đặt theo mặc định làm cho điều này thậm chí còn tồi tệ hơn.
Alain O'Dea

Qua thử nghiệm và lỗi tôi thấy rằng bàn phím của tôi là / dev / input / event3 và evtest không nhận bất kỳ sự kiện nào từ thanh trượt thu phóng.
Alain O'Dea

0

Trên máy của tôi, các phím phụ (HomePage, Tìm kiếm, Calc, v.v.) và đầu vào thu phóng được gửi qua / dev / input / event5 trong khi các phím thông thường được gửi qua / dev / input / event4. Giá trị khóa phóng to đồng ý với hàng đợi.

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.