我有一个罗技g502变形鼠标,并希望使用“后退”和“前进”鼠标按钮(通常用于浏览器)。
我用xev验证鼠标按下按钮是否被检测到。我安装了xbindkeys,并使用各种在线引用设置.xbindkeysrc来映射鼠标按钮(6和7),按一系列键来模拟正确的行为。
"xte 'key t'"
b:6 + Release
"xte 'keydown Alt_L' 'keydown Right' 'keyup Right' 'keyup Alt_L'"
b:7 + Release问题是,重映射被执行了两次,一次是在媒体上,一次是在发布时。我认为“发布”修饰符可以解决这个问题,但它仍在进行中。我验证了这一点,我把一个虚拟的重新映射到字母't',按住鼠标按钮,看到一个't'插入,然后在释放时看到另一个't'。
在测试之前,我确实杀死了所有的xbindkey进程。运行xbindkeys --verbose --nodaemon显示了一种不寻常的行为,在我按下鼠标按钮时,press和release都会被记录下来,尽管我没有释放被压抑的鼠标按钮。如下所示,我按了两次按钮,但只按了一次:
starting loop...
Button press !
e.xbutton.button=6
e.xbutton.state=16
Button release !
e.xbutton.button=6
e.xbutton.state=16
"xte 'key t' "
Release + m:0x0 + b:6 (mouse)
got screen 0 for window 510
Start program with fork+exec call
Button press !
e.xbutton.button=6
e.xbutton.state=16
Button release !
e.xbutton.button=6
e.xbutton.state=16
"xte 'key t' "
Release + m:0x0 + b:6 (mouse)
got screen 0 for window 510命令行上的xte行本身只打印一‘t。’关于如何修复/解决这个问题,有什么想法吗?
发布于 2021-07-04 10:03:15
我在一台PC上以类似的方式使用xbindkeys来使用鼠标侧按钮进行工作区切换。看看我的配置,我看到在我的&配置行的末尾有xte,我认为它在后台运行xte。也许你需要这个?如果我从我的配置中删除了&,我不是在那台PC上检查会发生什么:
# Mouse button 8 (the "back" side button)
# Re-map to super+page-down (move to workspace down)
"xte 'keydown Super_L' 'key Page_Down' 'keyup Super_L' &"
b:8
# Mouse button 9 (the "forward" side button)
# Re-map to super+page-up (move to workspace up)
"xte 'keydown Super_L' 'key Page_Up' 'keyup Super_L' &"
b:9发布于 2021-07-05 19:30:40
这似乎不是Ubuntu或xbindkey的问题,而是xrdp鼠标驱动程序的问题。我使用的是运行Ubuntu20.04.2的mouse,我在github上遇到了以下问题,有人准确地报告了我的问题,“只需单击(press+release)按钮6和7(向前/向后的按钮)的Logitech MX垂直鼠标,就会发送两个ButtonPress和ButtonRelease事件”。
Xrdp体:发送两次ButtonPress/ButtonRelease事件
因此,似乎没有容易的解决办法,这是不幸的。
https://askubuntu.com/questions/1349926
复制相似问题