我需要将 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