旧答案

旧答案

我需要将 TapButton3 绑定为中央鼠标按钮,因此我执行以下操作:

synclient TapButton3=2

它运行良好,但是当我重新启动或从挂起状态唤醒时,它会忘记设置。我知道我必须按如下方式创建 xorg.conf

Section "InputClass" 
Identifier "touchpad catchall" 
    Driver "synaptics" 
    MatchIsTouchpad "on" 
    Option "TapButton3" "2" 
EndSection

但这不起作用。有人可以帮助我吗?...拜托?

答案1

我创建了 /etc/X11/xorg.conf.d/71-synaptics.conf 文件,其内容如下sudo vi

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        Option "TapButton3" "2"
EndSection

并且我在 /var/log/Xorg.0.log 中看到该选项已设置。

[ 91056.468] (**) Option "TapButton3" "2"

该选项与我在 70-synaptics.conf 文件中类似设置的选项合并。

如果您的设备使用不同的设备或不同的驱动程序(请参阅 /var/log/Xorg.0.log 查看),您应该适当调整标识符和驱动程序行。

另一种方法是禁用 gnome 鼠标设置插件。

  • 为此,请使用++Alt启动终端,然后安装 dconf-editor: CtlT

    apt-get install dconf-editor莱诺酮

  • 启动 dconf-editor

    dconf-editor

并将树导航至 org.gnome.settings-daemon.plugins.mouse。

  • 最后,取消选中“活动”框

后一种方法的缺点是,您在系统设置->鼠标和触摸板中配置的任何设置都不会有效。

从评论来看,这种方法来自这里通过 hleinone。

答案2

旧答案

您可以改用ClickFinger3,它与 非常接近TapButton3

我遇到了完全相同的问题。除了TapButton3,我的conf文件也设置ClickFinger3为2。

Section "InputClass"
        Identifier "touchpad bind middle button"
        MatchDriver "synaptics"
        Option "TapButton3" "2"
        Option "ClickFinger3" "2"
EndSection

但是,我的Xorg.0.log确实有以下内容。

[    35.860] (**) Option "TapButton3" "2"
[    35.860] (**) Option "ClickFinger3" "2"

讽刺的是,ClickFinger3效果很好但TapButton3根本不起作用。

我也尝试synclient TapButton3=2 ClickFinger3=2将该.xsessionrc文件放入启动应用程序脚本中。

我试过这个

xinput set-prop --type=int --format=8 "SYNA2393:00 06CB:75E2 Touchpad" "Synaptics Tap Action" \
       `xinput list-props "SYNA2393:00 06CB:75E2 Touchpad" | sed -n 's/,//g; s/Synaptics Tap Action.*:\(.*\)./\1/p'` 2

然后

xinput set-prop --type=int --format=8 "SYNA2393:00 06CB:75E2 Touchpad" "Synaptics Tap Action" 2 3 0 0 1 3 2

无济于事,它们都不起作用,TapButton3它们都起作用ClickFinger3。我花了一天时间(字面意思,毫不夸张)研究它并得出这个结论。

线代码很可能会导致这种奇怪的行为。

参考:
14.04 / Unity 中的多点触控手势状态
如何在 Unity 中禁用任意默认多点触控手势?


新答案

我找到了真正的解决方案在我写完上面的内容之后。

无意中,我通过 GUI 取消选中了“鼠标和触摸板”中的“点击以单击”选项,然后读取了 的输出synclient。我发现所有与点击相关的值都已设置为 0。这让我相信 Unity 鼠标面板在登录时执行synclient并设置"Synaptics Tap Action"2, 3, 0, 0, 1, 3, 0

为了验证我的猜测,我需要禁用这个 GUI。我谷歌搜索了“ubuntu unity control center override synclient”,结果如下:关联作为最佳结果。

我通过停用 GNOME 鼠标插件进行了一个实验。

gsettings set org.gnome.settings-daemon.plugins.mouse active false

然后我重启,哇,TapButton3登录后终于可以正常工作了。我兴奋地四处转了转,很快发现我通过 GUI 设置设置的正常(反向?)滚动不再起作用了。经过一番调查,我收集了 GNOME 鼠标插件执行的以下操作(可能不完整)。

synclient HorizTwoFingerScroll=1 VertEdgeScroll=0
syndaemon -i 1.0 -t -K -R &

我现在可以根据每个用户进行触摸板设置(我更喜欢这种方式)。因此,我删除了我的synaptics.conf文件,并将以下内容写入我的~/.xsessionrc.

synclient TapButton3=2 ClickFinger3=2
synclient HorizTwoFingerScroll=1 VertEdgeScroll=0
# the following ampersand is significant
syndaemon -i 1.0 -t -K -R &
# natural scrolling
synclient VertScrollDelta=-28 HorizScrollDelta=-28

参考:
我如何使我的 synclient 设置保留下来?

相关内容