在 Firefox 中禁用鼠标中键单击粘贴

在 Firefox 中禁用鼠标中键单击粘贴

我已经安装了 Tweaks 并打开鼠标中键粘贴关闭。这没有帮助。

我也遵循了这些帖子中的所有建议:

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

但是,我无法禁用它。在我看来,这是一种非常烦人的行为,我不明白为什么它如此难以消除。这似乎是一个巨大的错误。

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Elan Touchpad                             id=12   [slave  pointer  (2)]
⎜   ↳ Elan TrackPoint                           id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Integrated Camera: Integrated C           id=10   [slave  keyboard (3)]
    ↳ Integrated Camera: Integrated I           id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=15   [slave  keyboard (3)]

答案1

根据您发布的输出xinput list,我假设您也有一台带有指点杆的 ThinkPad,并且经常发现自己意外触发“鼠标中键粘贴”,例如在使用鼠标中键 + 指点杆滚动时。如果这是主要问题,那么您可以按照这些说明进行操作。

此解决方案完全禁用了指点杆的中键,除非使用它来滚动,这正是我所需要的。使用外接鼠标或用三根手指点击触摸板时,“鼠标中键粘贴”行为得以保留。

以下脚本将中间按钮 (2) 重新映射到 0,从而将其禁用。其他按钮保留其原始功能。将其存储在您选择的本地位置。

trackpoint_id=$(xinput --list | grep 'Elan TrackPoint' | grep -oP '(?<=id\=)[0-9]+')
button_map=$(xinput --get-button-map $trackpoint_id)
new_button_map=$(echo $button_map | sed '0,/2/{s/2/0/}')
xinput --set-button-map $trackpoint_id $new_button_map

请注意,分配给轨迹点的 ID 可能会在重启后发生变化,因此我提取了它的 ID。

要确保此脚本在每次启动时运行,请执行以下操作:

  1. 打开“启动应用程序”(只需点击Super并搜索它)
  2. 在 GUI 中,单击“添加”将脚本添加到启动程序
  3. 在“名称”字段中输入您喜欢的名称。在“命令”字段中,输入bash并粘贴脚本的绝对路径
  4. 节省

现在,即使重新启动后,一切都应该按描述运行。

答案2

我在 lubuntu 20.04 中使用 xorg.conf 完成了此操作

这样,设置就可以在挂起状态下继续运行。

首先使用以下方法识别鼠标名称

xinput list

然后创建一个文件

/etc/X11/xorg.conf.d/somefile.conf

cat /etc/X11/xorg.conf.d/50-mouse-map.conf 
Section "InputClass"
    Identifier  "PIXART USB OPTICAL MOUSE" #here your mouse name
    Option  "ButtonMapping" "1 0 3 4 5 6 7" #here your mapping
EndSection

维基百科

你可以控制它是否与

grep ButtonMapping /var/log/Xorg.0.log 

注意:仅使用 focal (20.04) X11 会话进行了测试!

答案3

解决方案对我有用:

在 Firefox 中禁用鼠标中键单击粘贴

在 URL 栏中输入“about:config”,按 Enter

单击“我会小心的,我保证”按钮。

选择“middlemouse.paste”。

双击它以将值从“true”更改为“false”。

在 Firefox 中禁用鼠标中键单击粘贴


修补 gtk 源文件

修补 GTK3(Ubuntu 20.04)的说明也对我有用。

打开终端并输入以下内容:

sudo apt-get update
sudo apt-get upgrade

接下来,获取编译代码所需的文件:

sudo apt-get build-dep gtk+3.0
sudo apt-get install build-essential

创建补丁文件

mkdir /tmp/gtk
cd /tmp/gtk
nano gtk_disable_middle_mouse_button_paste.patch

并粘贴以下内容:

diff -ur gtk+2.0-2.20.1/gtk/gtkselection.c gtk+2.0-2.20.1-patched/gtk/gtkselection.c
--- gtk+2.0-2.20.1/gtk/gtkselection.c   2010-05-01 22:14:29.000000000 -0500
+++ gtk+2.0-2.20.1-patched/gtk/gtkselection.c   2011-09-17 10:45:37.000000000 -0500
@@ -1065,6 +1065,24 @@
   display = gtk_widget_get_display (widget);
   owner_window = gdk_selection_owner_get_for_display (display, selection);
   
+  if (selection == gdk_atom_intern("PRIMARY", TRUE)) {
+      GtkSelectionData selection_data;
+
+      selection_data.selection = selection;
+      selection_data.target = target;
+      selection_data.type = gdk_atom_intern("STRING", TRUE);
+      selection_data.format = 8;
+      selection_data.data = (unsigned char *)"";
+      selection_data.length = 0;
+      selection_data.display = display;
+
+      gtk_selection_retrieval_report(info, selection_data.type,
+              selection_data.format, selection_data.data,
+              selection_data.length, time_);
+
+      return TRUE;
+  }
+ 
   if (owner_window != NULL)
     {
       GtkWidget *owner_widget;

现在,我们要获取 gtk 3.0 源代码

apt-get source libgtk-3-0
cd gtk+3.0-{your-version}

应用补丁:

patch -p1 < /tmp/gtk/gtk_disable_middle_mouse_button_paste.patch

重新编译源代码:

sudo apt-get install cdbs 
sudo dpkg-buildpackage -uc -us

安装修补文件:

sudo dpkg -i ../libgtk-3-{your-version}.deb

注销并重新登录。鼠标中键单击粘贴功能现在应该已被禁用。

GTK2 说明

相关内容