禁用中键单击模拟

禁用中键单击模拟

我在 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 毫秒。

相关内容