我使用装有 Ubuntu 的 ThinkPad 上的鼠标中键进行滚动,不小心将大量文本粘贴到了我的文档中,这非常烦人,而且经常导致文档混乱。
我在网上搜索了如何禁用此功能。我发现的唯一快速解决方案是xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"
在控制台中执行或将持久更改放入文件pointer = 1 25 3 4 5 6 7 8 9
中~/.Xmodmap
。因此中间按钮被重新映射到另一个按钮。这对我来说很好,但现在我无法使用鼠标中键进行其他任何操作——尤其是不能使用我最喜欢的通过鼠标中键单击在 Firefox 中打开新选项卡的功能。或者只是其他任何事情......
除了直接修补 GTK 之外,我找不到其他方法。有人知道一种更优雅的方法来禁用 Ubuntu 中的鼠标中键单击粘贴功能吗?
我的系统:
ThinkPad-R61
3.8.0-30-generic #44-Ubuntu SMP 2013 年 8 月 22 日星期四 20:54:42 UTC i686 i686 i686 GNU/Linux
答案1
这是我发现的保持中键单击功能而不粘贴内容的最佳解决方案。
首次安装星火和響鳴。
然后配置./.config/.sxhkd/sxhkdrc就像这样
~button2
echo -n | xsel -n -i
~control + c
echo -n | xsel -n -i
~control + shift + c
echo -n | xsel -n -i
~control + x
echo -n | xsel -n -i
基本上就是这样。
现在启动 sxhkd(或将其配置为在启动时启动)。现在,鼠标中键将不再粘贴任何内容,但其他功能将正常。(只要您只使用 ctrl+c 和 ctrl+x 来复制内容,也就是说,如果您使用鼠标复制内容,它可以粘贴一次,然后恢复正常。)
答案2
有一些适用于 Ubuntu 14.04 的干净解决方案。我通过运行获得了它gnome-tweak-tool -v -d
。解决方案是:
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/EnablePrimaryPaste': <0>}"
也可以在 dconf-editor 中完成:org->gnome->settings-daemon->plugins->xsettings --->>> overrides and put {'Gtk/EnablePrimaryPaste': <0>}
。
要激活它,您可以输入 1 而不是 0。
答案3
我也曾尝试寻找一个干净的方法来解决这个问题,但最终却找到了一个出人意料的有效解决方法。如果您已经xsel
安装了,您可以使用 清除主粘贴缓冲区(鼠标中键使用的缓冲区)的内容xsel -p -c
。然后,您可以创建执行此命令的键盘快捷键,并将其映射到任何未使用的键(在我的情况下,是 ThinkPad X230 键盘上方空间左上角最右边的矩形 ThinkPad 按钮;您应该有一个类似的按钮(您的型号上可能是蓝色的),但如果没有,您可以使用任何其他您想要的残留按钮)。我使用系统偏好设置窗格中的键盘快捷键来执行此操作,因此此解决方法不需要 Xmodmap。现在,每当我想使用我的鼠标中键时,我都会按下此按钮来清除粘贴缓冲区中可能存在的任何内容,而且它运行完美,无需削弱鼠标中键的功能。
我希望您发现这个回复有用,或者找到您正在寻找的答案。
答案4
我最终做的是在中创建了两个别名.bashrc
:
alias mc-off='xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"'
alias mc-on='xmodmap -e "pointer = 1 2 3 4 5 6 7 8 9"'
现在,每次我需要禁用触控板的中键单击时,我都会mc-off
从终端运行并mc-on
在插入鼠标时将其重新打开。