如何在12.04 LTS中启用鼠标中键仿真?


23

如何在12.04 LTS中启用鼠标中键仿真?我认为默认情况下它在上一版本中处于禁用状态。我确定这是一个愚蠢的问题,但我找不到通用的答案,它们似乎都是触摸板特定的(即,与多点触摸相关,但我没有),或者使用了我认为不是的触摸板普通的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


我将其投票作为askubuntu.com/questions/12435/…的副本–我已经在这里添加了答案
Savvas Radevic

Answers:


18

GUI解决方案

安装套件 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.

gpointing-device-settings鼠标中键仿真

控制台/终端解决方案#1

或者,尝试以下操作:

gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true

替代解决方案可能需要安装gnome-settings-daemon软件包。

控制台/终端解决方案#2

使用synclient命令,您可以查看您的突触触摸板选项。

  1. 运行synclient并查看可用的变量
  2. 您可以使用以下命令来设置/更改synclient选项:(syclient var=1其中var是您要更改的变量,而1是值)

    阅读有关每个变量的手册页:http : //manpages.ubuntu.com/synaptics


什么对我有用

无需弄清楚如何同时按下触摸板的两个按钮,而是用两个手指按住/按下触摸板然后用第三根手指单击触摸板的左键单击按钮。默认情况下,这会模拟一个中间按钮。

什么适合原始海报

a)设置TapButton变量适用于两指点击

b)如果仍然要单击两个按钮并产生中间按钮仿真,请执行:

synclient EmulateMidButtonTime=100

EmulateMidButtonTime允许您更改产生中间按钮所需的时间(允许单击两个按钮的时间段)。100表示​​100毫秒(ms)。

您可以将其设置为更高的值,例如synclient EmulateMidButtonTime=500(500ms)。


1
谢谢,我已经尝试过gpointing-device-settings选项(在另一个问题中提出),但是它没有给我启用仿真的选项。第二个选项似乎也不起作用,是否需要重新启动X?
Rqomey 2012年

您是否使用xubuntu-desktop live cd进行了全新安装?gpointings启用用于鼠标设备的鼠标中键。您正在使用什么设备?也许未正确检测到?顺便说一句,我很惊讶您需要这样的功能,如今的鼠标设备具有一个滚动按钮,您可以单击(按下),这实际上是中间按钮。
Savvas Radevic 2012年

gpointings可与我的鼠标设备配合使用
Savvas Radevic

不,它是11.10的更新。它是一个触摸板,因此很遗憾没有中间按钮。Gpointings将其检测为Syn触摸板(就像上面的屏幕一样),它提供了很多选项,而没有模拟选项!
Rqomey 2012年

(1)运行synclient并在您的问题中添加输出。(2)尝试以下解决方案:askubuntu.com/questions/12435/…(3)您可以使用设置synclient syclient var=1(变量为var,值为1)。阅读手册:manpages.ubuntu.com/synaptics(4)尝试以下操作:保持两根手指在触摸板上,然后用无名指单击左键
Savvas Radevic,2012年

13

在Ubuntu 17和XFCE中,鼠标中键复制粘贴根本不起作用。

要启用鼠标中键粘贴功能,请编辑xinput。

  1. 查询您的设备:

    xinput list
    

    识别您的鼠标。和我在一起的是10号设备。

  2. xinput list-props 10 给我鼠标的设置。

  3. 我需要更改“ libinput Middle Emulation Enabled(294):”的值,并且需要以root用户身份进行操作:

    xinput set-prop 10 "libinput Middle Emulation Enabled" 1
    
  4. 检查值是否更改为1:

    xinput list-props 10
    

是的,它可以正常工作:“ libinput Middle Emulation Enabled(294):1”

要使其持久,请在中添加一行~/.xstartup
就我而言,它看起来像以前一样:

xinput set-prop 10 "libinput Middle Emulation Enabled" 1

这使它从一开始就有效。

这就是它的背后

我非常不同意Ubuntu和Gnome决定禁用标准的Unix中鼠标粘贴。即使在XFCE Ubuntu 17中,它也遭到了破坏。希望此决定背后的管理者能找到一个很快而痛苦的结局。你让我的生活很难。

非常感谢Gilles找到了解决方案!!!

使用Ubuntu 16、14.10和更早版本时,我遇到了同样的问题: 在终端中无法粘贴Unix样式的副本。令人失望的默认设置。但是,这是一个解决方案(部分总结了其他人的出色著作):

  • 要解决终端问题,我已将以下几行成功放入xorg.conf中

(请查看/etc/X11/xorg.conf是否适合您。Lubuntu等可能有所不同。)

Section "InputClass"
    Identifier "middle button emulation class"
    MatchIsPointer "on"
    Option "Emulate3Buttons" "on"
EndSection
  • 实际上,可以通过“ gpointing-device-settings”来修复缺少的第三个鼠标按钮(触摸板,大理石鼠标)带来的非常烦人的故障。只需使用CLI进行安装:

    apt-get install gpointing-device-settings

然后调用gpointing-device-settings以获取gui窗口。 备注:较新的Ubuntu中存在一个未修复的错误,该错误会在重新引导时清除您的设置。您可以设置gpointing-device-settings为自动启动,但仍然需要提示。我不知道任何适当的配置解决方案。

某些步骤可能需要sudo或root访问。我想你知道。

但是,现在我可以通过标记和鼠标中键使用unixish复制粘贴。至少在终端。对于大理石鼠标,还有另一篇文章,其中包含许多配置详细信息。

附录

在Ubuntu 17和XFCE中,鼠标中键复制粘贴根本不起作用。


2
优秀!谢谢。在17.04上完美工作
ppetraki

2
在16.04上不起作用。失败,错误为“属性'libinput Middle Emulation Enabled'不存在,您需要指定其类型和格式'
catbadger

@catbadger也许您需要evdev版本。请参阅askubuntu.com/a/868173/460211中的with evdev部分 。我遇到了同样的错误,这可行。
piepi

在Ubuntu 18和XFCE中,有一个重大更改:没有“ libinput Button Middle”。而是“ Evdev第三按钮仿真”。现在整个行(对于我的机器)是:sudo xinput set-prop 9“ Evdev第三按钮仿真” 1这回答了catbadger 17年11月23日的评论;我讨厌注释中缺少格式吗?无可奉告-也许您仍然有其要旨。
opinion_no9

我发现@ opinion_no9的原始建议,即libinput至少在大多数应用程序中使用了18.04的作品。 evdev没有为我工作。也许您必须先手动设置它xorg.conf才能起作用?
西蒙


2

通过更改以下各项的默认值为所有用户启用它/usr/share/glib-2.0/schemas/org.gnome.settings-daemon.peripherals.gschema.xml

查找如下所示的密钥middle-button-emulation

<key type="b" name="middle-button-enabled">
  <default>false</default>
  <summary>Middle button emulation</summary>
  <description>Enables middle mouse button emulation through simultaneous left and right button click.</description>
</key>

将默认值更改为true

<key type="b" name="middle-button-enabled">
  <default>true</default>
  <summary>Middle button emulation</summary>
  <description>Enables middle mouse button emulation through simultaneous left and right button click.</description>
</key>

2

我已经使用synclient从触摸板上的左右按钮窃取了一些区域,以便可以将3个按钮全部放在触摸板的底部:

synclient MiddleButtonAreaTop = 4035
synclient RightButtonAreaLeft = 3890
synclient MiddleButtonAreaRight = 3890
synclient MiddleButtonAreaLeft = 3155

我使用当前边线作为基础计算值:

左边缘= 1685

右边缘= 5361

TopEdge = 1489

BottomEdge = 4409

RightButtonAreaTop = 4035


1

我使用xubuntu 14.10找到了一个不错的解决方案

(我认为这很好,因为不需要点击即可启用,我不喜欢点击)

首先,您需要安装xdotool

sudo apt-get install xdotool

然后编写一个bash脚本以发送鼠标中键。你要写这样的东西

#!/bin/bash 

xdotool mousedown 2;
xdotool mouseup 2;

将其保存到您会记得的文件名中,例如“ MiddleClick.sh”

接下来,更改您对该文件的权限,使其可以自己执行

chmod u+x MiddleClick.sh 

现在,您可以通过运行此文件将中间点击发送到鼠标所在的位置,在终端中

bash MiddleClick.sh

但是,要指定执行此操作的快捷方式,请转到“设置”>“键盘”,然后进入“应用程序”快捷方式。添加一个新文件,指向您创建的文件并分配一个快捷方式。您现在可以使用此新快捷方式来发送中间点击。


1

添加到@ rubo77的答案,并根据您的synclient的输出,您应该尝试:

synclient ClickFinger3=2

然后,您可以使用三指点击来激活中键单击。它为我工作。


1
如果您想改善另一个答案,请提出修改建议,不要创建新的(不完整的)答案。
大卫·佛斯特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.