我已经安装了 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。
要确保此脚本在每次启动时运行,请执行以下操作:
- 打开“启动应用程序”(只需点击Super并搜索它)
- 在 GUI 中,单击“添加”将脚本添加到启动程序
- 在“名称”字段中输入您喜欢的名称。在“命令”字段中,输入
bash
并粘贴脚本的绝对路径 - 节省
现在,即使重新启动后,一切都应该按描述运行。
答案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”。
修补 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
注销并重新登录。鼠标中键单击粘贴功能现在应该已被禁用。