在 Ubuntu 12.04 中,当我释放按钮时鼠标会发出咔嗒声。
发生了什么(不好):我右键单击(鼠标向下),出现上下文菜单,当我释放鼠标按钮(鼠标向上)时,单击光标下的项目。
应该发生什么(好的):我单击鼠标右键(按下鼠标),上下文菜单出现,当我松开鼠标时什么也没有发生。要单击上下文菜单中的某项,我通常使用鼠标右键单击它。
我在 Chrome、文件浏览器和 gnome 终端中都遇到过这种情况。鼠标是 Razer DeathAdder(但我只是运行 Ubuntu 自动选择的任何驱动程序),如果有问题的话,我正在使用 AMD/ATI 图形驱动程序。
答案1
这是我的解决办法:
首先,您需要编译并安装 sxhkd,从这里:
https://github.com/baskerville/sxhkd
这是一个非常酷的程序。
然后,在您的 ~/.config/sxhkd/sxhkdrc 中添加此配方:
~button3
for id in `xinput list | grep 'slave pointer' | grep -v XTEST | sed -e 's/.*id=\([0-9]\+\).*/\1/'`; do xinput set-prop $id "Device Enabled" 0; done; \
xte 'mouseup 3' 'mousermove 0 -1'; \
sleep 0.3; \
for id in `xinput list | grep 'slave pointer' | grep -v XTEST | sed -e 's/.*id=\([0-9]\+\).*/\1/'`; do xinput set-prop $id "Device Enabled" 1; done
它的工作原理是,sxhkd 使用其 xcb 侦听器捕获右键单击事件,然后重播该事件,这就是波浪号的作用。之后,我们关闭触摸板,将鼠标光标向上移动一个像素,这样第一个条目就不会突出显示,休眠 300 毫秒以忽略单击后任何会偏离位置的手指拖动,然后重新启用指针设备。
这有效完美在我正在设置的 chromebook 上。
更新:我改变了 sxhkd 配方来配合使用全部指针输入设备,而不仅仅是触摸板。
答案2
如果在此期间您不移动鼠标,则不应有任何“光标下的菜单项”。上下文菜单打开时,其左上角位于光标处,并且下一个菜单项下方有一个空白。
但是,如果在释放鼠标按钮时光标下有一个菜单项,则期望行为是启动该菜单项。这是您(或至少许多人)通常进行的操作:按下鼠标按钮,将光标移到所需的菜单项,释放鼠标按钮以激活该项。
如果按下鼠标按钮后光标下没有菜单项,则行为正如您所描述的:释放鼠标按钮不会破坏上下文菜单。
所以也许您的鼠标非常敏感,并且按钮按下事件伴随着光标移动?
答案3
这是默认行为。即使在默认管理器 Nautilus 中,您也会遇到同样的情况。实际上,您会在任何地方遇到这种情况。如果您右键单击某处并看到上下文菜单,并且不释放右键单击,将鼠标悬停在上下文菜单的操作上方,然后释放它,则会启动相应的操作。
我可以在我尝试过的所有程序中确认这一点,因此,这是 Ubuntu 下的默认行为(我发现它很方便,而不必手动左键单击上下文菜单的操作)