自从从 Xubuntu 16.10 升级到 17.04 以来,我的中键行为出现了非常严重的问题,这严重干扰了我的日常操作,希望有人能给我指出解决方案。
自从升级以来,我就无法再控制中键的使用。我以前可以在 Windows-10 下 QEMU/KVM 窗口的 CAD 程序中使用它来执行手势命令,也可以在 Firefox 浏览器中使用 All-in-One Gestures Add-on 来执行手势命令。多年来一切都运行良好,直到 17.04 版本,鼠标中键按下/按住被抢占为伪滚动功能。由于它影响从浏览器到 KVM 的所有内容,我很确定这是内核驱动程序或 xfce4 中的新内容。
我在没有触摸板的台式机系统上安装了标准的 3 键 Sun USB 鼠标,没有滚轮。我迫切需要恢复以前的鼠标行为,但我不知道发生了什么变化,也找不到有关此问题的任何文档,也找不到“设置”菜单中有关此类鼠标行为的任何控件。
我不知道这是否相关,但该系统默认安装以下软件包:
- xserver-xorg-输入全部
- xserver-xorg-输入-libinput
- xserver-xorg-输入-evdev
- xserver-xorg-输入-wacom
- xserver-xorg-输入-synaptics
- 鼠标调整
- libgpm2
- libgpm2:i386
感谢您提供的任何帮助。如果您知道有更好的地方可以发布此类问题,请告诉我。
答案1
在 Ubuntu 17 (17.10, 17.04) 和 XFCE 中,鼠标中键复制粘贴根本不起作用。请针对所有基于 X-server 的系统尝试以下操作。不幸的是,Wayland 也带来了同样的问题,但我不知道有任何解决方案。
解决方案:
要启用鼠标中键粘贴功能,请编辑 xinput。
a)查询您的设备:
xin输入列表
识别您的鼠标。我的鼠标编号是 10。
b) xinput 列表属性 10
给我鼠标的设置。
c) 我需要更改“libinput Middle Emulation Enabled (294):”的值,并且我需要以 root 身份执行此操作:
sudo xinput set-prop 10 “libinput 中间模拟已启用” 1
d)检查值是否变为1:
xinput 列表属性 10
是的,它可以工作:“libinput Middle Emulation Enabled (294): 1”
为了使其持久,请在 ~/.xstartup! 中添加一行!在我的例子中,它看起来与以前相同:
xinput set-prop 10 libinput 中间模拟已启用 1
这使得它从一开始就有效。
背后的原因是什么:https://wiki.ubuntu.com/X/Config/Input
我强烈反对 Ubuntu 和 Gnome 决定禁用标准的 Unix 鼠标中键粘贴。即使在 XFCE Ubuntu 17 中,它也受到了严重破坏。希望这个决定背后的管理者能尽快找到一个痛苦的结局。你让我的生活变得艰难。
非常感谢 Gilles (https://unix.stackexchange.com/users/885/gilles) 找到了解决方案!!!
我在使用 Ubuntu 16、14.10 及更早版本时遇到了同样的问题:终端中的 Unix 风格复制粘贴不起作用。令人失望的默认设置。不过,这里有一个解决方案(部分是其他人出色工作的总结):
2)为了修复终端问题,我成功地将以下几行放入我的 xorg.conf 中:
(查看 /etc/X11/xorg.conf 是否适合您。对于 Lubuntu 等可能有所不同。)
“输入类”部分
标识符“中键模拟类”
MatchIsPointer“开启”
选项“Emulate3Buttons” “开启”
结束部分`
1) 令人烦恼的缺失第三个鼠标按钮(触摸板、大理石鼠标)故障实际上可以通过“gpointing-device-settings”修复。只需使用 CLI 安装
apt-get 安装 gpointing-device-settings
。然后调用 gpointing-device-settings 以获取 gui 窗口。备注:较新的 Ubuntu 中有一个未修复的错误,它会在重新启动时清除您的设置。您可以将 gpointing-device-settings 置于自动启动中,但仍需要提示。我不知道有任何合适的配置解决方案。
可能有些步骤需要 sudo 或 root 访问权限。我想您知道。
但是,现在我可以通过标记和鼠标中键使用 unixish 复制粘贴。至少在终端中。对于 Marble Mouse,有一篇单独的文章,其中包含大量配置详细信息。
希望能帮助到你。
火力!
附录:
在 Ubuntu 17 和 XFCE 中,鼠标中键复制粘贴根本不起作用。
解决方案:
要启用鼠标中键粘贴功能,请编辑 xinput。a) 查询您的设备:xinput list 识别您的鼠标。我的设备号是 10。b) xinput list-props 10 为我提供鼠标的设置。c) 我需要更改“libinput Middle Emulation Enabled (294):”的值,我需要以 root 身份执行此操作:sudo xinput set-prop 10 “libinput Middle Emulation Enabled” 1 d) 检查值是否更改为 1:xinput list-props 10 是的,它有效:“libinput Middle Emulation Enabled (294): 1”
背后的原因是什么:https://wiki.ubuntu.com/X/Config/Input
我强烈反对 Ubuntu 和 Gnome 决定禁用标准的 Unix 鼠标中键粘贴。即使在 XFCE Ubuntu 17 中,它也受到了严重破坏。希望这个决定背后的管理者能尽快找到一个痛苦的结局。你让我的生活变得艰难。
非常感谢 Gilles (https://unix.stackexchange.com/users/885/gilles) 找到了解决方案!!!
答案2
非常感谢你发布的答案。虽然它没有解决我的具体问题,但它让我非常接近解决方案,我能够看到需要做什么。显然,回复中解决的问题是鼠标中键无法从选择缓冲区粘贴内容的情况,该解决方案已修复该问题。就我而言,需要禁用的是滚动。以下是我采取的步骤:
1:运行命令:
# xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ HID 0430:0100 id=9 [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)]
↳ Device 2Port KVMSwitcher id=8 [slave keyboard (3)]
↳ HID 0430:0005 id=10 [slave keyboard (3)]
这将鼠标标识为设备 ID9。
2:运行命令:
# xinput list-props 9
Device 'HID 0430:0100':
Device Enabled (153): 1
Coordinate Transformation Matrix (155): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (287): 0.000000
libinput Accel Speed Default (288): 0.000000
libinput Accel Profiles Available (289): 1, 1
libinput Accel Profile Enabled (290): 1, 0
libinput Accel Profile Enabled Default (291): 1, 0
libinput Natural Scrolling Enabled (292): 0
libinput Natural Scrolling Enabled Default (293): 0
libinput Send Events Modes Available (272): 1, 0
libinput Send Events Mode Enabled (273): 0, 0
libinput Send Events Mode Enabled Default (274): 0, 0
libinput Left Handed Enabled (294): 0
libinput Left Handed Enabled Default (295): 0
libinput Scroll Methods Available (296): 0, 0, 1
libinput Scroll Method Enabled (297): 0, 0, 1
libinput Scroll Method Enabled Default (298): 0, 0, 1
libinput Button Scrolling Button (299): 0
libinput Button Scrolling Button Default (300): 2
libinput Middle Emulation Enabled (301): 0
libinput Middle Emulation Enabled Default (302): 0
Device Node (275): "/dev/input/event2"
Device Product ID (276): 1072, 256
libinput Drag Lock Buttons (303): <no items>
libinput Horizontal Scroll Enabled (304): 1
指示鼠标中键滚动有效的行是:
libinput Button Scrolling Button (299): 2
3:以 root 身份运行以下命令:
xinput set-prop 9 "libinput Button Scrolling Button" 0
这会将滚动设置为不存在的按钮#0。
4:现在重新运行第二条命令来验证更改:
libinput Button Scrolling Button (299): 0
是的,成功了。现在,当我滑动鼠标时,我又可以像以前一样使用鼠标中键了。
5:将步骤3中的命令添加到〜/ .xstartup文件,以便每次窗口管理器启动时执行它。