如何配置触摸板的中键点击?

在几乎所有大型现代Linux发行版和基于Ubuntu的最新版本中,触摸板都被默认配置为具有右键、左键和中键点击功能,并且您可以轻松地进行配置。通常情况下,中键点击是通过两指或三指轻击来完成的。
然而,在Ubuntu 12.04中,我没有找到启用中键点击的选项,并且它也不是默认启用的。

回答会在一定程度上取决于您使用的触摸板类型,但通常只需要将适当的选项添加到/etc/X11/xorg.conf中即可。有关Synaptics触摸板的一些说明请参考:http://askubuntu.com/a/126539/43660 - Chan-Ho Suh
15个回答

你可以按照以下步骤,在Ubuntu 12.04上使其在暂停后继续工作。
首先,创建一个包含你的脚本的文件:
echo synclient TapButton3=2 > ~/touchpad_settings.sh

(如果您希望将脚本放在更“通用”的位置,以防在Ubuntu安装中有多个帐户,则可以将脚本放置在另一个目录中,例如/usr/bin/etc。)
然后使其可执行:
chmod +x ~/touchpad_settings.sh

最后,运行以下命令,将"user"替换为您的用户名:
gsettings set org.gnome.settings-daemon.peripherals.input-devices hotplug-command "/home/user/touchpad_settings.sh"

然后重新启动,或注销并登录,或重新启动GNOME。
就这些!
要了解更多关于此修复的信息,请点击这里

1另请参阅Manuker的回答,了解有关中间点击(除了轻触)的更多信息。 - z0r
有没有办法使这个工作系统范围内生效,也就是对系统上的所有用户都有效? - Hans Deragon

我在搜索中发现触摸板有不同的设置,可以在角落轻点,并且如果你在右下角轻点,它会执行右键点击。但如果你在右上角轻点,它会执行中键点击。这是默认设置。


4是的,我发现在我的多点触控触摸板的右上角意外地找到了一个像中键一样的单击。对我来说,右键是双指点击。 - AliNajafies
5这在Ubuntu 14.04中似乎仍然是默认设置。我简直不敢相信在鼠标和触摸板设置对话框中竟然没有任何文档或者甚至一个图形界面来表示这个功能。 - Ryan Fisher
有没有办法禁用这个功能? - hellocatfood
2这是2015年,它仍然有效 :) - Tom Stephens
我必须反复尝试着以一种Synaptics能够识别的方式触碰到角落。然后我最终会不小心粘贴两次相同的内容。有没有办法让“右上角”变得更大一些? - Jean Jordaan
对于那些在搜索这个问题的人,我确认在16.04版本中,右上角的单击仍然有效。 - Weboide
@hellocatfood synclient标志"RTCornerButton"控制此行为。(请参考其他答案以了解如何使用synclient。) - Jamie
对我来说,在Ubuntu 20.04.2 LTS中,触控板的中间轻敲区域位于底部中间位置。这个答案引导我找到它:) - Sofía

另一个可能更简单且避免启动脚本的选项是以下内容。
  1. 停止gnome设置守护程序覆盖现有设置(字体:Touchpad Synaptics - ArchWiki)。

    gsettings set org.gnome.settings-daemon.plugins.mouse active false
    
  2. 编辑触摸板的X11配置文件。

    sudo -H gedit /usr/share/X11/xorg.conf.d/50-synaptics.conf
    

    并在带有synaptics驱动程序的部分下添加您的按钮选项,如下所示:

    Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
            Option "TapButton1" "1"
            Option "TapButton2" "3"
            Option "TapButton3" "2"
            Option "HorizTwoFingerScroll" "on"
            Option "VertTwoFingerScroll" "on"
    EndSection
    

8截至13.10版本,/usr/share/X11/xorg.conf.d/50-synaptics.conf文件中警告:“请勿编辑此文件,更新时您的发行版可能会覆盖它。首先将此文件复制(并重命名)到/etc/X11/xorg.conf.d目录下。” - Firefeather
你能帮我解决一下如何在联想Yoga 2 Pro的Synaptics触摸板上模拟中键点击的问题吗? - rubo77
1@Firefeather:也许你希望让你的发行版更新它,因为很可能你的发行版会找到比这更好的解决方案。我只是提醒你记得在发行版覆盖它的情况下再次添加它。 - rubo77
@rubo77 的重点是,如果你的发行版提供了更好的解决方案,那么你应该将相关的改进复制到用户版本的 /etc 目录中!而不是冒着风险将你的自定义设置放在 /usr/share 这个几乎总是被视为只读目录的地方,如果你没有“记住”通过不使用 etc 而可能丢失的所有东西,那么这些自定义设置很容易被破坏;-) - underscore_d
我正在使用Xubuntu 18.04。工作正常。我不需要执行第一步,而在第二步中路径是/usr/share/X11/xorg.conf.d/70-synaptics.conf。 - ruediste
我有Ubuntu 19.04,但它无法正常工作。我可以在~/.local/share/xorg/Xorg.0.log中看到选项被正确设置且未重置,但某些东西覆盖了它们。我还注意到登录时org.gnome.settings-daemon.plugins.mouse的部分被设置为false,所以不是这个问题。有趣的是,仍然可以通过Gnome设置来设置鼠标的配置。 - Cesar

synclient ClickFinger3=2
synclient TapButton3=2

显示实际值列表:
synclient -l

希望它有用(对我来说确实有用!)

ClickFinger3=2很棒 - 现在它的功能就像在Debian中一样。 - z0r
怎么操作?我设置了这些值,但是不清楚如何点击或者触摸中间的按钮。 - sites
您可以在Synaptics的man页面中找到关于所有设置的详尽描述。在这种情况下,上述设置允许通过轻触或用三个手指点击来实现中键点击功能。 - Jim Hurne
在升级过程中,三击功能消失后,在Ubuntu 17.04上也能正常工作。 - wotanii
这对我起作用,但重新启动系统会使使用该命令所做的更改恢复到原样。我该如何保留它? - Bej

你可以在终端中使用命令synclient TapButton3=2来启用它,但似乎在挂起+恢复和重启后会被覆盖。

永久解决方案:

这在Xfce论坛线程中有解释

然而,unity-2d(我想Unity也是如此)在恢复时喜欢调整这些设置,我不知道如何禁用它。也许是utouch,我真的不知道。

关键是有一种方法可以永久配置中键点击:

  • 添加一个自定义启动应用程序(在右上角的“齿轮”菜单下)并给它任意名称,例如“触摸板调整”,命令为sh -c "/usr/bin/synclient TapButton3=2",然后保存。

这样做很好,直到你挂起和恢复。对于这个问题:

  • 打开终端,输入gksudo gedit /etc/pm/sleep.d/80-synaptics-three-finger
  • 将以下文本复制并粘贴到文件中:

    #!/bin/sh
    
    # 恢复三指点击功能
    
    case "$1" in
            resume|thaw)
                    sleep 5;
                    /bin/su YOUR_USER_NAME -c "/usr/bin/synclient TapButton3=2"
                    ;;
    esac
    
  • YOUR_USER_NAME替换为您的登录名 - 不是长的那个;例如,使用'fred'而不是'fred fuchs'。如果您忘记了,可以在终端窗口中输入whoami来查看。

  • 保存文件。

  • 使其可执行;只需在终端窗口中输入sudo chmod +x /etc/pm/sleep.d/80-synaptics-three-finger,然后输入密码即可。

如果您正确地完成了所有这些步骤,那么在挂起/恢复循环后,您的系统应该将三指点击保留为中键。
现在这很有趣且用户友好,不是吗?我只能想知道为什么Unity会默默地干涉synclient设置,并更加惊讶的是为什么没有一个简单的GUI工具来配置所有这些。无论如何,这就是您需要的。

为什么这个被踩了? - kzh
挂起/恢复任务是我一直以来需要做的事情。谢谢! - tucuxi
可能是因为我的讽刺口气,或者更好的方法是将它放在xorg.conf文件中(如果已经有一个的话),像这样:Section "Inputclass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" Option "TapButton3" "2" EndSection - bamdad
抱歉,评论表单吞掉了我的换行符。希望你能明白我的意思。:) 如果不明白的话,我会编辑我的原始回答。 - bamdad

从软件中心下载synaptiks。
打开它,然后进入“触摸板配置 >> 点击”。
在那里设置您想要的配置。

3这个软件包似乎不再在软件中心中。 - Paul Lammertsma
@PaulLammertsma 试试这个链接:http://askubuntu.com/a/500073/350872 - ATOzTOA
是Synaptiks还是Synaptics? - Pierre ALBARÈDE

我尝试了这里提供的几种解决方案,但在我的东芝Satellite上没有任何效果。诀窍似乎在于“触摸板”和“点击板”的区别。“触摸板”是一个带有相邻按钮的鼠标板,“点击板”是一个没有相邻按钮的板子:你需要点击板子。
这款东芝Satellite配备了点击板,所以在角落点击无效,我也无法实现三指点击。
根据dllud的回答,我发现我需要编辑(在kubuntu上)/usr/share/X11/xorg.conf.d/50-synaptics.conf,根据https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_touchpads_.28aka_ClickPads.29上的信息进行编辑,现在我的配置文件如下所示:
Section "InputClass"
    Identifier "Default clickpad buttons"
    MatchDriver "synaptics"
    Option     "SoftButtonAreas"  "60% 0 82% 0 40% 59% 82% 0"
EndSection

这将设置触控板为左键40%,中键20%,右键40%。要准确地点击中键仍需要一些练习。

你真是让我开心啊!太感谢了。耶!我的ShitPad现在有了一个中间按钮! - Tomáš Pospíšek

只是更新一下Ubuntu 20.04:

  1. 打开Ubuntu软件并安装"Tweak advanced GNOME 3 settings";
  2. 在"Tweaks"中选择"Keyboards & Mouse";
  3. 在"Mouse Click Emulation"中选择"Fingers"选项;

就这样:用两个手指进行右键点击,用三个手指进行中键点击!


1只有天使才会决定在一个11年前的帖子上发布全新和更新的解决方案。这应该被标记为新答案。 - Amjo
@Amjo 你让我开心了;-) - Reginaldo Santos
1在Ubuntu 22(即Wayland)上,无需任何额外软件,可以使用以下命令来启用中键模拟:gsettings set org.gnome.desktop.peripherals.touchpad middle-click-emulation true - igor

带按钮的触摸板

我曾经有一台带有触摸板按钮的笔记本电脑,需要同时点击两个按钮来模拟中键点击。

没有按钮的触摸板

现在我有一块没有按钮的触摸板。以下是我的操作方法:

使用以下命令了解您的触摸板尺寸数值和配置:

$ synclient -l | grep 'Area\|Edge\|ClickFinger' 
LeftEdge                = 129
RightEdge               = 3105
TopEdge                 = 126
BottomEdge              = 2211
VertEdgeScroll          = 0
HorizEdgeScroll         = 0
ClickFinger1            = 1
ClickFinger2            = 3
ClickFinger3            = 0
AreaLeftEdge            = 0
AreaRightEdge           = 0
AreaTopEdge             = 0
AreaBottomEdge          = 0
RightButtonAreaLeft     = 1617
RightButtonAreaRight    = 0
RightButtonAreaTop      = 1916
RightButtonAreaBottom   = 0
MiddleButtonAreaLeft    = 0
MiddleButtonAreaRight   = 0
MiddleButtonAreaTop     = 0
MiddleButtonAreaBottom  = 0

然后使用synclient var1=value1 var2=value2 ...语法来修改这些值以满足您的需求。请参考我下面给出的示例命令。
请注意:
  • ClickFinger1ClickFinger2ClickFinger3选项重新映射了分别用一根、两根或三根手指触摸触摸板时进行的点击。
  • 值1对应左键点击。
  • 值2对应中键点击。
  • 值3对应右键点击。

这是我运行并在“启动应用程序首选项”窗口中设置的命令,用于配置我的触摸板:
$ synclient RightButtonAreaTop=0 RightButtonAreaLeft=0   MiddleButtonAreaTop=1916 MiddleButtonAreaLeft=1617  ClickFinger1=0
  • RightButtonAreaTop=0RightButtonAreaLeft=0取消了“右键”,导致无法使用右键(我尝试使用ivan-volosyuk的设置来设置所有三个按钮,但只有中键可用)。我使用双指轻敲来产生右键。无法保持右键不够麻烦,不足以推动我寻找解决方案。

  • MiddleButtonAreaTop=1916MiddleButtonAreaLeft=1617将“右键”设置为中键。

  • ClickFinger1=0禁用了在单指点击时发生的特殊解释。其先前的值:ClickFinger1=1会导致我的右键被解释为左键,当一个非点击的手指触摸触摸板时。

按照您喜欢的方式进行修改。也许您会比我做得更好。



这对libinput没有任何影响,至少在KDE上是如此。 - Postadelmaga