在 Hyper-V 环境下的 Ubuntu 中,鼠标按钮 6 和 7 每次物理按下都会发送两个事件

在 Hyper-V 环境下的 Ubuntu 中,鼠标按钮 6 和 7 每次物理按下都会发送两个事件

我有一台在 Hyper-V 下运行的 Ubuntu 18.0.4.5 VM。我有一只鼠标,上面有两个正常的按钮、一个滚轮和两个映射到按钮 6 和 7 的侧键。除了两个侧键之外,鼠标的所有功能都正常工作。侧键在物理按下时会产生按下和释放事件,在释放时再次产生。我已通过 xbindkeys 映射这些按钮以产生 Alt+L 和 Alt+R 按键以进行导航,因此每次按下按钮我都会获得两个导航事件,这是有问题的。当我运行xinput test 6(其中 6 是 xrdp 鼠标的 ID)时,当我按下任一侧键时,我非常清楚地获得按下事件和释放事件,然后当我释放按钮时,获得另一对按下和释放事件。当我运行 xinput test 并依次按下每个按钮一次时,它看起来是这样的:

~$ xinput test 6
button press   1 
button release 1 
button press   2 
button release 2 
button press   3 
button release 3 
button press   4 
button release 4 
button press   5 
button release 5 
button press   7 
button release 7 
button press   7 
button release 7 
button press   6 
button release 6 
button press   6 
button release 6 

以下是 xinput 的输出:

~$ xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ xrdpMouse                                 id=6    [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ xrdpKeyboard                              id=7    [slave  keyboard (3)]

我已经用三种不同的鼠标测试了这一点,以排除机械问题(并且所有鼠标在 Windows 主机操作系统中都可以正常工作,而无需这种按钮加倍)。 使用 xev 时我看到了相同的行为。

这可能是什么原因造成的?我该如何解决?

我确实摸索了一会儿,试图将按钮映射到我想要的键上,所以有可能我搞砸了一些东西,但我不认为我触碰了任何可能导致这种情况的东西。

为了回应评论,以下是输出xinput list-props 6

~$ xinput list-props 6
Device 'xrdpMouse':
    Device Enabled (113):   1
    Coordinate Transformation Matrix (115): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (229): 0
    Device Accel Constant Deceleration (230):   1.000000
    Device Accel Adaptive Deceleration (231):   1.000000
    Device Accel Velocity Scaling (232):    12.500000

相关内容