我在联想 T430s 上使用 Ubuntu 12.04。当使用带指点器的外接键盘时,我观察到以下意外行为:滚动时(按住鼠标中键并移动指点器),我最后选择的文本被粘贴。但这应该只发生在单击(而不是按住)鼠标中键时。有趣的是,这只发生在外接键盘上,笔记本电脑的键盘表现正常。此外,这只发生在按下鼠标中键后不久使用指点器时,当我等待至少一秒钟时,它不会粘贴。
谷歌搜索没有找到任何结果。是否有任何类似的经历或我错过的解决方法?
对我来说,一个可以接受的解决方法是仅禁用外接键盘上的中键粘贴功能,这样我仍然可以使用外接鼠标进行粘贴。我只找到了一种在所有设备上完全禁用此功能的方法,但我经常使用此粘贴功能,所以我不能没有它。
答案1
用于xinput list
查找您想要禁用按钮的设备:
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB-PS/2 Optical Mouse id=8 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
我将在鼠标上尝试一下。下一步是获取当前按钮映射:
$ xinput get-button-map 'Logitech USB-PS/2 Optical Mouse'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
事实证明我的鼠标以非常简单的方式映射:物理按钮 1 是逻辑按钮 1,等等。这是默认设置;例如,如果您选择了左手模式,您可能会看到不同的东西。
无论如何,中间按钮是鼠标按钮 2。要禁用它,您可以将显示 2 的按钮设置为 0(禁用)。(希望当您滚动时,它会生成按钮 4 或 5 次点击,具体取决于您是向上还是向下滚动。这是滚轮正常工作的方式。)
$ xinput set-button-map 'Logitech USB-PS/2 Optical Mouse' 1 0 3 4 5 6 7 8 9 10 11 12 13 14 15 16
现在,该设备上的鼠标中键将被完全忽略。要将其改回,只需再次运行该命令,但将 2 放回原位。(当然,您也可以随意更改按钮映射 - 例如,如果您交换 4 和 5,您将更改滚动的方向)。
如果这能满足您的要求,那么您只需要安排将最后一行作为登录脚本的一部分运行。