2010-10-14 24 views
5

Tôi sở hữu một số Razer Naga Mouse, essentaly nó có một túi nhỏ ở bên cạnh nó. Tôi muốn remap các phím này để các phím không sử dụng khác nhau hoặc để bash lệnh. Tôi có thể làm điều này một cách dễ dàng bằng cách sử dụng xev để lấy mã khóa (ví dụ "1" trên chuột là mã khóa 87) và sau đó tôi có thể sử dụng xmodmap để liên kết mã khóa với một khóa khác.Ánh xạ khóa dựa trên thiết bị mà khóa đang bật? (Linux)

Tuy nhiên, núm vú trên bàn phím của tôi cũng sẽ kế thừa mã này giống như mã khóa giống nhau, những gì tôi nhận thấy mặc dù là "nối tiếp" khác nhau.

Ví dụ ở đây là đầu ra từ xev khi nhấn nút "1" trên nút bấm chuột của tôi.

KeyPress event, serial 34, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2179878, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False 

KeyRelease event, serial 35, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2179966, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XFilterEvent returns: False 

và đây là kết quả khi nhấn "1" trên bàn phím numpad tôi

KeyPress event, serial 35, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2180261, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False 

KeyRelease event, serial 36, synthetic NO, window 0x1c00001, 
root 0x1ae, subw 0x0, time 2180341, (170,-2), root:(198,345), 
state 0x0, keycode 87 (keysym 0xff9c, KP_End), same_screen YES, 
XLookupString gives 0 bytes: 
XFilterEvent returns: False 

Liệu có cách nào tôi có thể lập bản đồ các phím trên chuột của tôi dựa trên điều này?

Trả lời

1

Ok đã được giải quyết. Làm theo hướng dẫn trên wiki này https://github.com/graph/Razer-Naga-HotKey/wiki/How-to-get-Razer-Naga-HotKeying-Working-on-Debian

+0

Tôi nhận mã linux cho hệ thống của mình và bị kẹt ngay bây giờ. Tôi không thấy init_module() chức năng bất cứ nơi nào trong/drivers/hid/usbhid: ( –

+0

Tôi tìm thấy/dev/input/by-id/usb-Razer_Razer_Naga-sự kiện-kbd và làm một hexdump về điều này có vẻ như một cái gì đó tôi có thể đúng một Để giải thích tuyến đường này bằng X cho razer naga sẽ cần phải bị vô hiệu hóa –

+0

Tôi không nhận ra câu hỏi này đã gần một tuổi ... hy vọng câu trả lời của tôi có thể giúp bạn, mặc dù :) –

2

Thay vì xmodmap, hãy thử sử dụng setxkbmapxkbcomp. Lệnh xkbcomp cho phép bạn chỉ định ID thiết bị đầu vào (sử dụng tùy chọn -i).

Để có danh sách ID thiết bị chạy xinput --list. (FWIW, Razer Salmosa của tôi được dán nhãn rõ ràng là "Razer Razer Salmosa".)

Đây là cách tôi chuyển đổi bàn phím USB của mình (ID 16) để sử dụng ánh xạ khóa của Đức, trong khi vẫn giữ bàn phím máy tính xách tay của tôi trên bản đồ Hoa Kỳ:

setxkbmap de -print | xkbcomp - -i 16 $DISPLAY 

Tôi thực sự không biết cách thiết lập xkb ánh xạ, nhưng tôi đã tìm thấy tutorial that looks pretty good.

Các vấn đề liên quan