我在 2013 年的 Dell XPS 13 上运行 Ubuntu 15.04。从 13.04 开始,我有时会意外出现中键单击/中键单击模拟。我可以知道这是发生的,因为我的剪贴板中的文本会随机粘贴(Ubuntu 上的默认行为)。
谁能告诉我为什么会发生这种情况以及如何禁用它?
答案1
运行以下命令:
xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"
为了保持此行为,请编辑 ~/.Xmodmap 并添加
pointer = 1 25 3 4 5 6 7 8 9
答案2
对于 Ubuntu 18.04 及更高版本(默认启用鼠标中键模拟):
创建一个名为的脚本disable-middle-button-emulation
,内容如下:
#!/bin/bash
# to through all input devices
xinput list --id-only | while read id
do
# if this device supports middle button emulation, disable it (both evdev and libinput variants)
xinput --list-props "$id" | grep -qF "Evdev Middle Button Emulation" && xinput set-prop "$id" "Evdev Middle Button Emulation" 0
xinput --list-props "$id" | grep -qF "libinput Middle Button Emulation" && xinput set-prop "$id" "libinput Middle Button Emulation" 0
xinput --list-props "$id" | grep -qF "libinput Middle Emulation" && xinput set-prop "$id" "libinput Middle Emulation" 0
done
然后运行chmod a+x disable-middle-button-emulation
设置执行启用位,然后您就可以使用 来运行它./disable-middle-button-emulation
。如果您将文件放在主目录下的子目录下bin
,则无需在命令前添加前缀。作为替代方案,您可以将以上所有内容放在文件中,~/.xsessionrc
该文件会在您启动新的 X 会话时自动执行。
要验证系统行为(在上述更改之前或之后),请运行xev
,将鼠标指针移到xev
窗口上,然后同时按下左键和右键。如果在终端输出中看到“按钮 2”(鼠标中键),则表示模拟仍然处于活动状态。您应该会获得“按钮 1”(鼠标左键)和“按钮 3”(鼠标右键)的单独事件。请注意,如果模拟处于活动状态,按下鼠标按钮 1 或 3 的事件将延迟 50 毫秒,这会导致系统中的所有内容出现额外的延迟。如果您确实想使用模拟但减少延迟,您可以修改上述脚本以查找Button Emulation Timeout
并调整它以满足您的喜好。默认值为,50
即 50 毫秒。