根据密钥所在的设备映射密钥?(Linux)

根据密钥所在的设备映射密钥?(Linux),linux,keyboard,mouse,keymapping,Linux,Keyboard,Mouse,Keymapping,我有一个,基本上它旁边有一个小纽帕。我想将这些键重新映射到不同的未使用键或bash命令。我可以通过使用xev抓取keycode(例如,鼠标上的“1”是keycode87)轻松实现这一点,然后我可以使用xmodmap将keycode绑定到不同的键 然而,我键盘上的numpad也会继承这一点,因为键码是相同的,但我注意到“串行”是不同的 例如,这里是按下鼠标numpad上的“1”按钮时xev的输出 KeyPress event, serial 34, synthetic NO, window 0x1

我有一个,基本上它旁边有一个小纽帕。我想将这些键重新映射到不同的未使用键或bash命令。我可以通过使用xev抓取keycode(例如,鼠标上的“1”是keycode87)轻松实现这一点,然后我可以使用xmodmap将keycode绑定到不同的键

然而,我键盘上的numpad也会继承这一点,因为键码是相同的,但我注意到“串行”是不同的

例如,这里是按下鼠标numpad上的“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
这是在我的键盘上按“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

是否可以基于此映射鼠标上的键?

确定。请按照此wiki上的说明进行操作,而不是使用
xmodmap
,尝试使用和。使用
xkbcomp
命令可以指定输入设备ID(使用
-i
选项)

要获取设备ID列表,请运行
xinput--list
。(FWIW,我的剃须刀Salmosa被清楚地标记为“剃须刀Salmosa”。)

以下是我如何将USB键盘(ID 16)转换为使用德语键映射,同时将笔记本电脑键盘保持在美国映射上:

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

我真的不知道如何设置
xkb
映射,但我找到了一个。

我为我的系统获得了linux代码,现在卡住了。我在/drivers/hid/usbhid中的任何位置都看不到init_module()函数:(我找到了/dev/input/by id/usb-Razer\u Razer\u Naga-event-kbd,对它执行hexdump似乎是我可以对程序进行解析的事情。通过X为Razer Naga执行此路径解释需要禁用。我没有意识到这个问题已经快一年了……不过,希望我的答案可以帮助您:)嗨,丹,我不能对你的帖子发表评论,但我找到了一种方法来禁止x读取razer键盘“xinput set int prop 10”设备启用的“8 0”。并且/dev/…仍然处于活动状态,这很好,这意味着我可以转换这些。我看到了您发布的重新映射内容,但我不知道如何使用它来发挥我的优势。我尝试重新映射到键盘布局为“0-9”时不使用的语言按钮是我永远不会使用lol的东西。但按下razer鼠标上的按钮仍然会打印1、2、3等。是的,我仍然感兴趣,谢谢你的帮助,但我不知道OP lol。另外,setxkbmap和xkbcomp会弄乱我的键盘布局。当我使用这些命令时,XFCE键盘布局程序也会崩溃