问题描述
如何在 12.04 LTS 中启用鼠标中键模拟?\n我认为它在上一个版本中默认被禁用。我确定这是一个愚蠢的问题,但我找不到通用的答案,它们似乎都是特定于触摸板的(即,multi-touch 相关,我没有),或者使用我认为不正常的 ubuntu方法(创建 xorg.conf 文件)。我在 dell inspiron mini 上使用 xubuntu 变体 (xfce)。
我实际上只是在那里测试,如果我同时用两个手指点击它会弹出一个上下文菜单(如右键单击)。有线我不知道这个触控板甚至可以分辨出有两个手指点击……
以前的行为是同时点击两个触摸板按钮(它们是内置的)产生中间点击。他们不再这样做了。我从来没有使用过双击,而是实际的按钮。
澄清一下,我使用的是内置触摸板,而不是外接鼠标。 Gpointings 将其检测为突触触摸,我认为这是正确的
更新-下面链接的问题@medigeek让我设置了双指点击来模拟中键点击,但我仍然不能同时点击两个按钮
synclient 的输出在这里:
LeftEdge = 1760
RightEdge = 5302
TopEdge = 1639
BottomEdge = 4479
FingerLow = 25
FingerHigh = 30
FingerPress = 256
MaxTapTime = 180
MaxTapMove = 232
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
FastTaps = 0
EmulateMidButtonTime = 0
EmulateTwoFingerMinZ = 282
EmulateTwoFingerMinW = 7
VertScrollDelta = 105
HorizScrollDelta = 105
VertEdgeScroll = 1
HorizEdgeScroll = 0
CornerCoasting = 0
VertTwoFingerScroll = 0
HorizTwoFingerScroll = 0
MinSpeed = 1
MaxSpeed = 1.75
AccelFactor = 0.0378931
TrackstickSpeed = 40
EdgeMotionMinZ = 30
EdgeMotionMaxZ = 160
EdgeMotionMinSpeed = 1
EdgeMotionMaxSpeed = 422
EdgeMotionUseAlways = 0
TouchpadOff = 0
LockedDrags = 0
LockedDragTimeout = 5000
RTCornerButton = 2
RBCornerButton = 3
LTCornerButton = 0
LBCornerButton = 0
TapButton1 = 1
TapButton2 = 3
TapButton3 = 0
ClickFinger1 = 1
ClickFinger2 = 1
ClickFinger3 = 0
CircularScrolling = 0
CircScrollDelta = 0.1
CircScrollTrigger = 0
CircularPad = 0
PalmDetect = 0
PalmMinWidth = 10
PalmMinZ = 200
CoastingSpeed = 20
CoastingFriction = 50
PressureMotionMinZ = 30
PressureMotionMaxZ = 160
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
ResolutionDetect = 1
GrabEventDevice = 1
TapAndDragGesture = 1
AreaLeftEdge = 0
AreaRightEdge = 0
AreaTopEdge = 0
AreaBottomEdge = 0
HorizHysteresis = 26
VertHysteresis = 26
ClickPad = 1
RightButtonAreaLeft = 0
RightButtonAreaRight = 0
RightButtonAreaTop = 0
RightButtonAreaBottom = 0
MiddleButtonAreaLeft = 0
MiddleButtonAreaRight = 0
MiddleButtonAreaTop = 0
MiddleButtonAreaBottom = 0
最佳方案
图形化解决方案
安装包 gpointing-device-settings
Description-en: configuration tool for pointing devices
GUI tool for setting pointing devices. Currently it can configure mouse type
device (mouse, trackpoint etc.) and touchpads.
.
For mouse you can configure middle button emulation, wheel emulation and
scrolling.
.
It can enable and disable touchpad, or scrolling on it as well as additional
parameters like palm detection, locked drags, tapping and scrolling.
.
It is a successor of GSynaptics.
控制台/终端解决方案 #1
或者,试试这个:
gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true
替代解决方案可能需要安装 gnome-settings-daemon
包。
控制台/终端解决方案 #2
使用 synclient
命令您可以查看您的 synaptics 触摸板选项。
-
运行
synclient
并查看可用的变量。\n -
您可以使用此命令设置/更改 synclient 选项:
syclient var=1
(其中 var 是您要更改的变量,1 是值)\n请阅读有关每个变量的手册页:http://manpages.ubuntu.com/synaptics\n
什么对我有用
不要弄清楚如何按下触摸板的两个按钮,而是将两根手指放在触摸板上并用第三根手指单击触摸板的左键单击按钮。这默认模拟中间按钮。
什么对原始海报有效
a) 设置 TapButton 变量适用于双指点击
b) 如果您仍想同时单击两个按钮并生成中间按钮模拟,请执行:
synclient EmulateMidButtonTime=100
EmulateMidButtonTime 允许您更改生成中间按钮所需的时间(允许单击两个按钮的时间段)。 100 表示 100 毫秒 (ms)。
您可以将其设置为更高的值,例如 synclient EmulateMidButtonTime=500
(500ms)。
次佳方案
在 Ubuntu 17 和 XFCE 中,鼠标中键复制粘贴根本不起作用。
同样的问题在 Ubuntu 20.x 中仍然存在。
解决方案
要启用鼠标中键粘贴功能,请编辑 xinput。
-
查询您的设备:
\n
xinput list\n
\n
识别您的鼠标。对我来说,它是设备号 10。
-
xinput list-props 10
给我鼠标的设置。\n -
我需要更改“libinput Middle Emulation Enabled (294):”的值,并且我需要以 root 身份执行此操作:
\n
xinput set-prop 10 "libinput Middle Emulation Enabled" 1\n
\n
-
检查值是否更改为 1:
\n
xinput list-props 10\n
\n
是的,它有效:“libinput Middle Emulation Enabled (294): 1”
在最近的 Ubuntu 20.x 中,连接带有 2 个按钮(旧的白色模型)的罗技大理石鼠标给了我\n“libinput Middle Emulation Enabled (292): 0”,我相应地更改了它。
在 Ubuntu 18 和 XFCE 中有一个重大变化:不再有“libinput Button Middle”。取而代之的是“Evdev Third Button Emulation”。所以整条线现在是(对于我的机器):
sudo xinput set-prop 10 "Evdev Third Button Emulation" 1
要使其持久化,请在 ~/.xstartup
中添加一行!\n在我的例子中,它看起来和以前一样:
xinput set-prop 10 "libinput Middle Emulation Enabled" 1
这使得它从一开始就有效。
提示:如果你的 Linux GUI 的风格或表面不支持 xinput,你可能会在每次打开终端时看到一个小错误行。
总是欢迎更好的解决方案:-)
我强烈反对 Ubuntu 和 Gnome 决定禁用标准的 Unix 中间鼠标粘贴。即使在 XFCE Ubuntu 17 中,它也被摧毁了。愿做出这一决定的管理者早日找到痛苦的结局。你让我的生活变得艰难。
非常非常感谢找到解决方案的 to Gilles!!!
我在使用 Ubuntu 16、14.10 和更早版本时遇到了同样的问题:\n终端中的 Unix 样式复制粘贴不起作用。\n令人失望的默认设置。\n但是,这是一个解决方案(部分总结了其他人的出色工作):
-
为了解决终端问题,我成功地将以下行放入我的 xorg.conf 中:
(查看 /etc/X11/xorg.conf 是否适合您。Lubuntu 等可能有所不同)
Section "InputClass"
Identifier "middle button emulation class"
MatchIsPointer "on"
Option "Emulate3Buttons" "on"
EndSection
-
丢失第 3 个鼠标按钮(触摸板、大理石鼠标)的非常烦人的故障实际上可以用\n”gpointing-device-settings” 修复。只需使用 CLI 安装:\napt-get install gpointing-device-settings\n
然后调用 gpointing-device-settings
获取 gui 窗口。\n备注:较新的 Ubuntu 中存在一个未修复的错误,该错误会在重新启动时清除您的设置。您可以将 gpointing-device-settings
放在 auto-start 中,但仍然需要提示。我不知道任何适当的配置解决方案。
可能某些步骤需要 sudo 或 root 访问权限。我假设你知道。
但是,现在我可以通过标记和鼠标中键使用 unixish 复制粘贴。至少在终端中。\n对于 Marble Mouse,有一篇单独的文章包含大量配置详细信息。
Addendum
在 Ubuntu 17 和 XFCE 中,鼠标中键复制粘贴根本不起作用。
Wayland 不一样。
有时候输入是有帮助的
gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true
幸运的是它是持久的。否则尝试创建一个启动脚本。
第三种方案
您还可以通过调用在 triple-finger-tap 上设置鼠标中键
synclient TapButton3=2
(将其放入脚本中并将其添加到您的启动程序中)
很奇怪,因为似乎有一个 bugreport 应该已修复。
来源:enable a three finger tap on my synaptic touchpad: