我拥有一个Razer Naga Mouse,essentaly它旁边有一个小小的小键盘。我想将这些密钥重新映射到不同的未使用的密钥或bash命令。我可以通过使用xev来获取密钥代码(例如鼠标上的“1”是键代码87),然后我可以使用xmodmap将密钥代码绑定到另一个密钥来轻松完成。
然而我的键盘上的小键盘也会继承这个,因为键码是相同的,我注意到的是“串口”是不同的。
例如,按下鼠标小键盘上的“1”按钮,这里是xev的输出。
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
,这是我的键盘numpad上按“1”时的输出
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
无论如何我可以根据这个来映射鼠标上的按键吗?
答案 0 :(得分:2)
而不是xmodmap
,请尝试使用setxkbmap
和xkbcomp
。 xkbcomp
命令允许您指定输入设备ID(使用-i
选项)。
要获取设备ID列表,请运行xinput --list
。 (FWIW,我的Razer Salmosa被清楚地标记为“Razer Razer Salmosa”。)
以下是我将USB键盘(ID 16)转换为使用德语键映射的方式,同时将我的笔记本电脑键盘保留在美国地图上:
setxkbmap de -print | xkbcomp - -i 16 $DISPLAY
我真的不知道如何设置xkb
映射,但我找到了tutorial that looks pretty good。
答案 1 :(得分:1)