我有一台在 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