xmodmap KeyPress 事件到 ButtonPress 事件

xmodmap KeyPress 事件到 ButtonPress 事件

我刚买了一个罗技 t400 鼠标,一切正常,除了我想将鼠标中键的“顶部”部分重新映射到实际的鼠标中键功能。

当我运行xev并捕获点击时,所有鼠标按钮都会返回ButtonPress/ButtonRelease事件,但中间按钮的顶部会返回KeyPress/KeyRelease事件,如下所示:

KeyPress event, serial 35, synthetic NO, window 0x5200001,
root 0x31d, subw 0x0, time 630089839, (80,128), root:(2871,588),
state 0x10, keycode 133 (keysym 0x31d, (no name)), same_screen YES,
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x5200001,
root 0x31d, subw 0x0, time 630089983, (80,128), root:(2871,588),
state 0x50, keycode 133 (keysym 0x31d, (no name)), same_screen YES,
XLookupString gives 0 bytes: 
XFilterEvent returns: False

中间按钮的底部工作正常,并返回:

ButtonPress event, serial 37, synthetic NO, window 0x5200001,
root 0x31d, subw 0x0, time 630137726, (10,171), root:(2801,631),
state 0x10, button 2, same_screen YES

ButtonRelease event, serial 37, synthetic NO, window 0x5200001,
root 0x31d, subw 0x0, time 630138960, (10,171), root:(2801,631),
state 0x210, button 2, same_screen YES

我希望以与底部相同的方式重新映射顶部部分,这可以使用 xmodmap 吗?

谢谢!

答案1

我也尝试过这一点,最终发现——埋藏在文档深处——这是不可能的。

这个论坛帖子XSendEvent包含使用该函数模拟按钮按下的C 代码。xbindkeys例如,您可以使用 来启动它。

论坛帖子还建议使用xdo工具。免责声明:我还没有尝试过。

相关内容