如何恢复双指中键点击功能?

曾经,轻敲触摸板上的两个手指可以发送中间鼠标点击。现在它执行右键单击,而三个手指则是中间点击。我真的无法理解这种改变,认为这是一个错误或从苹果不好地复制过来的。我完全搞不清楚其背后的理由。 我整天使用中间点击,在浏览器中打开链接并且很少使用右击(而且我在触摸板下方有一个右键,奇怪)。 在我的小EeePC触摸板上轻点三个手指几乎是不可能的,所以我想要旧的行为。
synclient TapButtons2=2
synclient TapButtons3=3

但在10.10上没有起作用。

有人知道如何恢复正常的行为吗?


1应该是TapButton2=2,等等,没有's'。 - Chan-Ho Suh
13个回答

默认设置似乎启用了“轻触即点”功能(在我的笔记本电脑上),还提供以下功能:
  • 中键单击(在滚动区域的右上方轻触)
  • 右键单击(在滚动区域的右下方轻触)

1太棒了!而且它默认就能正常工作,我以前都不知道。谢谢你,回答得真好! - Itay Grudev
工作得很好,真的很难猜。 - Louis-Philippe Huberdeau
如果您启用了“双指滚动”,这个功能就无法正常工作了。真可惜,因为我更喜欢它而不是“边缘滚动”。 - Radu Maris
完美,它也适用于我的新戴尔Precision 5530和Ubuntu 18.04。 - Max

你可能也对安装gpointing-device-settings软件包感兴趣,它将为你的触摸板提供更多的配置选项。顺便说一句,在Ubuntu 10.04LTS+中,这个软件包取代了gsynaptics
sudo apt-get install gpointing-device-settings
安装完成后,您可以在“系统” -> “首选项” -> “指针设备”下找到它。

以下解决方案已在Ubuntu 12.04和12.10上进行了测试。它完美运行。
  1. 创建一个文件 /etc/X11/xorg.conf.d/touchpad.conf,内容如下:

    Section "InputClass"
            Identifier      "Touchpad"                      # 必需
            MatchIsTouchpad "on"                           # 必需
            Driver          "synaptics"                     # 必需
            Option          "MinSpeed"              "0.5"
            Option          "MaxSpeed"              "1.0"
            Option          "AccelFactor"           "0.075"
            Option          "TapButton1"            "1"
            Option          "TapButton2"            "2"     # 多点触控
            Option          "TapButton3"            "3"     # 多点触控
            Option          "VertTwoFingerScroll"   "1"     # 多点触控
            Option          "HorizTwoFingerScroll"  "1"     # 多点触控
            Option          "VertEdgeScroll"        "1"
            Option          "CoastingSpeed"         "8"
            Option          "CornerCoasting"        "1"
            Option          "CircularScrolling"     "1"
            Option          "CircScrollTrigger"     "7"
            Option          "EdgeMotionUseAlways"   "1"
            Option          "LBCornerButton"        "8"     # 浏览器“后退”按钮
            Option          "RBCornerButton"        "9"     # 浏览器“前进”按钮
    EndSection
    
  2. 从您的用户中运行 dconf-editor(不要使用sudo)。转到 org.gnome.settings-daemon.plugins.mouse,取消选中 active(已知问题是Gnome的设置守护程序可能会覆盖您的xorg.conf设置)。

  3. 退出并重新登录。现在应该正常工作了。


xinput给出的结果是:

无法找到设备SynPS/2 Synaptics TouchPad

所以我执行了

synclient TapButton3=3 TapButton2=2
http://ubuntuforums.org/showthread.php?t=1251372的提示中得知, 我将这段代码放入我的~/.bashrc文件中,事情似乎正常运行。

要修复中键,您可以使用以下命令:
xinput set-int-prop NN 266 8 2 3 0 0 1 2 3

在这里,NN是鼠标垫设备的ID,你可以用命令xinput list来查看它。 266是属性“Synaptics Tap Action”的ID,你可以用xinput list-props NN来查看。

每次启动/登录/唤醒时都需要运行此命令。

要使其永久生效,你可以将此命令放在你的主文件夹中的.profile文件的末尾。(你也可以尝试将其放在/etc/init.d/rc.local中,但在我的情况下无效。)


这是很危险的,请考虑将"266"更改为"PP"或其他类似的内容 - 物业编号(266)是设备相关的。 - IljaBek

为了在恢复后保留您的 synaptics 配置,我按照 wiki.archlinux.org 上的步骤进行了操作。

Gnome settings daemon may override existing settings (for example ones set in xorg.conf.d) for which there is no equivalent in any of the graphical configuration utilities. It is possible to stop gnome from touching mouse settings at all:

1. Run dconf-editor
2. Edit /org/gnome/settings-daemon/plugins/mouse/
3. Uncheck the active setting 

It will now respect your system's existing synaptics configuration.

它在Ubuntu 11.10上运行良好,现在我有: - 双指滚动。 - 用两个手指轻点进行中键点击。 - 右键点击(在滚动区域的右下角轻点)。

将以下内容添加到/etc/X11/xorg.conf文件中:
Section "InputClass"
    Identifier "middle button emulation class"
    MatchIsPointer "on"
    Option "Emulate3Buttons" "on"
EndSection

警告:请谨慎尝试。在11.10版本中,将其添加到~50-synaptics.conf可能导致登录屏幕后引发启动卡顿。


尝试将此作为脚本运行
xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Tap Action" 8, 9, 0, 0, 1, 2, 3  # pad corners rt rb lt lb tap fingers 1 2 3 (can't simulate more then 2 tap fingers AFAIK) - values: 0=disable 1=left 2=middle 3=right etc. (in FF 8=back 9=forward)

无法找到设备SynPS/2 Synaptics触摸板。 - Thomas A.
xinput set-prop "ETPS/2 Elantech Touchpad" "Synaptics Tap Action" 8, 9, 0, 0, 1, 2, 3 可以使用! - Thomas A.

好的,

我现在得走了

xinput set-prop "ETPS/2 Elantech Touchpad" "Synaptics Tap Action" 8, 9, 0, 0, 1, 2, 3

并且

gconftool-2 --set --type=bool /apps/gnome-power-manager/lock/suspend false 
为了将事情恢复到我可以容忍的程度,但是我必须在每次恢复后运行这些命令。 每次恢复后运行哪个脚本以自动化这个过程?

/etc/pm/sleep.d/99-test.sh 对我来说有效 - Thomas A.
嗯,这适用于没有密码的简历,但不能使双击工作。 - Thomas A.
2为什么这么难呢? - Thomas A.

解决方案 #1

我刚刚发现,如果你在触摸板上同时按住两个手指并按下触摸板的左键“按钮”,它会模拟中间鼠标按钮(所以总共需要三个手指)

解决方案 #2

如果你仍然想要同时点击两个按钮并产生中间按钮模拟,请执行以下操作:

synclient EmulateMidButtonTime=100
EmulateMidButtonTime 允许您更改生成中间按钮所需的时间(点击两个按钮的允许时间段)。100 表示 100 毫秒(ms)。 您可以将其设置为更高的值,例如 synclient EmulateMidButtonTime=500,表示 500 毫秒,足够时间点击两个按钮。