如何修复 xbindkeys 键盘到鼠标按钮,按住时重复按键?

如何修复 xbindkeys 键盘到鼠标按钮,按住时重复按键?

我有一只 Logitech MX Revolution 鼠标,上面有一个 XF86Search 键盘键。我使用 xdotool 将其映射为 xbindkeys 文件中的鼠标中键。

鼠标单击不再像按下一个按钮那样,而是在按住时在开和关状态之间闪烁。这种不良行为使其无法使用。例如,它阻止我在图形程序中平移画布,或在 Blender 的视口中平移。

使用 xev 读取按钮映射显示交替状态闪烁类似于键盘按下重复键。

有人知道问题是什么吗?我曾经在全新安装 Mint 18.2 时遇到过这个问题,但重启并充电后就解决了。这次这个解决方案不是答案,因为在更新 Mint 18.2 时再次发生,并且在全新安装 Ubuntu 时再次发生。

我解除了键盘快捷键中搜索键的绑定。

答案1

停止重复按键的解决方案是在 xbindkeys 文件中添加命令 xset -r keycode。其作用与在设置/键盘中禁用按键重复相同。

代码如下:

"xset -r 225; xdotool mousedown 2"
    m:0x0 + c:225
    XF86Search

"xdotool mouseup 2"
    m:0x0 + c:225 + release
    XF86Search

虽然这解决了这个问题,但我遇到的真正问题并没有解决,那就是如何让搜索按钮在 Blender 等程序中完美地用作鼠标中键。出于我不明白的原因,上述解决方案无法很好地与 Shift 修饰键配合使用。

解决这个问题的最佳方法是完全放弃 xbindkeys,而是通过添加此代码来启用中键单击模拟/etc/sysctl.conf

# Enable mouse button emulation
dev.mac_hid.mouse_button_emulation = 1
# Set 2nd button to 217 - the middle button of MX Revolution mouse.
dev.mac_hid.mouse_button2_keycode = 217

此后,我必须创建一个 udev 文件,/etc/udev/rules.d/每当它看到我的加密狗插入时,它就会在其中调用一个脚本。此脚本包含sysctl --system启用鼠标 2 模拟所需的命令。出于某种原因,默认情况下它未启用,这是我以后想研究的问题。

这是我的罗技加密狗特有的 udev 文件:

SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="046d", RUN+="/bin/sh  /home/user/mouse-initialize-settings.sh"

相关内容