我有一只 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"