如何禁用鼠标中键单击粘贴?

如何禁用鼠标中键单击粘贴?

有没有办法可以禁用 gnome 上默认的鼠标中键粘贴行为?

我的鼠标滚轮很灵敏,每当我滚动文本时,它有时会将内容随机粘贴到文本中。当我将一个文件发送给其他人时,如果文件上到处都是随机粘贴的文本片段,我会失去很多可信度。

我见过解决方案通过将鼠标的中键映射到不存在的鼠标按钮来实现,但这意味着完全摆脱鼠标中键(即没有标签关闭、自动打开新标签中的链接等)。我想保持鼠标中键处于活动状态,只需禁用粘贴行为即可。

当我使用触摸板滚动文本时也会发生这种情况(不小心用两根手指碰到而没有移动,砰)。

因此,仅更换一个新鼠标并不能解决问题(事实上,我相信这种情况在触摸板上比在鼠标上更常见)。

答案1

我使用 gnome-tweak-tool 来禁用 Ubuntu 16.04 中的中间按钮粘贴。

  1. 安装

    sudo apt install gnome-tweak-tool
    
  2. 通过在已安装的应用程序中搜索“调整工具”来运行它,或者只需gnome-tweak-tool在终端中输入即可。

  3. 转到“键盘和鼠标”->“鼠标中键粘贴”
  4. 关。

    截屏

就是这样。

或者仅使用 CLI

gsettings set org.gnome.desktop.interface gtk-enable-primary-paste false

已于 16.04 测试。

答案2

我意识到这不是您想要的答案,但您可以在 Firefox 中关闭此功能(例如,如果您不介意在其他地方使用该功能,但仍希望在 Firefox 中单击鼠标中键以在新选项卡中打开链接)

在 about:config 中,设置

middlemouse.contentLoadURL false
middlemouse.paste false

这不是你问的,但是因为这个问题与几个地方有关,我希望有人觉得这个答案有用。

答案3

Jared Robinson 给出了一个简单的解决方案在我的计算机上有效:

运行以下命令:

xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"

为了保持此行为,请编辑 ~/.Xmodmap 并添加

pointer = 1 25 3 4 5 6 7 8 9

答案4

不知何故,我的 Ubuntu 安装中没有任何 xmodmap 文件,所以我不得不寻找解决这个问题的其他方法。

看看新输入命令。

xinput list | grep -i mouse

其中列出了有关鼠标的信息。它显示我的鼠标是“Dell Premium USB Optical Mouse”,并且我有“Macintosh 鼠标按钮模拟”。有了这些信息,我可以

xinput get-button-map "Dell Premium USB Optical Mouse"

这给了我一个列表

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

以下是一些有用的、必需的知识。理论上,我的鼠标有 18 个按钮。每个按钮的默认操作名称与其按钮编号相同。换句话说,按钮 1 执行操作 1,按钮 4 执行操作 4,等等。操作 0 表示“关闭”。

位置列表中显示了分配给该按钮的功能。因此,如果我的按钮映射显示

1 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

这意味着按钮 1(位置 1)执行操作 1(正常左按钮),按钮 2(位置 2)执行操作 3(中间按钮),按钮 3(位置 3)执行操作 2(右按钮)。

要制作左手鼠标,你只需要一个按钮图,从

3 2 1 4 5 .....

或者,就你的情况而言,你希望中间按钮执行与按钮 1(左按钮)相同的操作,因此你的地图需要开始

1 1 3 ....

我将按如下方式重置鼠标按钮映射:

xinput set-button-map "Dell Premium USB Optical Mouse" 1 1 3 5 6 6 7 8 9 10 11 12 13 14 15 16 17 18

在您的例子中,您可能拥有不同数量的映射按钮,并且已经定义了一些特殊的按钮映射。同样,您的鼠标也有不同的名称。首先,获取鼠标的“名称”。然后,使用获取按钮图操作来找到您的基本按钮图。最后,使用设置按钮图选项,修改按钮 2 来执行操作 1。

这不是永久性的改变。我在我的.bashrc因此每次我登录或打开终端时它都会执行。

希望这可以帮助。

相关内容