Tôi có một logitech MX400 không dây. Nó có một nút tìm kiếm mà tôi muốn sử dụng để dán (thay vì nút cuộn cực kỳ nhạy nhưng khó bấm). Tôi đã ánh xạ lại các nút khác bằng xbindkey và sử dụng xev để tìm mã nhấn nút, nhưng điều này không hoạt động đối với nút tìm kiếm. sử dụng xev và nhấp vào nút tìm kiếm Tôi nhận được các sự kiện sau
FocusOut event, serial 34, synthetic NO, window 0x3c00001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 34, synthetic NO, window 0x3c00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 34, synthetic NO, window 0x0,
keys: 4294967275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PropertyNotify event, serial 34, synthetic NO, window 0x3c00001,
atom 0x1d7 (_NET_WM_ICON_GEOMETRY), time 23653064, state PropertyNewValue
Không có sự kiện NútPress. Có vẻ như nút tìm kiếm bị chặn ở mức dưới các sự kiện X. Có ý kiến gì không? Tôi có Ubuntu 12.04. Ubuntu thực sự nhìn thấy nhấp chuột và sinh ra một hộp thoại tìm kiếm, nhưng không có dấu vết của một sự kiện nhấp chuột trong xev.
Biên tập
Tôi đã kiểm tra phương thức được cung cấp với xmodmap. .Xmodmap
Bây giờ của tôi chứa dòng sau
keycode 225 = XF86Paste NoSymbol XF86Paste``
chạy xmodmap ~/.Xmodmap
ngay bây giờ sẽ vô hiệu hóa nút này (hoặc ít nhất, tôi không nhận được bất kỳ kết quả nào bằng cách nhấn nó). Tôi đã thử xmodmap -pke
và nó in ra:
keycode 225 = XF86Paste NoSymbol XF86Paste NoSymbol XF86Paste
Lạ lắm rồi. Tất cả các mục khác được định dạng tương tự. Tôi gần với giải pháp, nhưng vẫn còn một điều kỳ lạ.
Chỉnh sửa 2
Tôi đã cố chạy xinput (chưa bao giờ nghe lệnh này. Công cụ tuyệt vời). Có hai mục cho Logitech. Đây là đầu ra của việc liệt kê từng người trong số họ (id 9 và 10)
Logitech USB Receiver id=9 [slave pointer (2)]
Reporting 7 classes:
Class originated from: 9. Type: XIButtonClass
Buttons supported: 24
Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" "Button Side" "Button Extra" "Button Forward" "Button Back" "Button Task" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown"
Button state:
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 0:
Label: Rel X
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 1:
Label: Rel Y
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 2:
Label: Rel Horiz Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIValuatorClass
Detail for Valuator 3:
Label: Rel Vert Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 9. Type: XIScrollClass
Scroll info for Valuator 2
type: 2 (horizontal)
increment: 1.000000
flags: 0x0
Class originated from: 9. Type: XIScrollClass
Scroll info for Valuator 3
type: 1 (vertical)
increment: -1.000000
flags: 0x2 ( preferred )
Logitech USB Receiver id=10 [slave pointer (2)]
Reporting 6 classes:
Class originated from: 10. Type: XIButtonClass
Buttons supported: 7
Button labels: "Button 0" "Button Unknown" "Button Unknown" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right"
Button state:
Class originated from: 10. Type: XIKeyClass
Keycodes supported: 248
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 0:
Label: Rel X
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 1:
Label: Rel Y
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 2:
Label: Rel Horiz Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIScrollClass
Scroll info for Valuator 2
type: 2 (horizontal)
increment: 1.000000
flags: 0x0
Thiết bị kiểm tra 9 không làm gì với nút. Thiết bị kiểm tra 10 thay vào đó hoạt động và đây là đầu ra khi tôi nhấp
$ xinput test 10
key press 225
key release 225
key press 225
key release 225
key press 225
key release 225
Vì vậy, có vẻ như chuột hoạt động như một bàn phím trong vấn đề này, nhưng vì một số lý do, xmodmap không làm gì khi nhận được khóa 225.
** Biên tập **
Tôi có thể xác nhận rằng thêm keycode 225 = a
bản in a
mỗi lần tôi nhấp vào nút. Vì vậy, vấn đề dường như có liên quan đến cách XF86Paste thực sự được xử lý. Tôi đang gửi nó, nhưng nó không dán.
tail -f /var/log/dmesg
sau đó thử nhấn nút. Bạn có nhận được bất kỳ đầu ra liên quan đến các phím / nút?
xinput list
sau đó tìm mã nút của khóa tìm kiếm của bạn với xinput test <MOUSE ID>
. Nó có hoạt động không?
xev
hiển thị các sự kiện XF86Paste / XF86Copy, nhưng không có gì xảy ra. Điều đó có nghĩa là bạn phải sử dụng tổ hợp phím CTRL + v để dán. Xmodmap ánh xạ các nút 1: 1, nhưng bạn có thể sử dụng cài đặt phím tắt để kích hoạt thực thi lệnh khi nhấn phím (xem câu trả lời của tôi).
xbindkeys
thiết lập để chạy khi bạn khởi động phải không? Bạn có thể vô hiệu hóa nó và thử lại?